首先简述一下本文所讲解的内容。本文将会讲述Java操作MySQL中的增删改查基础操作,主要通过JDBC连接MySQL数据库,并通过代码实现简单的增删改查。
文章结构如下:
- 准备工作
- 连接数据库
- 插入数据
- 修改数据
- 查询数据
- 关闭连接
1. 准备工作
在开始编写Java操作MySQL入门代码实例前,需要以下准备工作:
- 安装MySQL数据库并创建一个新的数据库;
- 安装JDBC驱动程序;
- 创建Java Maven工程,并添加JDBC驱动程序依赖项。
本文的示例中将会使用MySQL数据库,JDBC驱动使用mysql-connector-java,Java IDE使用Eclipse。
2. 连接数据库
先介绍连接MySQL数据库的步骤。以下是连接MySQL数据库的一些详细步骤:
Connection conn = null;
Statement stmt = null;
try {
// 加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 获取数据库连接
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 创建 Statement 对象
stmt = conn.createStatement();
} catch (SQLException se) {
// 处理 JDBC 错误
se.printStackTrace();
} catch (Exception e) {
// 处理 Class.forName 错误
e.printStackTrace();
} finally {
// 关闭资源
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException se2) {}
try {
if (conn != null) {
conn.close();
}
} catch (SQLException se) {
se.printStackTrace();
}
}
需要注意的是,如果在 Java 6 或以上版本中,使用时不需要在代码中 Class.forName(),如下:
Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
上方的方式仅适用于 Java 6 或以上的版本。
代码讲解:
- 加载驱动程序Class.forName("com.mysql.jdbc.Driver"),该命令告诉编译器我们将要使用MySQL的驱动程序,先前需要将驱动程序文件复制到classpath下(比如src目录下);
- 获得连接DriverManager.getConnection(url, username, password);
- 创建 Statement 对象stmt = conn.createStatement(),该对象用于我们后面的增删改查操作。
3. 插入数据
接下来介绍如何插入数据。以下是插入数据的一些详细步骤:
Connection conn = null;
Statement stmt = null;
try {
// 加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 获取数据库连接
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 创建 Statement 对象
stmt = conn.createStatement();
// 插入数据
String sql = "INSERT INTO Student(ID, Name, Age) VALUES (1, 'Tom', 18)";
stmt.executeUpdate(sql);
} catch (SQLException se) {
// 处理 JDBC 错误
se.printStackTrace();
} catch (Exception e) {
// 处理 Class.forName 错误
e.printStackTrace();
} finally {
// 关闭资源
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException se2) {}
try {
if (conn != null) {
conn.close();
}
} catch (SQLException se) {
se.printStackTrace();
}
}
代码讲解:
- 创建SQL语句字符串。在本例中,我们将向 Student 表中插入一条名为“Tom”的学生记录;
- 执行SQL语句stmt.executeUpdate()。
下面是一个插入多条数据的示例:
Connection conn = null;
Statement stmt = null;
try {
// 加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 获取数据库连接
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 创建 Statement 对象
stmt = conn.createStatement();
// 插入数据
String sql = "INSERT INTO Student(ID, Name, Age) VALUES (2, 'Jerry', 19), (3, 'Lucy', 20), (4, 'Tony', 22)";
stmt.executeUpdate(sql);
} catch (SQLException se) {
// 处理 JDBC 错误
se.printStackTrace();
} catch (Exception e) {
// 处理 Class.forName 错误
e.printStackTrace();
} finally {
// 关闭资源
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException se2) {}
try {
if (conn != null) {
conn.close();
}
} catch (SQLException se) {
se.printStackTrace();
}
}
4. 修改数据
介绍如何修改数据。以下是修改数据的一些详细步骤:
Connection conn = null;
Statement stmt = null;
try {
// 加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 获取数据库连接
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 创建 Statement 对象
stmt = conn.createStatement();
// 修改数据
String sql = "UPDATE Student SET Name = 'Mary' WHERE ID = 1";
stmt.executeUpdate(sql);
} catch (SQLException se) {
// 处理 JDBC 错误
se.printStackTrace();
} catch (Exception e) {
// 处理 Class.forName 错误
e.printStackTrace();
} finally {
// 关闭资源
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException se2) {}
try {
if (conn != null) {
conn.close();
}
} catch (SQLException se) {
se.printStackTrace();
}
}
代码讲解:
- 创建 SQL 语句字符串。在本例中,我们将把 ID 等于 1 的学生的名字从“Tom”更改为“Mary”;
- 执行 SQL 语句stmt.executeUpdate()。
下面是一个修改多条数据的示例:
Connection conn = null;
Statement stmt = null;
try {
// 加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 获取数据库连接
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 创建 Statement 对象
stmt = conn.createStatement();
// 修改数据
String sql = "UPDATE Student SET Name = 'Lucy' WHERE ID IN (2, 3)";
stmt.executeUpdate(sql);
} catch (SQLException se) {
// 处理 JDBC 错误
se.printStackTrace();
} catch (Exception e) {
// 处理 Class.forName 错误
e.printStackTrace();
} finally {
// 关闭资源
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException se2) {}
try {
if (conn != null) {
conn.close();
}
} catch (SQLException se) {
se.printStackTrace();
}
}
5. 查询数据
介绍如何查询数据。以下是查询数据的一些详细步骤:
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 获取数据库连接
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 创建 Statement 对象
stmt = conn.createStatement();
// 查询数据
String sql = "SELECT * FROM Student";
rs = stmt.executeQuery(sql);
// 处理结果集
while(rs.next()){
// 通过字段检索
int id = rs.getInt("ID");
String name = rs.getString("Name");
int age = rs.getInt("Age");
// 输出数据
System.out.print("ID: " + id);
System.out.print(", 姓名: " + name);
System.out.print(", 年龄: " + age);
System.out.print("\n");
}
} catch (SQLException se) {
// 处理 JDBC 错误
se.printStackTrace();
} catch (Exception e) {
// 处理 Class.forName 错误
e.printStackTrace();
} finally {
// 关闭资源
try {
if (rs != null) {
rs.close();
}
} catch (SQLException se1) {}
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException se2) {}
try {
if (conn != null) {
conn.close();
}
} catch (SQLException se) {
se.printStackTrace();
}
}
代码讲解:
- 创建 SQL 语句字符串。在本例中,我们将查询 Student 表中的所有记录。SELECT * FROM Student;
- 执行查询操作stmt.executeQuery();
- 处理结果集ResultSet。while(rs.next())为遍历数据结果集,通过 getInt()、getString() 等方法获取指定列的数据。
下面是一个根据条件查询数据的示例:
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 获取数据库连接
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 创建 Statement 对象
stmt = conn.createStatement();
// 查询数据
String sql = "SELECT * FROM Student WHERE Name = 'Mary'";
rs = stmt.executeQuery(sql);
// 处理结果集
while(rs.next()){
// 通过字段检索
int id = rs.getInt("ID");
String name = rs.getString("Name");
int age = rs.getInt("Age");
// 输出数据
System.out.print("ID: " + id);
System.out.print(", 姓名: " + name);
System.out.print(", 年龄: " + age);
System.out.print("\n");
}
} catch (SQLException se) {
// 处理 JDBC 错误
se.printStackTrace();
} catch (Exception e) {
// 处理 Class.forName 错误
e.printStackTrace();
} finally {
// 关闭资源
try {
if (rs != null) {
rs.close();
}
} catch (SQLException se1) {}
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException se2) {}
try {
if (conn != null) {
conn.close();
}
} catch (SQLException se) {
se.printStackTrace();
}
}
6. 关闭连接
最后一个步骤是关闭连接。无论成功还是失败,在处理完数据库操作后,我们都应该关闭连接。以下是关闭连接的一些详细步骤:
try {
if (rs != null) {
rs.close();
}
} catch (SQLException se1) {}
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException se2) {}
try {
if (conn != null) {
conn.close();
}
} catch (SQLException se) {
se.printStackTrace();
}
需要注意的是,连接和语句对象必须在 ResultSet 对象关闭之前关闭。
至此,Java操作MySQL入门代码实例(含插入、更新和查询)的完整攻略就完整讲解完毕了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java操作mysql入门代码实例(含插入、更新和查询) - Python技术站