JDBC基础

来源:互联网 发布:数据 陈中源 编辑:程序博客网 时间:2024/06/06 10:54

JDBC连接数据库流程

  1. 注册数据库驱动。通常是将数据库驱动类加载到JVM来实现。Class.forName("com.mysql.jdbc.Driver")
  2. 构建数据库连接URL。基本格式:JDBC协议+IP地址或域名+端口+数据库名称
  3. 获取Connection对象。获取方法:DriverManager.getConnection(url,username,password).

当获取Connection为null时查看是否导入jar包!!!

Class.forName()是将指定字符串名的类加载到JVM中。实例中调用该方法加载数据库驱动。

JDBC API

1、Connection接口

方法声明 说明 void close() 释放Connection对象的数据库连接占用的jdbc资源。 void commit() 提交事务,并释放Connection对象当前持有的所有数据库锁。当事务被设置为手动提交时,需要调用该方法。 Statement createStatement() 创建Statement对象来将sql语句发送到数据库。 PreparedStatement prepareStatement(String sql) 将参数化的sql语句预编译并存储在PreparedStatement对象中。

2、DriverManager类

方法声明 说明 Connection getConnection(String url,String user,String password) 根据指定数据库url、用户名和密码建立数据库连接

3、Statement接口

提供执行语句和获取查询结果的方法。

方法声明 说明 void addBatch(String sql) 将sql语句添加到Statement对象的当前命令列表中,用于sql命令的批处理。 void clearBatch() 清空Statement中的命令列表。 void close() 立即释放Statement对象的数据库和JDBC资源。 boolean execute(String sql) 执行sql语句 int[] executeBatch() 将一批sql命令提交给数据库执行,返回更新计数组成的数组。 ResultSet executeQuery(String sql) 执行查询操作,返回结果集。 int executeUpdate(String sql) 执行增删改操作,返回更新影响行数。 Connection getConnection() 获取生成Statement对象的Connection。 boolean isClosed() 判断Statement是否被关闭。

4、PreparedStatement接口

继承于Statement接口,对带有参数sql语句进行扩展,可以使用占位符“?”来代替。
提高sql执行效率,避免注入式攻击.

方法声明 说明 void setInt(int parameterIndex,int x) 将int值x作为sql语句中的参数值,parameterIndex为参数位置的索引 setString(int parameterIndex,int x) 类似 setDate(int parameterIndex,int x) 类似

等等

5、ResultSet接口

方法声明 说明 int getInt(String columnLabel) 以int方式获取ResultSet对象当前行中指定列的值,参数columnLabel为列名称

其余类似

6、存储过程

通过CallableStatement进行操作。调用方法:

{call <procedure-name>[(<arg1>,<arg2>...)]}

通过存储过程查询数据:

DELIMITER $$CREATE PROCEDURE findAllBook()BEGINSELECT * FROM tb_books order by id desc;END $$DELIMITER;--------------------------------------------CallableStatement cs = conn.prepareCall("{call findAllBook()}");//调用存储过程ResultSet rs = cs.executeQuery();

7、分页查询

两种典型分页方法:
1. 通过ResultSet的光标实现分页;
2. 通过数据库机制进行分页。如SQL Server中的top关键字,MySQL中的limit关键字。

Mysql数据库的limit关键字能够查询数据结果集起始位置及返回记录的数量。
limit arg1,arg2
参数说明:
arg1:指定查询记录起始位置;
arg2:指定查询记录返回记录数。

原创粉丝点击