下面是如何使用JDBC连接数据库并执行SQL语句的完整攻略:
一、引入JDBC驱动
在Java程序中使用JDBC(Java DataBase Connectivity)需要先引入JDBC驱动。不同的数据库所对应的驱动不同,这里以MySQL为例:
<!-- 在项目的pom文件中添加MySQL驱动的依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
二、建立数据库连接
在Java中使用JDBC连接数据库的过程可以分为以下几个步骤:
- 加载JDBC驱动(Driver)类,这里以MySQL为例:
Class.forName("com.mysql.cj.jdbc.Driver");
- 创建一个数据库连接,需要提供连接URL(包含数据库名称)、用户名、密码:
Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name", "username", "password");
三、执行SQL语句
连接建立好了之后,就可以执行SQL语句了。JDBC中提供了Statement和PreparedStatement两种方式执行SQL语句。
1. Statement
使用Statement执行SQL语句可以直接执行SQL。示例代码如下:
Statement stmt = conn.createStatement();
// 执行SQL语句,返回受影响的行数
int affectedRows = stmt.executeUpdate("INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3)");
2. PreparedStatement
使用PreparedStatement可以让我们在执行SQL语句的时候方便地传入参数。示例代码如下:
// PreparedStatement的创建方式和Statement不同,需要提供一个含有参数占位符的SQL语句
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM table_name WHERE column1 = ?");
// 设置参数值
pstmt.setString(1, "value1");
// 执行SQL语句,返回查询结果集对象
ResultSet rs = pstmt.executeQuery();
四、关闭连接
关闭资源是非常重要的一步。
Connection、Statement和PreparedStatement都实现了AutoCloseable接口,可以使用try-with-resources代码块自动关闭资源。示例代码如下:
try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name", "username", "password");
Statement stmt = conn.createStatement()) {
// 执行SQL语句
} catch (SQLException e) {
e.printStackTrace();
}
以上就是使用JDBC连接数据库并执行SQL语句的完整攻略,通过以上的方法你可以在Java程序中方便快捷地连接数据库,并完成各种操作。
下面是两个示例:
示例一:使用Statement执行一条插入数据的SQL语句
public void insertData(String name, int age, String sex) {
try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name", "username", "password");
Statement stmt = conn.createStatement()) {
String sql = "INSERT INTO user (name, age, sex) VALUES('" + name + "', " + age + ", '" + sex + "')";
int affectedRows = stmt.executeUpdate(sql);
System.out.println("插入成功,受影响的行数为:" + affectedRows);
} catch (SQLException e) {
e.printStackTrace();
}
}
示例二:使用PreparedStatement执行一条查询的SQL语句
public List<User> queryData(String name) {
List<User> userList = new ArrayList<>();
try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name", "username", "password");
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM user WHERE name = ?")) {
pstmt.setString(1, name);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setAge(rs.getInt("age"));
user.setSex(rs.getString("sex"));
userList.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}
return userList;
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何使用JDBC连接数据库并执行SQL语句 - Python技术站