ibatis一对一关联查询
ibatis一对一关联查询:从主表查询,直接得到主表和子表的全部数据。以下6个步骤:
1、创建2张表:user(id,name) 和address(addressId,addressName,userId)
2、创建一个类即可:
package com.ibatis;
import java.util.HashSet;
import java.util.Set;
public class User {
/*ibatis反射机制默认加载无参构造方法。*/
public User() {
System.out.println("无参构造方法");
}
private int id;
private String name;
/** ibatis一对一关联查询*/
private String addressName;
public String getAddressName() {
return addressName;
}
public void setAddressName(String addressName) {
this.addressName = addressName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
https://www.360docs.net/doc/6015776752.html, = name;
}
}
3、User.xml文件:
4、UserDaoImpl类加入这个方法即可:
//一对一
public List
List
try {
sqlMapClient.startTransaction();
list = sqlMapClient.queryForList("findAllUser2");
https://www.360docs.net/doc/6015776752.html,mitTransaction();
sqlMapClient.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
5、测试类:
package com.test;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;
import com.ibatis.Address;
import com.ibatis.SqlMapConfig;
import https://www.360docs.net/doc/6015776752.html,er;
import https://www.360docs.net/doc/6015776752.html,erDao;
import https://www.360docs.net/doc/6015776752.html,erDaoImpl;
import com.ibatis.sqlmap.client.SqlMapClient;
public class Test {
static UserDao ud = new UserDaoImpl();
/*测试类:对ibatis的一对一关联查询进行测试*/
public static void main(String[] args) {
//查询所有
List
for (Iterator iterator = list.iterator(); iterator.hasNext();) { User u = (User) iterator.next();
System.out.println("用户名="+u.getName()+",地址="+u.getAddressName());
}
}
}
6、其他文件:
SqlMapConfig.properties 默认的写法
SqlMapConfig.xml 默认的写法
SqlMapConfig.java 默认的写法