1.JDBC介绍
Java厂商制定规范的一套接口(jdbc),由各个数据库厂商实现(jdbc驱动),当我们用Java访问数据库时,只需要导入对应厂商提供的驱动jar包,然后使用程序调用接口中的方法即可。
jdbc是java提供的一套用于数据库操作的接口API,不同的数据库厂商需要针对这套接口提供不同的实现,Java程序猿只需要面向这套接口编程即可。
2.应用-得到连接:
2.1 new一个properties对象
2.2调用这个propertoes对象的load方法,传入一个FileInputStream对象,获取到配置文件。优点:使用配置文件,让连接 mysql 更加灵活
2.3调用这个propertoes对象的getProperty方法得到文件中的信息
2.4 DriverManager.getConnection方法实现获取连接,其中DriverManager 替代 driver 进行统一管理,在底层使用反射加载了 Driver 类,在加载 Driver 类时,完成注册(静态代码块实现)。
3.应用-执行语句
3.1 Statement接口
在得到连接之后,我们想要执行sql语句,此时java设计了Statement接口来实现。
Statement statement = connection.createStatement()得到一个statement对象后:
statement.executeUpdate(sql)执行dml语句
statement.executeQuery(sql)执行dql语句,该执行的结果需要对象来接收,java设计者设计了ResultSet[结果集]来接收。
3.2 PreparedStatement接口
引入:statement由于statement.executeQuery(sql)执行语句直接使用sql,这个sql是直接输入的,没有经过预处理,会有sql注入的问题存在,相当危险,所以出现了PreparedStatement解决这一问题。
优点:预处理了减少了编译次数,效率up;有效的解决了sql注入问题
总结:之后我们就使用PreparedStatement接口来执行操作了。
4.应用-得到结果
4.1ResultSet[结果集] 概念:表示数据库结果集的数据表,通常执行查询数据库语句时生成
4.2重要方法:resultSet.next();向下移动一行,无则返回false
resultSet.previous()向上移动一行,无则false
getXXX;getObject;
5.事务
jdbc中当一个connection被创建时,默认是自动提交事务:执行完sql语句自动commit,无法回滚。而jdbc为了让多个sql语句作为整体执行,需要使用事务。
connection.setAutoCommit(false); //开启事务
connection.commit();//提交
connection.rollback();//回滚
6.批处理
使用批处理解决大量sql语句每次通过流对象传输(一条一条的传输)而带来的时间问题
批处理提供了Batch,将sql语句存入其中,打包批量处理,减少了运行次数,提升了效率。
preparedStatement.addBatch();
preparedStatement.executeBatch();
preparedStatement.clearBatch();