- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
jdbc关联模型查询-多表查询返回结果集
jdbc多表关联查询,多表查询返回结果集处理方法。
该功能常见于两表或者多表关联查询中使用,返回的查询结果是多个(或两个)表中的字段信息,无法使用单个模型来存储时使用,使用转换后,可以将查询结果使用json传递或页面之间的参数传递。
**
举例说明:
**
例如员工表(user)表结构是拥有user_id 、usernaem、email 、dept_id 等字段
部门表(dept)表结构拥有dept_id、dept_phone 、dept_name 等字段。
我们要通过sql查询出每个员工所在部门名称和部门电话 员工姓名 邮箱
String sql = “select username,email,dept_phone,dept_name from user u,dept d where u.dept_id=d.dept_id “;
创建和数据库一一对应的实体类User
public class User {
public int user_id;
public String usernaem;
public String email;
public int dept_id;
//此处省略set get方法 toString 还有构造函数
}
public class Dept {
public int dept_id;
public String dept_phone;
public String dept_name;
//此处省略set get方法 toString 还有构造函数
}
很显然如果要将查询出来的通过DAO方法返回结果是无法实现的,此时有两个解决方法,一、可以通过通过构建一个复杂的Java实体类来实现,
二、通过将查询结果保存为Map集合,如果返回多调记录,则将map加入List中返回,
方法一:
例如:
public class UserDept {
public int user_id;
public String usernaem;
public String email;
public int dept_id;
public String dept_phone;
public String dept_name;
//此处省略set get方法 toString 还有构造函数
}
将查询的结果保存在UserDept 实体类中,但是这样的方式显然不灵活,如果遇到关联查询返会的信息非常多时,或者要多次查询每次返回不同的结果集合是就非常麻烦,每次都要写不同的实体类,显然这样做非常不利,而且维护成本也非常高。所以在此我推荐方法二:
方法二
新建类ModelConvert 包含以下两个方法,用于查询结果集转换
该工具类为数据库关联模型查询工具转换
convertList方法 是将关联查询出来的结果通过map保存多条记录使用list存储
convertMap方法 是将单挑查询记录通过map保存进行值传递
/* 用于将rs查询结果封装为ListMapString, Object对象
*
* @param rs数据库查询结果
* @return 返回list map封装后的结果
*/
public static ListMapString, Object convertList(ResultSet rs) {
// 新建一个map list集合用于存放多条查询记录
ListMapString, Object list = new ArrayListMapString, Object();
try {
ResultSetMetaData md = rs.getMetaData();// 结果集(rs)的结构信息,比如字段数、字段名等。
int columnCount = md.getColumnCount();// 取得查询出来的字段个数
while (rs.next()) {// 迭代rs
// 新建一个map集合 将查询出内容按照字段名:值 的键值对形式存储在map集合中
MapString, Object rowData = new HashMapString, Object();
for (int i =
您可能关注的文档
最近下载
- 理解当代中国 英语读写教程Unit 5 英语读写教程课件.pptx VIP
- 名校课堂八上物理电子版不带答案.doc VIP
- 2025年试题国家保安员资格考试试题+答案.docx VIP
- 2024年版羽毛球馆租赁协议样本.docx VIP
- 要素式起诉状(机动车交通事故责任纠纷).doc VIP
- 焙烧炉天然气燃烧自动控制系统的研究与应用.docx VIP
- 2019-2020学年上海市市东中学高三政治测试题.docx VIP
- 上海市市东中学2023年高二物理联考试题含解析.docx VIP
- 上海市市东中学2022年高二地理月考试题含解析.docx VIP
- 上海市市东中学高二化学上学期期末试卷含解析.docx VIP
原创力文档


文档评论(0)