已知MySql数据库db->user及表如下: id name pwd level 1 aaa 1234 0 2 bbb 1111 1 其中(id、level为int name、pwd为varchar类型) 假设Mysql数据库访问的用户名和密码均为为root,要求使用jdbc接口技术实现Java对数据库的查询操作并按要求处理user中的用户数据: 3.1 根据数据库表分析编写User自定义JavaBean类 3.2 编写JdbcTest测试类,使用5步骤实现对数据库的访问 3.1.1、加载MySql数据库底层驱动 3.1.2、建立和MySql数据库的连接Connection实例 3.1.3、根据连接对象创建执行sql语句的预编译PreparedStatement实例 3.1.4、执行查询sql语句并对结果集ResultSet处理 将查询的user表数据封装到user对象中并存入ArrayList uses集合中 3.3 完成对users集合的遍历输出
时间: 2024-03-08 11:47:48 浏览: 240
好的,我会根据您的要求回答您的问题。下面是您提出的问题的回答:
3.1 根据数据库表分析编写User自定义JavaBean类
根据数据库表分析,我们可以得到 User 实体类的属性有 id、name、pwd、level,其中 id 和 level 是 int 类型,name 和 pwd 是 varchar 类型。可以按照以下方式编写 User 类:
```java
public class User {
private int id;
private String name;
private String pwd;
private int level;
// 构造方法
public User(int id, String name, String pwd, int level) {
this.id = id;
this.name = name;
this.pwd = pwd;
this.level = level;
}
// getter 和 setter 方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
}
```
3.2 编写 JdbcTest 测试类,使用 5 步骤实现对数据库的访问
在 JdbcTest 类中,我们需要完成以下 5 个步骤,分别是加载 MySql 数据库底层驱动、建立和 MySql 数据库的连接 Connection 实例、根据连接对象创建执行 sql 语句的预编译 PreparedStatement 实例、执行查询 sql 语句并对结果集 ResultSet 处理,将查询的 user 表数据封装到 User 对象中并存入 ArrayList<User> 集合中,最后完成对 users 集合的遍历输出。
```java
import java.sql.*;
import java.util.ArrayList;
public class JdbcTest {
public static void main(String[] args) {
// 定义需要用到的变量
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
ArrayList<User> users = new ArrayList<>();
try {
// 1. 加载MySql数据库底层驱动
Class.forName("com.mysql.jdbc.Driver");
// 2. 建立和MySql数据库的连接Connection实例
String url = "jdbc:mysql://localhost:3306/db";
String user = "root";
String password = "root";
conn = DriverManager.getConnection(url, user, password);
// 3. 根据连接对象创建执行sql语句的预编译PreparedStatement实例
String sql = "SELECT * FROM user";
ps = conn.prepareStatement(sql);
// 4. 执行查询sql语句并对结果集ResultSet处理
rs = ps.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String pwd = rs.getString("pwd");
int level = rs.getInt("level");
User userObj = new User(id, name, pwd, level);
users.add(userObj);
}
// 5. 完成对users集合的遍历输出
for (User user : users) {
System.out.println(user.getId() + "\t" + user.getName() + "\t" + user.getPwd() + "\t" + user.getLevel());
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
// 关闭连接,释放资源
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
以上就是根据您提供的信息编写的代码,可以实现 Java 对数据库的查询操作和对 users 集合的遍历输出。
阅读全文