时间:2021-07-01 10:21:17 帮助过:11人阅读
查询(Query):
//通过connection对象创建statement对象 stmt = conn.createStatement(); String sql = "select * from emp"; //通过statement对象执行executeQuery查 rs = stmt.executeQuery(sql); //循环使“行光标”移动到下一行,并返回移动后的行是否存在; while(rs.next()){ //打印每一行的相应数据类型的数据 //也可以通过rs.getString()或者rs.getObject(),推荐使用数据库中对应的数据类型 System.out.println(rs.getInt("empno") +","+rs.getString("ename") +","+rs.getString("job") +","+rs.getInt("mgr") +","+rs.getDate("hiredate") +","+rs.getInt("sal") +","+rs.getInt("comm") +","+rs.getInt("deptno") ); }
Statement存在sql注入(sql攻击)安全问题,不推荐使用
这行当前会使我们登录成功!因为是输入的用户名和密码是SQL语句片段,最终与我们的login()方法中的SQL语句组合在一起!我们来看看组合在一起的SQL语句: SELECT * FROM tab_user WHERE username=‘a‘ or ‘1‘=‘1‘ and password=‘a‘ or ‘1‘=‘1‘
推荐使用:PreparedStatement 预编译声明
Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { //1.通过反射的获取Driver Class.forName("oracle.jdbc.driver.OracleDriver"); //2.通过获取DriverManager.getConnection得到connection对象 conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger"); //3.使用connection返回prepareStatement对象 String sql = "SELECT COUNT(1) FROM EMP WHERE SAL > ?"; pstmt = conn.prepareStatement(sql); //给?赋值,从1开始 pstmt.setInt(1, 1000); rs = pstmt.executeQuery(); while(rs.next()){ System.out.println(rs.getInt(1)); }
Jdbc语法
标签:原来 使用 close 预编译 说明 password 启动 关闭 null