JavaWeb网上图书商城完整项目-数据库操作工具类2-MapHandle的高级用法
1、现在在上面一章的基础上,我们引入一个address表,该表记录person类的地址,address表的格式如下所示
现在person类要和address表想关联,得到当前联系人的住宅地址,我们应该在person表中增加一个aid的字段,aid的值来自于address中
现在我们执行下面的操作:
我们如何通过代码把上面的结果集选择出来了。
可以使用MapHandle类来实现
我们来看下面的代码:
package com.weiyuan.test; public class Address { private int aid; private String province; private String city; private String district; private String street; public int getAid() { return aid; } public void setAid(int aid) { this.aid = aid; } public String getProvince() { return province; } public void setProvince(String province) { this.province = province; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getDistrict() { return district; } public void setDistrict(String district) { this.district = district; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } @Override public String toString() { return "Address [aid=" + aid + ", province=" + province + ", city=" + city + ", district=" + district + ", street=" + street + "]"; } }
package com.weiyuan.test; public class Person { private String pid; private String pname; private int age; private String sex; private Address address; public String getPid() { return pid; } public void setPid(String pid) { this.pid = pid; } public String getPname() { return pname; } public void setPname(String pname) { this.pname = pname; } public int getAge() { return age; } public void setAge(int age) {
package com.weiyuan.test; import java.sql.SQLException; import java.util.List; import java.util.Map; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import org.apache.commons.dbutils.handlers.BeanListHandler; import org.apache.commons.dbutils.handlers.MapHandler; import org.apache.commons.dbutils.handlers.MapListHandler; import org.apache.commons.dbutils.handlers.ScalarHandler; import org.junit.Test; import org.junit.runner.RunWith; import cn.itcast.commons.CommonUtils; import cn.itcast.jdbc.JdbcUtils; import cn.itcast.jdbc.TxQueryRunner; /** * 对数据库操作类的测试 * */ public class TxRunnerTest { @Test public void testQuery6() throws SQLException{ /* * map ={sex=男, street=肖家河街道6号, age=20, province=四川省, pname=张三, pid=2, aid=1, district=武侯区, city=成都市} * */ QueryRunner run = new TxQueryRunner(); String sql = "select * from person p, address a where p.aid=a.aid and p.pid = ?"; Map<String,Object> map= run.query(sql,new MapHandler(),"2"); Person p = CommonUtils.toBean(map, Person.class); Address address = CommonUtils.toBean(map, Address.class); p.setAddress(address); System.out.println(map); } }
this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @Override public String toString() { return "Person [pid=" + pid + ", pname=" + pname + ", age=" + age + ", sex=" + sex + ", address=" + address + "]"; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } }
posted on 2017-04-28 02:51 luzhouxiaoshuai 阅读(560) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!