Human h = qr.query(sql1, new BeanHandler(Human.class), id);

package com.tfy.itheima.dao.impl; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import com.tfy.itheima.domain.Human; import com.tfy.itheima.domain.IdCard; import com.tfy.itheima.jdbc.util.DbcpUtil; public class HumanDaoImpl { private QueryRunner qr=new QueryRunner(DbcpUtil.getDataSource()); public void addHuman(Human h){ try{ String sql1="insert into human (id,name) values(?,?)"; Object []params1={h.getId(),h.getName()}; qr.update(sql1, params1); IdCard idCard=h.getIdCard(); if(idCard!=null){ String sql2="insert into idcard (id,num,city) values(?,?,?)"; Object []params2={h.getId(),idCard.getNum(),idCard.getCity()}; qr.update(sql2, params2); } }catch(Exception e){ e.printStackTrace(); throw new RuntimeException(e); } } //对于少的一方,默认都须要查出来 public Human findHumanById(Integer id){ try{ String sql1="select * from human where id=?"; Human h = qr.query(sql1, new BeanHandler<Human>(Human.class), id); if(h!=null){ String sql2="select * from idcard where id=?"; IdCard idCard = qr.query(sql2, new BeanHandler<IdCard>(IdCard.class), id); h.setIdCard(idCard); } return h; }catch(Exception e){ e.printStackTrace(); throw new RuntimeException(e); } } }