zoukankan      html  css  js  c++  java
  • 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;
        }
        
        
        
        
    
    }
  • 相关阅读:
    重新拾起写博客
    此博客正式停用。。
    合并两个git项目,并保留源仓库的所有提交记录
    红米note3Toast不显示问题
    Android8.0[Only fullscreen opaque activities can request orientation]问题解决
    (转)Git代理配置全记录包含http和ssh两种协议的情况
    (转)intent-filter 之 data 「scheme, host, port, mimeType, path, pathPrefix, pathPattern」
    (转)android mimeType表
    罗伯特议事规则
    (转)Android之shape与selector实现圆角
  • 原文地址:https://www.cnblogs.com/kebibuluan/p/6779477.html
Copyright © 2011-2022 走看看