想要在Java程序中连接MySQL数据库的话,必然要学习JDBC技术,因为使用JDBC技术可以非常方便地操作各种主流数据库。大部分应用程序都是使用数据库存储数据的,通过JDBC技术,既可以根据指定条件查询数据库中的数据,又可以对数据库中的数据进行增加、删除、修改等操作。
本文主要介绍如何使用JDBC技术操作MySQL数据库,下面首先介绍JDBC中都有哪些常用的类和接口。
Java提供了丰富的类和接口用于数据库编程,利用这些类和接口可以方便地访问并处理存储在数据库中的数据。这里介绍一些常用的JDBC接口和类,这些接口和类都在java.sql包中。
1.DriverManager类
DriverManager类是JDBC的管理层,被用来管理数据库中的驱动程序。在使用Java操作数据库之前,须使用Class类的静态方法forName(String className)加载能够连接数据库的驱动程序。
例如,加载MySQL数据库驱动程序(包名为mysql_connector_java_5.1.36_bin.jar)的代码如下:
01try{ //加载MySQL数据库驱动
02 Class.forName(“com.mysql.jdbc.Driver”);
03 }catch(ClassNotFoundExceptione) {
04 e.printStackTrace();
05 }
加载完连接数据库的驱动程序后,Java会自动将驱动程序的实例注册到DriverManager类中,这时即可通过DriverManager类的getConnection()方法与指定数据库建立连接。DriverManager类的常用方法及说明如表1所示。
表1DriverManager类的常用方法及说明
方 法
功 能 描 述
getConnection(String url, String user, String password)
根据3个入口参数(依次是连接数据库的URL、用户名、密码),与指定数据库建立连接
例如,使用DriverManager类的getConnection()方法,与本地MySQL数据库建立连接的代码如下:
DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/test”,”root”,”password”);
使用DriverManager类的getConnection()方法,与本地SQLServer 2005以上版本数据库建立连接的代码如下:
DriverManager.getConnection(“jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test”,”sa”,”password”);
使用DriverManager类的getConnection()方法,与本地Oracle数据库建立连接的代码如下:
DriverManager.getConnection(“jdbc:oracle:thin:@//127.0.0.1:1521/test”,”system”,”password”);
2.Connection接口
Connection接口代表Java端与指定数据库之间的连接,Connection接口的常用方法及说明如表2所示。
表2Connection接口的常用方法及说明
函数
作用
createStatement()
创建Statement对象
createStatement(int resultSetType, int resultSetConcurrency)
创建一个Statement对象,Statement对象被用来生成一个具有给定类型、并发性和可保存性的ResultSet对象
preparedStatement()
创建预处理对象preparedStatement
prepareCall(String sql)
创建一个CallableStatement对象来调用数据库存储过程
isReadOnly()
查看当前Connection对象的读取模式是否是只读形式
setReadOnly()
设置当前Connection对象的读写模式,默认为非只读模式
close()
立即释放此Connection对象的数据库和JDBC资源,而不是等待它们被自动释放
例如,使用Connection对象连接MySQL数据库,代码如下:
01 Connectioncon; //声明Connection对象
02try{ //加载MySQL数据库驱动类
03 Class.forName(“com.mysql.jdbc.Driver”);
04 }catch(ClassNotFoundExceptione) {
05 e.printStackTrace();
06 }
07try{ //通过访问数据库的URL获取数据库连接对象
08 con=DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/test”,”root”,”root”);
09 }catch(SQLExceptione) {
10 e.printStackTrace();
11 }
3.Statement接口
Statement接口是被用来执行静态SQL语句的工具接口,Statement接口的常用方法及说明如表3所示。
表3Statement接口的常用方法及说明
方 法
功 能 描 述
execute(String sql)
执行静态的SELECT语句,该语句可能返回多个结果集
executeQuery(String sql)
执行给定的SQL语句,该语句返回单个ResultSet对象
clearBatch()
清空此Statement对象的当前SQL命令列表
executeBatch()
将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。数组元素的排序与SQL语句的添加顺序对应
addBatch(String sql)
将给定的SQL命令添加到此Statement对象的当前命令列表中。如果驱动程序不支持批量处理,将抛出异常
close()
释放Statement实例占用的数据库和JDBC资源
例如,使用连接数据库对象con的createStatement()方法创建Statement对象,代码如下:
01try{
02 Statementstmt=con.createStatement();
03 }catch(SQLExceptione) {
04 e.printStackTrace();
05 }
4.PreparedStatement接口
PreparedStatement接口是Statement接口的子接口,是被用来执行动态SQL语句的工具接口。例如,使用连接数据库对象con的prepareStatement()方法创建PrepareStatement对象,其中需要设置一个参数,代码如下:
PrepareStatement ps=con.prepareStatement(“select * from tb_stu where name= ?”);
ps.setInt(1,”阿强”); //将sql中第1个问号的值设置为“阿强”
下面演示一个Java如何连接MySQL数据库的例子。
要访问数据库,首先要加载数据库的驱动程序(只需要在第一次访问数据库时加载一次),然后每次访问数据时创建一个Connection对象,接着执行操作数据库的SQL语句,最后在完成数据库操作后销毁前面创建的Connection对象,释放与数据库的连接。
在项目中创建类Conn,并创建getConnection()方法,获取与MySQL数据库的连接,在主方法中调用getConnection()方法连接MySQL数据库,代码如下:
01importjava.sql.*; //导入java.sql包
02publicclassConn { // 创建类Conn
03 Connectioncon; // 声明Connection对象
04 publicConnection getConnection() {// 建立返回值为Connection的方法
05 try{ // 加载数据库驱动类
06 Class.forName(“com.mysql.jdbc.Driver”);
07 System.out.println(“数据库驱动加载成功”);
08 }catch(ClassNotFoundExceptione) {
09 e.printStackTrace();
10 }
11 try{ // 通过访问数据库的URL获取数据库连接对象
12 con= DriverManager.getConnection(“jdbc:mysql:”
13 “//127.0.0.1:3306/test”,”root”,”root”);
14 System.out.println(“数据库连接成功”);
15 }catch(SQLExceptione) {
16 e.printStackTrace();
17 }
18 returncon; // 按方法要求返回一个Connection对象
19 }
20 publicstaticvoidmain(String[]args) {// 主方法
21 Connc=newConn(); // 创建本类对象
22 c.getConnection(); // 调用连接数据库的方法
23 }
24 }
运行结果如1所示。
1连接数据库
说明:
加载数据库驱动程序之前,首先需要确定数据库驱动类是否成功加载到程序中,如果没有加载,可以按以下步骤加载,此处以加载MySQL数据库的驱动包为例介绍:
①将MySQL数据库的驱动包mysql_connector_java_5.1.36_bin.jar拷贝到当前项目下。
②选中当前项目,单击右键,选择“Build Path”/“Configure Build Path…”菜单项,在弹出的对话框中(如2所示)左侧选中“Java Build Path”,然后在右侧选中Libraries选项卡,单击“Add External JARs…”按钮,在弹出的对话框中选择要加载的数据库驱动包,即可在中间区域显示选择的JAR包,最后单击Apply按钮即可。
2导入数据库驱动包