67,513
社区成员
发帖
与我相关
我的任务
分享
public class User {
private int uid;
private String uname;
private String upwd;
private List<Address> addressList=new ArrayList<Address>();
//..........get and set method
public class Address {
private int id;
private String address;
private String code;
private User user;
//----------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="User">
<resultMap id="result" class="com.tq365.vo.User">
<result property="uid" column="uid"></result>
<result property="uname" column="uname"></result>
<result property="upwd" column="upwd"></result>
<result property="addressList" column="uid" select="address.findByUid"></result>
</resultMap>
<resultMap id="address_result" class="com.tq365.vo.Address">
<result property="id" column="id"></result>
<result property="address" column="address"></result>
<result property="code" column="code"></result>
<result property="user" column="uid" select="findUserByID"></result>
</resultMap>
<!--根据ID查询-->
<select id="findUserByID" parameterClass="int" resultClass="com.tq365.vo.User">
select * from t_user where uid=#uid#
</select>
<!-- 关联查询 -->
<select id="address.findByUid" resultMap="address_result" parameterClass="int">
select * from t_address where uid=#uid#
</select>
<!-- Address部分 -->
<!--根据ID查询-->
<select id="findAddressByID" parameterClass="int" resultMap="address_result">
select * from t_address where id=#id#
</select>
</sqlMap>
public class SqlMapUtil {
private SqlMapUtil(){}
private static SqlMapClient sqlMapClient=null;
public static SqlMapClient getSqlMapClient(){
//ibatis配置文件的路径
String resource="sqlMap/sql-map-config.xml";
try {
//读取配置文件
Reader reader=Resources.getResourceAsReader(resource);
//创建SqlMapClient对象
sqlMapClient=SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (IOException e) {
e.printStackTrace();
}
return sqlMapClient;
}
}
public class OneToManyTest {
public static void main(String[] args) {
UserDao dao=new UserDao();
User user=dao.getUserByUid(3);
//从User对象中获得不了List列表???
//System.out.println(user.getAddressList().size());
//从地址中可以查出User对象
List<Address> addressList=dao.getAddresssByUid(3);
for(int i=0;i<addressList.size();i++){
System.out.println("地址:"+addressList.get(i).getAddress());
System.out.println("姓名:"+addressList.get(i).getUser().getUname());
}
}
}