我们知道,在Java应用中经常需要使用到MySQL数据库。而在使用MySQL数据库时,常见的操作就是增删改查。本文就来详细讲解如何通过Java程序连接MySQL数据库并实现增删改查操作。
在开始使用Java连接MySQL数据库之前,需要进行一些准备工作:
这里不再详细讲解具体的步骤,读者可自行了解相关知识。
在Java中,我们使用JDBC技术连接MySQL数据库。连接MySQL数据库的代码如下:
public static Connection getConnection() {
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/test"; // 数据库地址
String user = "root"; // 用户名
String password = "123456"; // 密码
try {
// 加载MySQL驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 获取数据库连接
conn = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
其中,需要注意jdbc:mysql://localhost:3306/test中,localhost表示数据库所在的主机IP地址,3306表示MySQL服务的端口号,test表示所要连接的数据库名称。
一般来说,我们有四种常见的操作,即增(INSERT)、删(DELETE)、改(UPDATE)和查(SELECT)。下面分别介绍这四种操作的实现方法。
向MySQL数据库插入数据的代码如下:
public static void insert() {
Connection conn = getConnection();
PreparedStatement pstmt = null;
try {
String sql = "INSERT INTO users(username,password,email) VALUES(?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
pstmt.setString(2, "123456");
pstmt.setString(3, "zhangsan@qq.com");
int result = pstmt.executeUpdate();
System.out.println(result > 0 ? "插入成功!" : "插入失败!");
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
上述代码中,首先获取数据库连接,然后通过PreparedStatement对象执行SQL语句,最后关闭PreparedStatement对象和数据库连接。
从MySQL数据库中删除数据的代码如下:
public static void delete() {
Connection conn = getConnection();
PreparedStatement pstmt = null;
try {
String sql = "DELETE FROM users WHERE username=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
int result = pstmt.executeUpdate();
System.out.println(result > 0 ? "删除成功!" : "删除失败!");
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
上述代码中,首先获取数据库连接,然后通过PreparedStatement对象执行SQL语句,最后关闭PreparedStatement对象和数据库连接。
更新MySQL数据库中的数据的代码如下:
public static void update() {
Connection conn = getConnection();
PreparedStatement pstmt = null;
try {
String sql = "UPDATE users SET password=? WHERE username=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "654321");
pstmt.setString(2, "张三");
int result = pstmt.executeUpdate();
System.out.println(result > 0 ? "更新成功!" : "更新失败!");
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
上述代码中,首先获取数据库连接,然后通过PreparedStatement对象执行SQL语句,最后关闭PreparedStatement对象和数据库连接。
在MySQL数据库中查询数据的代码如下:
public static void select() {
Connection conn = getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
String sql = "SELECT * FROM users WHERE username=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println("用户名:" + rs.getString("username"));
System.out.println("密码:" + rs.getString("password"));
System.out.println("邮箱:" + rs.getString("email"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
rs.close();
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
上述代码中,首先获取数据库连接,然后通过PreparedStatement对象执行SQL语句,最后遍历ResultSet对象获取查询结果,最后关闭ResultSet对象、PreparedStatement对象和数据库连接。
下面给出完整的示例代码:
import java.sql.*;
public class MySQLUtils {
public static Connection getConnection() {
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/test"; // 数据库地址
String user = "root"; // 用户名
String password = "123456"; // 密码
try {
// 加载MySQL驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 获取数据库连接
conn = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static void insert() {
Connection conn = getConnection();
PreparedStatement pstmt = null;
try {
String sql = "INSERT INTO users(username,password,email) VALUES(?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
pstmt.setString(2, "123456");
pstmt.setString(3, "zhangsan@qq.com");
int result = pstmt.executeUpdate();
System.out.println(result > 0 ? "插入成功!" : "插入失败!");
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void delete() {
Connection conn = getConnection();
PreparedStatement pstmt = null;
try {
String sql = "DELETE FROM users WHERE username=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
int result = pstmt.executeUpdate();
System.out.println(result > 0 ? "删除成功!" : "删除失败!");
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void update() {
Connection conn = getConnection();
PreparedStatement pstmt = null;
try {
String sql = "UPDATE users SET password=? WHERE username=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "654321");
pstmt.setString(2, "张三");
int result = pstmt.executeUpdate();
System.out.println(result > 0 ? "更新成功!" : "更新失败!");
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void select() {
Connection conn = getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
String sql = "SELECT * FROM users WHERE username=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println("用户名:" + rs.getString("username"));
System.out.println("密码:" + rs.getString("password"));
System.out.println("邮箱:" + rs.getString("email"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
rs.close();
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
insert(); // 插入数据
delete(); // 删除数据
update(); // 更新数据
select(); // 查询数据
}
}
本文介绍了Java连接MySQL数据库的常见操作方法,通过示例代码示范了增、删、改、查的具体实现方式。对于初学者而言,这些操作是非常基础的操作,掌握之后能够为日后的工作打下坚实的基础。
本文链接:http://task.lmcjl.com/news/3376.html