*/
public class AccountTest {
private InputStream in;
private SqlSession sqlsession;
private IAccountDao accountDao;
@Before // 用于在测试方法执行前执行
public void init()throws Exception{
//1.读取配置文件,生成字节输入流
in = Resources.getResourceAsStream(“SqlMapConfig.xml”);
//2.创建SqlSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(in);
//3.使用工厂生产SqlSession对象
sqlsession = factory.openSession(); //里面写个true,下面每次就不用了写 sqlsession.commit(); 了
//4.使用SqlSession创建Dao接口的代理对象
accountDao = sqlsession.getMapper(IAccountDao.class);
}
@After // 用于在测试方法执行后执行
public void destory() throws Exception{
//提交事务
sqlsession.commit();
//6.释放资源
sqlsession.close();
in.close();
}
/**
-
查询账户,并且带有用户名称和地址信息
-
@throws Exception
*/
@Test
public void testfindAllAccount(){
List accountusers = accountDao.findAllAccount();
for (AccountUser accountuser : accountusers) {
System.out.println(accountuser);
}
}
}
运行testfindAllAccount()的结果:
[](()方式二(建立实体类关系的方式–常用)
**使用 resultMap,定义专门的 resultMap 用于映射一对一查询结果。
通过面向对象的(has a)关系可以得知,我们可以在 Account 类中加入一个 User 类的对象来代表这个账户是哪个用户的。**
[](()修改 Account 类
Account:
package com.keafmd.domain;
import java.io.Serializable;
/**
-
Keafmd
-
@ClassName: Account
-
@Description:
-
@author: 牛哄哄的柯南
-
@date: 2021-02-10 21:43
*/
public class Account implements Serializable {
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;
}
public Integer getId() {
return id;
}
public void setI