编写程序,实现对数据库Studentnfo中的表student进行插入操作,要求使用预处理语句对象PreparedStatement完成以下数据的插入
时间: 2024-01-21 10:16:59 浏览: 99
假设Studentnfo数据库中已经有一个名为student的表,且其包含以下字段:
- id:整数类型,自增长
- name:字符串类型,代表学生姓名
- age:整数类型,代表学生年龄
- gender:字符串类型,代表学生性别
- grade:字符串类型,代表学生所在年级
以下是一个使用Java语言和JDBC连接数据库的示例程序,实现向student表中插入一条记录:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class InsertStudent {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/Studentnfo"; // 数据库连接地址
String user = "root"; // 数据库用户名
String password = "123456"; // 数据库密码
try (Connection conn = DriverManager.getConnection(url, user, password)) {
String sql = "INSERT INTO student(name, age, gender, grade) VALUES (?, ?, ?, ?)"; // SQL语句
PreparedStatement pstmt = conn.prepareStatement(sql); // 创建PreparedStatement对象
// 设置参数值
pstmt.setString(1, "张三");
pstmt.setInt(2, 18);
pstmt.setString(3, "男");
pstmt.setString(4, "高一");
int count = pstmt.executeUpdate(); // 执行插入操作
System.out.println("插入了 " + count + " 条记录");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
在上面的示例程序中,我们首先定义了数据库连接地址、用户名和密码等信息,然后使用JDBC API连接到数据库。
接着,我们定义了一个SQL语句,其中使用了占位符(?)来代替实际的参数值。然后,通过调用Connection对象的prepareStatement方法,创建了一个PreparedStatement对象,并将SQL语句作为参数传入。
接下来,我们通过调用PreparedStatement对象的setXXX方法,设置了占位符所对应的参数值。在本例中,我们设置了四个参数,分别为学生姓名、年龄、性别和所在年级。
最后,我们调用PreparedStatement对象的executeUpdate方法,执行插入操作,并返回受影响的记录数。如果插入成功,count的值应该为1。
需要注意的是,上面的程序中并没有手动关闭PreparedStatement对象和Connection对象。这是因为我们使用了try-with-resources语句,它会自动关闭这些资源。如果不使用try-with-resources语句,需要手动调用close方法来释放资源。
阅读全文