java pojo映射_java – 将ResultSet映射到Pojo对象
那真是令人尴尬我已经制作了一个标准的pojo类和它的dao类用于数据检索.我很难理解如何处理Pojo类的自定义查询数据的基本过程.
假设我的用户类是
public class User{
private int userId;
private String username;
private int addressId;
}
public class Address{
private int addressId;
private String zip;
}
public class UserDAO{
public void getUserDetails(){
String getSql = select u.userId, u.username, a.zipcode from user u, address a where u.addressId = a.addressId;
//no pojo class is now specific to the resultset returned. so we can't map result to pojo object
}
}
现在我应该如何使用我的pojo类对其进行建模,就好像使用String来管理这个面向对象的概念消失一样,未来复杂性也会增加.亲切的指导!
更新进一步说明
我们知道我们可以使用相同的pojo类映射相同的表对象,但是当查询被自定义并且返回的数据没有映射到任何特定的类时,那么程序是什么?即我们应该再上一堂课?或者我们应该将这些数据放在String变量中?请举一些例子.
最佳答案 为此,您可以使用
JPA的实现之一.但是,如果您想手动执行,我会给您一个小例子.
UPD:
public class User {
private int userId;
private String username;
private Address address; // USE POJO not ID
}
public class Address{
private int addressId;
private String zip;
List users;
}
public User getUserById(Connection con, long userId) {
PreparedStatement stmt;
String query = "select u.user_id, u.user_name, a.id, a.zip from user u, address a where a.address_id = u.id and u.id = ?";
User user = new User();
Address address = new Address;
try {
stmt = con.prepareStatement(query);
stmt.setLong(1, userId);
ResultSet rs = stmt.executeQuery();
address.setId(rs.getInt("id"));
address.setZip(rs.getString("zip");
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("user_name"));
user.setAddressId(rs.getInt("address_id"));
user.setAddress(address); // look here
} catch (SQLException e) {
if (con != null) {
try {
System.err.print("Transaction is being rolled back");
con.rollback();
} catch (SQLException excep) {
}
}
} finally {
if (stmt != null) {
stmt.close();
}
}
return user;
}
您不应该为该查询执行新的POJO,您应该编写正常的查询.请记住 – 您的对象模型是主要的,DB中的表只是一种保存应用程序数据的方法.
java pojo映射_java – 将ResultSet映射到Pojo对象相关推荐
- java dozer 深度_java – Dozer深度映射设置为Set
免责声明: Mapping deep properties with intermediate collections in dozer已经提出了同样的问题,但没有接受答案(我的案例没有正确答案). ...
- java并发进程共享变量_JAVA并发编程学习:共享对象
可见性 在一个单线程程序中,如果向一个变量先写入值,然后在没有写干涉的情况下读取这个变量,会得到相同的返回值.但是当读和写发生在不同的线程中时,就不能保证读线程及时地读取其他线程写入的值.在JAVA中 ...
- java面向对象数组_Java面向对象的构造器与数组对象
Java开发离不开面相对象,那么面向对象如何来的?什么又是数组对象?今天小编就来与大家共同学习一下Java的面向对象的构造器与数组对象. 构造器:用于创建对象时执行初始化.当创建一个对象时eg:new ...
- java sql 排序_JAVA像SQL一样对List对象集合进行排序
在开始之前,我先卖个关子提一个问题:假设我们有一个Movie类,这个类有三个成员变量分别是starred(是否收藏), title(电影名称), rating(评分).你知道怎么对一个Movie对象组 ...
- java jsp动作_Java中级—JSP九大内置对象和动作
一.内置对象 在JSP中,内置对象又称为隐含对象,是指在不声明和创建的情况下就可以被使用的一些成员变量.JSP一共提供有9个内置对象,分别是request(响应对象).pageContext(页面上下 ...
- java 管道流_Java IO7:管道流、对象流
前言 前面的文章主要讲了文件字符输入流FileWriter.文件字符输出流 FileReader.文件字节输出流FileOutputStream.文件字节输入流FileInputStream,这些都是 ...
- java函数调用实例_Java使用方法引用实现任意对象的实例方法
方法引用是Java8中的一个新特性,它与Lambda表达式相关. 它允许我们在不执行构造函数或方法的情况下引用它们. 方法引用和lambda表达式相似,因为它们都需要由兼容的函数接口组成的目标类型. ...
- java criteria创建_Java hibernate如何创建一个Criteria对象?
本示例向您展示如何创建HibernateCriteria类的实例.要创建一个Criteria我们调用Session对象的工厂方法并传递持久性类作为参数.要执行Criteria查询,我们只需调用list ...
- java返回泛型_Java泛型从泛型方法返回持有者对象
在下面的: public interface SomeInteface { public B doSomething(A a); } 我想实现一个版本,其中方法doSomething将参数返回回来. ...
最新文章
- jittor和pytorch生成网络对比之sgan
- python基础教程:懒惰属性(延迟初始化)
- 使用tensorflow查询机器上是否存在可用的gpu设备
- limesurvey php5.2,limesurvey(配置心得)
- [vue] 在vue事件中传入$event,使用e.target和e.currentTarget有什么区别?
- 半正定问题与二阶凸锥问题(SDPSOCP)
- 第九章php与数据交互,利用ajax实现与php数据交互,并局部刷新页面
- Stanford CS230深度学习(六)目标检测、人脸识别和神经风格迁移
- pycharm:一直indexing,怎么解决?
- [直观学习排序算法] 视觉直观感受若干常用排序算法
- C语言实现简单计算器。
- R语言使用order函数对dataframe数据进行排序、基于单个字段(变量)进行升序排序(ASCENDING)
- 扫码枪回车键条码_条码扫描枪不自动换行怎么办,怎么设置自动回车?
- mysql内表和外表_内表查询用到外表
- 年审是当月还是当天_车辆年审时间当月到当月办理可以吗
- [构造]triples I
- web 前端的浏览器
- 成功_专业_社交_意识
- EXCEL中阿拉伯数字版转成汉语大写代码
- 物理|北大大佬分享物理学习经验
热门文章
- 秒杀场景下如何保证数据一致性?就这个问题我给出了最详细的方案
- 《系统思考实践篇》知识点框架总结
- python 彩票预测算法_Python爬虫之爬取彩票并简单统计
- 美国计算机科学比赛,祝贺英中学子成功晋级2020美国计算机科学联赛全明星赛(中国赛区)...
- linux桌面美化之把linux桌面变成苹果桌面
- 实现溢出隐藏 css
- python中随机数函数_Python随机数函数
- mysql xa 事务_MySQL的XA事务问题分析
- 西工大计算机学院李春科,陕西省“翱翔杯”立方星设计大赛决赛落下帷幕
- c++ unique函数