编写一个用于读取数据库中表信息的jdbc程序_juechen333的博客-爱代码爱编程
一、要求
1. 请编写一个用于读取数据库中users表信息的JDBC程序,要求分别获取字段id、name、password和email字段的值。
2. 请按照以下要求设计实现PreparedStatement对象的相关批处理操作。
要求如下:
①指定所要执行的SQL语句如下:
String sql = "INSERT INTO users(name,password) VALUES(?,?)";
②编写JDBCUtils工具类,类中要包含获取连接和释放资源的方法。
③编写Example02类,要求在类中使用JDBCUtils工具类获取连接和释放资源,并使用PreparedStatement对象批量添加5条记录。
二、实现
1.Example01.java
import java.sql.*;
public class Example01 {
public static void main(String[] args) throws SQLException {
// 1. 注册数据库的驱动
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
// 2.通过DriverManager获取数据库连接
String url = "jdbc:mysql://localhost:3306/jdbc";
//*代表自己电脑 MySQL的账户名及密码
String username = "*****";
String password = "*****";
Connection conn = DriverManager.getConnection(url, username, password);
// 3.通过Connection对象获取Statement对象
Statement stmt = conn.createStatement();
// 4.使用Statement执行SQL语句。
String sql = "select * from users";
ResultSet rs = stmt.executeQuery(sql);
// 5. 操作ResultSet结果集
System.out.println("id | name | password | email |");
while (rs.next()) {
int id = rs.getInt("id"); // 通过列名获取指定字段的值
String name = rs.getString("name");
String psw = rs.getString("password");
String email = rs.getString("email");
System.out.println(id + " | " + name + " | " + psw + " | " + email);
}
// 6.回收数据库资源
rs.close();
stmt.close();
conn.close();
}
}
2.JDBCUtil.java
import java.sql.*;
public class JDBCUtils {
// 加载驱动,并建立数据库连接
public static Connection getConnection() throws SQLException, ClassNotFoundException {
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
String url = "jdbc:mysql://localhost:3306/jdbc";
//*代表自己电脑 MySQL的账户名及密码
String username = "*****";
String password = "*****";
Connection conn = DriverManager.getConnection(url, username, password);
return conn;
}
// 关闭数据库连接,释放资源
public static void release(Statement stmt, Connection conn) {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt = null;
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
}
public static void release(ResultSet rs, Statement stmt, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs = null;
}
release(stmt, conn);
}
}
3.Example02.java
import java.sql.Connection;
import java.sql.PreparedStatement;
public class Example02 {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement preStmt = null;
try {
// 加载并注册数据库驱动
conn = JDBCUtils.getConnection();
String sql = "INSERT INTO users(name,password)VALUES(?,?)";
preStmt = conn.prepareStatement(sql);
for (int i = 0; i < 5; i++) {
preStmt.setString(1, "name2" + i);
preStmt.setString(2, "password2" + i);
preStmt.addBatch();
}
preStmt.executeBatch();
} catch (Exception e) {
e.printStackTrace();
} finally { // 释放资源
JDBCUtils.release(null, preStmt, conn);
}
}
}