java JDBC 查询数据库得到的resultSet结果集转换成实体类对象和实体类对象列表
前言最近有个实现1.示例数据本文将使用jdbc查询下图中的数据库数据,并将其查询结果转换成实体类对象和实体类对象列表。2.创建实体类根据所需要查询的数据创建相应的实体类。package test;/*** @author wingkin* @date 2021/7/2 15:53*/public class UserBean {private int id;private String name;
·
前言
最近有个需求里要将jdbc查询到的数据转换为实体类对象,记录下实现方法。
实现
1.示例数据
本文将使用jdbc查询下图中的数据库数据,并将其查询结果转换成实体类对象和实体类对象列表。
2.创建实体类
根据所需要查询的数据创建相应的实体类。
package test;
/**
* @author wingkin
* @date 2021/7/2 15:53
*/
public class UserBean {
private int id;
private String name;
private String sex;
private int age;
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 getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "UserBean{" +
"id=" + id +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
'}';
}
}
3.实现代码
import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author wingkin
* @date 2021/7/2 15:37
*/
public class ResultSetToBean {
private static final Logger log = LoggerFactory.getLogger(ResultSetToBean.class);
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Connection connection = null;
PreparedStatement ps = null;
ResultSet resultSet = null;
List<UserBean> userBeanList = new ArrayList<>();
try {
// 指定Driver Class
Class.forName("com.mysql.cj.jdbc.Driver");
// 创建MySQL连接,参数依次为数据库连接地址、用户和密码
connection = DriverManager.getConnection(
"jdbc:mysql://118.178.189.127:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai",
"root",
"123456");
String querySql = "SELECT * FROM `user` a WHERE a.id >= ?";
ps = connection.prepareStatement(querySql);
int id = 1;
// 拼接查询SQL,将id的值拼接到querySql中的第一个问号里
ps.setInt(1, id);
resultSet = ps.executeQuery();
// 获取ResultSet对象的列的数量、类型和属性。
ResultSetMetaData md = resultSet.getMetaData();
int columnCount = md.getColumnCount();
// 将ResultSet对象的列名和值存到map中,再将map转换为json字符串,最后将json字符串转换为实体类对象
Map<String, Object> rowData = new HashMap<>();
while (resultSet.next()) {
for (int i = 1; i <= columnCount; i++) {
rowData.put(md.getColumnLabel(i), resultSet.getObject(i));
}
String jsonStr = JSONObject.toJSONString(rowData);
UserBean userBean = JSONObject.parseObject(jsonStr, UserBean.class);
log.info("转换为实体类对象:{}",userBean);
userBeanList.add(userBean);
}
log.info("实体类对象列表:{}",userBeanList);
} catch (SQLException | ClassNotFoundException e) {
throw e;
} finally {
if(resultSet != null) {
resultSet.close();
}
if(ps != null) {
ps.close();
}
if(connection != null) {
connection.close();
}
}
}
}
4.运行结果
总结
本文实现了java JDBC 查询数据库得到的resultSet结果集转换成实体类对象和实体类对象列表。
更多推荐
已为社区贡献3条内容
所有评论(0)