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();
}