MyBatis的一对一的使用
在MyBatis中resources中配置的一对一xml
select u.*,a.id as aid,a.uid,a.money from user u,account a where a.uid = u.id ### 这是实现类中的方法:首先是把表中的属性创建 public class Account { private Integer id; private Integer uid; private double money; 进行一对一 //一对一关联:在查询所有账户信息的时候,同时查询出来账户所有人信息 private User user; public User getUser(){ return user; } public void setUser(User user){ this.user = user; }@Override
public String toString() {
return "Account{" +
"id=" + id +
", uid=" + uid +
", money=" + money +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
}
这里就是测试类进行小小的测试
这里是进行创建工厂,并且把工厂属性定义为全局属性
public class test1 {
private InputStream in;
private SqlSessionFactoryBuilder builder;
private SqlSessionFactory factory;
private SqlSession sqlSession;
private AccountDao AccountDaoMapper;
@Before
public void init() throws IOException {
in = Resources.getResourceAsStream("mybatisConfig.xml");
builder = new SqlSessionFactoryBuilder();
factory = builder.build(in);
sqlSession = factory.openSession();
AccountDaoMapper =sqlSession.getMapper(AccountDao.class);
}
@Test
public void test_1() {
List<Account> all =AccountDaoMapper.findAll();
for(Account a:all) {
System.out.println("每一个账户的信息");
System.out.println(a);
System.out.println(a.getUser());
}
}
这里要记住进行属性的关闭
@After
public void Test_11() throws IOException {
sqlSession.commit();
sqlSession.close();
in.close();
}