我们之前获取了Mybatis的源码,并且搭建了调试环境,其实Mybatis框架(市面上的大部分持久层框架)都是对JDBC做封装的。作为一名合格的程序员(非CV操作员),都必须对JDBC肯定是熟悉的,在深入理解Mybatis之前,我们一定要是对JDBC有个全面的认识的。
JDBC是JAVA语言中提供的访问关系型数据库的接口。在JDBC编写的应用中,使用JDBC API可以知晓SQL语句、检索SQL执行结果以及数据更改。JDBC提供了一种自然的,易于使用的JAVA语言与数据库交互的接口。JDBC为JAVA程序员提供了访问一个或者多个数据源的方法,在大多数情况下,数据源是关系型数据库,它的数据是通过SQL语句来访问的。只要数据源提供JDBC规范驱动程序即可。
使用JDBC操作数据源大致需要几个步骤
(1)与数据源建立连接。
(2)执行SQL语句
(3)检索SQL执行结果
(4)记得关闭连接 以免内存泄漏
JDBC应用程序可以使用两种方式获取连接对象
(1)DriverManager:直接 getConnection方法即可
(2)DataSource:使用没什么区别。这个只是个接口,具体事项由JDBC驱动程序提供。一些主流数据库连接池一般也能提供一些DataSource接口的具体实现
JDBC API中定义了两个DataSource接口比较重要的扩展
分别为
ConnectionPoolDataSource:支持缓存和复用Connection对象,这样能够在很大程度上提升应用性能和伸缩性。
XADataSource 这个实例返回的Connection能够支持分布式事务。
获取到JDBC的Connection接口中提供的方法创建 Statement、PrepareStatament或者CallableStatement对象。
Statement接口可以理解为一个执行器,我们可以调用其executeQuery()方法执行更新操作,另外还可以调用executeBatch方法执行批量操作。可以写一个通用方法来玩一下,即可新增,也可以更改,可以获得结果集等。
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("select * from user");
我们可以通过getXXX方法来查询结果集。
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("select * from user");
while (resultSet.next()){
String name = resultSet.getString("name");
System.out.println(name);
}
statement.close();
connection.close();
大致就是这么玩的。Statement是执行器,有了这个对象之后,我们就可以直接执行我们想要执行的sql了。我们甚至可以获得元数据的一些信息,不在话下。