JDBC连接MYSQL分步详解
JDBC是Java Database Connectivity的缩写,表示Java数据连接,是一种标准的Java API。JDBC提供了跨多种数据库管理系统的连接协议,能够让Java程序通过这套协议与数据库进行交互,从而实现对数据的增删改查操作。
本文将详细介绍如何使用JDBC连接MYSQL数据库,包括以下几个步骤:
- 下载安装JDBC驱动
- 导入JDBC驱动包到工程中
- 加载驱动程序
- 建立数据库连接
- 创建Statement对象
- 执行SQL语句
- 处理结果集
- 关闭连接
下面分别进行详细介绍。
1. 下载安装JDBC驱动
MYSQL提供了官方JDBC驱动程序,我们可以从MYSQL官网(https://dev.mysql.com/downloads/connector/j/)上下载最新版本的JDBC驱动程序。下载完成后,跟据系统类型执行解压。
2. 导入JDBC驱动包到工程中
在Eclipse等Java IDE中,导入JDBC驱动包到工程中,或者将驱动程序加入到classpath路径下:
CLASSPATH=%CLASSPATH%;C:/mysql-connector-java-5.1.38-bin.jar;
3. 加载驱动程序
在使用JDBC连接MYSQL数据库之前,需要加载JDBC驱动程序。在Java 1.6及之前的版本中,可以使用如下代码:
Class.forName("com.mysql.jdbc.Driver");
之后可以考虑使用如下代码:
Class.forName("com.mysql.cj.jdbc.Driver");
注意com.mysql.jdbc.Driver在MySQL 8及以上版本中已经无法使用,必须使用com.mysql.cj.jdbc.Driver。
4. 建立数据库连接
JDBC连接MYSQL数据库需要使用JDBC连接URL、用户名和密码。例如:
String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC";
String user="root";
String password="root";
Connection conn=DriverManager.getConnection(url, user, password);
其中,url是JDBC连接字符串,包括了MYSQL的地址、端口号、数据库名、字符集等信息。user和password是MYSQL的用户名和密码。可以根据实际情况调整。
5. 创建Statement对象
创建Statement对象用于执行SQL语句。例:
Statement stmt=conn.createStatement();
在创建Statement对象时,可以设置ResultSet的相关属性,如以下代码:
Statement stmt=conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY,ResultSet.CLOSE_CURSORS_AT_COMMIT);
其中:
- ResultSet.TYPE_FORWARD_ONLY:表示结果集只能向前遍历。
- ResultSet.CONCUR_READ_ONLY:表示结果集是只读的,操作结果不会反映到数据库中。
- ResultSet.CLOSE_CURSORS_AT_COMMIT:表示当事务提交时,光标关闭。
6. 执行SQL语句
执行SQL语句有三种方法,分别是Statement.executeUpdate()、Statement.executeQuery()、PreparedStatement.executeQuery()。其中,Statement.executeUpdate()用于执行INSERT、UPDATE或DELETE等影响数据库的操作;Statement.executeQuery()和PreparedStatement.executeQuery()用于执行SELECT语句查询出结果。
例如:
String sql="SELECT * FROM student";
ResultSet rs=stmt.executeQuery(sql);
7. 处理结果集
在执行查询操作后,需要对结果集进行处理。处理结果集的方法有很多,包括ResultSet.next()、ResultSet.getInt()、ResultSet.getString()等。例如:
while(rs.next()){
int id=rs.getInt("id");
String name=rs.getString("name");
String sex=rs.getString("sex");
int age=rs.getInt("age");
System.out.println(id+'\t'+name+'\t'+sex+'\t'+age);
}
8. 关闭连接
处理完结果集后,应该释放相关资源,包括ResultSet、Statement、Connection等。例如:
rs.close();
stmt.close();
conn.close();
以上就是使用JDBC连接MYSQL数据库的完整攻略。下面给出两个示例:
示例1:插入数据
Class.forName("com.mysql.cj.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC";
String user="root";
String password="root";
Connection conn=DriverManager.getConnection(url, user, password);
Statement stmt=conn.createStatement();
String sql="INSERT INTO student(id,name,sex,age) VALUES(2,'小明','男',20)";
int result=stmt.executeUpdate(sql);
if(result>0){
System.out.println("插入数据成功!");
}
stmt.close();
conn.close();
示例2:查询数据
Class.forName("com.mysql.cj.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC";
String user="root";
String password="root";
Connection conn=DriverManager.getConnection(url, user, password);
Statement stmt=conn.createStatement();
String sql="SELECT * FROM student";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
int id=rs.getInt("id");
String name=rs.getString("name");
String sex=rs.getString("sex");
int age=rs.getInt("age");
System.out.println(id+'\t'+name+'\t'+sex+'\t'+age);
}
rs.close();
stmt.close();
conn.close();
希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JDBC连接MYSQL分步详解 - Python技术站