如何使用JDBC在Java中创建一个名为GoodsDao的类,并实现一个名为getAllgoods的方法来获取所有商品的列表(返回类型为List<Goods>)?(请提供30分相关代码和注释)
时间: 2024-12-16 22:31:29 浏览: 6
java如何获得数据库表中各字段的字段名
5星 · 资源好评率100%
在Java中,我们可以使用JDBC (Java Database Connectivity) 来连接数据库并执行SQL查询。这里是一个简单的示例,我们将创建一个名为`GoodsDao`的类,它将包含一个静态方法`getAllGoods()`,该方法会通过JDBC连接到数据库获取所有商品。
```java
import java.sql.*;
import java.util.List;
import java.util.ArrayList;
// 创建一个Goods实体类,假设你已经有了这个类
public class Goods {
private int id;
private String name;
// ... 其他属性和构造方法、getter和setter
}
// GoodsDao类
public class GoodsDao {
// 数据库连接信息,替换为实际的URL, 用户名和密码
private static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";
private static final String USER = "username";
private static final String PASS = "password";
/**
* 获取所有商品的列表
* @return 商品列表(List<Goods>)
*/
public static List<Goods> getAllGoods() {
List<Goods> goodsList = new ArrayList<>();
try {
// 1. 建立数据库连接
Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Connected to the database");
// 2. 创建Statement对象或PreparedStatement对象用于执行SQL查询
// 因为涉及到参数绑定,我们通常使用PreparedStatement来防止SQL注入攻击
String sql = "SELECT * FROM goods"; // 假设goods表有id, name等列
PreparedStatement pstmt = conn.prepareStatement(sql);
// 3. 执行查询并获取结果集
ResultSet rs = pstmt.executeQuery();
// 4. 遍历结果集,将数据转换成Goods对象并添加到列表中
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
// 假设Goods类有对应的构造函数接收这些值
Goods good = new Goods(id, name);
goodsList.add(good);
}
// 5. 关闭资源
rs.close();
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
System.err.println("Error connecting to database: " + e.getMessage());
}
return goodsList;
}
}
阅读全文