Java访问数据库实例详解
本文将详细讲解如何使用Java语言访问数据库,包括连接数据库、增删改查等基本操作。
连接数据库
Java程序可以通过JDBC(Java Database Connectivity) API来连接数据库,同样也需要使用数据库驱动程序。下面是一个使用MySQL数据库连接的示例代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectDatabase {
public static void main(String[] args) {
Connection conn = null;
try {
// 加载MySQL数据库驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 建立数据库连接
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8",
"root",
"password"
);
// 连接成功后执行操作
// ...
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
上述代码可以连接MySQL数据库,其中URL参数中的test为数据库名字,root为用户名,password为密码,可以根据实际情况修改。在连接成功之后,即可执行后续的SQL操作。
增删改查
通过连接数据库后,可以执行以下基本SQL语句:
插入数据
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class InsertData {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
// 加载MySQL数据库驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 建立数据库连接
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8",
"root",
"password"
);
// 插入数据
String sql = "INSERT INTO user VALUES (?, ?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
pstmt.setInt(2, 20);
pstmt.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
更新数据
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class UpdateData {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
// 加载MySQL数据库驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 建立数据库连接
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8",
"root",
"password"
);
// 更新数据
String sql = "UPDATE user SET age=? WHERE name=?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 21);
pstmt.setString(2, "张三");
pstmt.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
删除数据
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class DeleteData {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
// 加载MySQL数据库驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 建立数据库连接
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8",
"root",
"password"
);
// 删除数据
String sql = "DELETE FROM user WHERE name=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
pstmt.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
查询数据
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class QueryData {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// 加载MySQL数据库驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 建立数据库连接
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8",
"root",
"password"
);
// 查询数据
String sql = "SELECT * FROM user";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println("name: " + name + ", age: " + age);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
小结
本文详细讲解了如何连接数据库和执行简单的增删改查操作,可以根据实际情况进行修改和扩展。通过掌握这些基本操作,可以在Java项目中使用数据库存储数据,提高代码的可扩展性和性能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java访问数据库实例详解 - Python技术站