jdbc关联模型查询-多表查询返回结果集

jdbc关联模型查询-多表查询返回结果集

ID:39551637

大小:54.00 KB

页数:7页

时间:2019-07-06

jdbc关联模型查询-多表查询返回结果集_第1页
jdbc关联模型查询-多表查询返回结果集_第2页
jdbc关联模型查询-多表查询返回结果集_第3页
jdbc关联模型查询-多表查询返回结果集_第4页
jdbc关联模型查询-多表查询返回结果集_第5页
资源描述:

《jdbc关联模型查询-多表查询返回结果集》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、jdbc关联模型查询-多表查询返回结果集jdbc多表关联查询,多表查询返回结果集处理方法。该功能常见于两表或者多表关联查询中使用,返回的查询结果是多个(或两个)表中的字段信息,无法使用单个模型来存储时使用,使用转换后,可以将查询结果使用json传递或页面之间的参数传递。**举例说明:**例如员工表(user)表结构是拥有user_id、usernaem、email、dept_id等字段部门表(dept)表结构拥有dept_id、dept_phone、dept_name等字段。我们要通过sql查询出每个员工所在部门名称和部门电话员工姓名邮箱S

2、tringsql=“selectusername,email,dept_phone,dept_namefromuseru,deptdwhereu.dept_id=d.dept_id“;创建和数据库一一对应的实体类UserpublicclassUser{publicintuser_id;publicStringusernaem;publicStringemail;publicintdept_id;//此处省略setget方法toString还有构造函数}publicclassDept{publicintdept_id;publicString

3、dept_phone;publicStringdept_name;//此处省略setget方法toString还有构造函数}很显然如果要将查询出来的通过DAO方法返回结果是无法实现的,此时有两个解决方法,一、可以通过通过构建一个复杂的Java实体类来实现,二、通过将查询结果保存为Map集合,如果返回多调记录,则将map加入List中返回,方法一:例如:publicclassUserDept{publicintuser_id;publicStringusernaem;publicStringemail;publicintdept_id;pub

4、licStringdept_phone;publicStringdept_name;//此处省略setget方法toString还有构造函数}将查询的结果保存在UserDept实体类中,但是这样的方式显然不灵活,如果遇到关联查询返会的信息非常多时,或者要多次查询每次返回不同的结果集合是就非常麻烦,每次都要写不同的实体类,显然这样做非常不利,而且维护成本也非常高。所以在此我推荐方法二:方法二新建类ModelConvert包含以下两个方法,用于查询结果集转换该工具类为数据库关联模型查询工具转换convertList方法是将关联查询出来的结果通过

5、map保存多条记录使用list存储convertMap方法是将单挑查询记录通过map保存进行值传递/*用于将rs查询结果封装为List>对象**@paramrs数据库查询结果*@return返回listmap封装后的结果*/publicstaticList>convertList(ResultSetrs){//新建一个maplist集合用于存放多条查询记录List>list=newArrayList

6、ect>>();try{ResultSetMetaDatamd=rs.getMetaData();//结果集(rs)的结构信息,比如字段数、字段名等。intcolumnCount=md.getColumnCount();//取得查询出来的字段个数while(rs.next()){//迭代rs//新建一个map集合将查询出内容按照字段名:值的键值对形式存储在map集合中MaprowData=newHashMap();for(inti=1;i<=columnCount;i++){//循

7、环所有查询出字段rowData.put(md.getColumnName(i),rs.getObject(i));//getColumnName(i)获取第i个列名//getObject(i)获取第i个对象的值}list.add(rowData);//将map放入list集合中}}catch(SQLExceptione){e.printStackTrace();}finally{//关闭连接try{if(rs!=null)rs.close();rs=null;}catch(SQLExceptione){e.printStackTrace()

8、;}}returnlist;}/**用于将rs查询结果封装为Map对象(适合于只有一条查询记录)**@paramrs数据库查询结果*@return返

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。