SQL注入问题∶在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题
1.输入用户随便,输入密码:a' or 'a' = 'a
2. sql : select * from user where username = 'fhdsjkf' and password = 'a' or 'a' = 'a'
解决sql注入问题:使用Preparedstatement对象来解决
预编译的sQL:参数使用?作为占位符
步骤:
导入驱动jar包mysql-connector-java-5.1.37-bin.jar注册驱动
获取数据库连接对象connection定义sql
注意: sql的参数使用?作为占位符。如: select * from user where username = ? and password = ?;获取执行sql语句的对象preparedstatement connection.preparestatement(string sql)
给﹖赋值:
方法: setXxx(参数1,参数2)
参数1:?的位置编号从1开始*参数2:?的值
执行sql,接受返回结果,不需要传递sql语句处理结果
释放资源
java代码:
public static boolean login1(String username,String password){ if (username == null || password == null){ return false; } Connection conn = null; PreparedStatement statement = null; ResultSet rs = null; try { conn = JDBCUtils.getConnection(); String sql = "select * from user where username = ? and password = ?"; statement = conn.prepareStatement(sql); statement.setString(1,username); statement.setString(2,password); rs = statement.executeQuery(); return rs.next(); } catch (SQLException e) { e.printStackTrace(); } return false; }
Jdbc事务的管理_概述
事务:一个包含多个步骤的业务操作,如果这个业务操作被事务管理,则多个步骤同时成功要么同时失败
操作
开启事务
提交事务
回滚事务
使用Connection对象来管理事务对象
开启事务:setAutoCommit(boolaen autoCommit) 使用该方法设置参数false,级开启事务
提交事务:commit
回滚事务:rollback
搜索
复制