JDBC是由一系列连接(Connection)、SQL语句(Statement)和结果集(ResultSet)构成的,其主要作用概括起来有如下3个方面: 建立与数据库的连接。 向数据库发起查询请求。 处理数据库返回结果。
博主现在在学着Mybatis框架。在其中,最重要的就是Statement。实现图为:
![]()
JDBC连接数据库分为以下几步:
(1)加载数据库驱动,通常使用Class类的forName静态方法来加载(针对不同的数据库,驱动名会有所变化)
//加载MySQL驱动
Class.forName("com.mysql.jdbc.Driver");
(2)通过DriverManager获取数据库连接//加载Oracle驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
获取数据库连接的时候,一般要有三个参数。第一个是数据库的url地址。一般mysql来说的话,则//获取数据库连接
DriverManager.getConnection(String url,String user,String pass);
jdbc:mysql://hostname:port/databasename
第二个参数则是用户名:看使用的用户名是什么,一般为root第三个参数为密码:每个人对应的密码不同,博主的则为123456(3)通过Connection对象创建Statement对象,Connection对象创建Statement对象的方法有如下三(但是博主只用过列出来的)preparedStatement(String sql):根据传入的SQL语句创建预编译的Statement对象。
(4)使用Statement对象执行SQL语句
1、boolean execute(String sql) throws SQLException:可以执行任何SQL语句,但比较麻烦。2、int executeUpdate(String sql) throws SQLException:主要用于执行DML和DDL语句。执行DML语句返回受SQL语句影响的行数,执行DDL语句返回0。3、 ResultSet executeQuery(String sql) throws SQLException:只能执行查询语句,执行后返回代表查询结果的ResultSet对象。根据不同的需求,可以使用不同的方法。(5)操作结果集。如果执行的SQL语句是查询语句,执行后返回代表查询结果的ResultSet对象,该对象里保存了SQL语句查询的结果。程序可以通过操作该ResultSet对象来取出查询结果。可以用两种方法:一类:next、previous、first、last、beforeFirst、afterLast、absolute等移动记录指针的方法。
另一类:getXxx(),用于获取记录指针指定行,特定列的值。该方法既可以使用列索引作为参数,也可以使用列名作为参数。使用列索引作为参数性能更好,使用列名作为参数可读性更好。
(6)回收数据库资源,包括关闭ResultSet、Statement和Connection等资源。