JDBC事务
我们模拟一个场景,为了满足用户需要,需要进行两步操作,可如果两步之间出现了异常,第二步操作就不会进行,但是此时第一步操作已经改变了数据库。这是因为JDBC有自动提交机制。
处理事务的三步:
1.conn.setAutoCommite(false):关闭自动提交机制
2.conn.commit():手动提交,也就是整段代码段运行到此处时,前面的代码都无误,所以在此处手动提交。
3.conn.rollback():手动回滚,放在处理异常的代码段中,就是在出现异常时,使已经被改变的数据库内容还原。
实现一个登录功能
第一步:提供一个输入的界面,可以让用户输入用户名和密码
第二步:底层数据库当中需要有一张用户表,用户表存储了用户信息
第三步:当java程序接收到用户名和密码的时候,连接数据库验证用户名和密码。
验证通过,表示登陆成功,验证失败,表示登录失败
Statement和PreparedStatement用法区别
Statement
特点:先进行字符串的拼接,然后再进行sql语句的编译
优点:使用Statement可以进行sql语句的拼接
缺点:因为拼接的特定啊,导致可能给不法分子机会,导致sql注入
PreparedStatement
特点:先进行sql语句的编译,然后再进行sql语句的传值
优点:避免sql注入
缺点:没有办法进行sql语句的拼接,只能给sql语句传值