public interface UserMapper {
@Update("update user set name=#{name},password=#{password} where id=#{id}")
public void update(User user) ;
@Insert("insert into user values(#{id},#{name},#{password},null,null)")
public void insert(User user) ;
@Delete("delete from user where id=#{id}")
public void delete(int id) ;
@Select("select * from user where id=#{id}")
public User findById(int id) ;
@Select("select * from user")
public List findAll() ;
}
public interface OrderMapper {
@Select("select * from orders")
@Results({
@Result(column = "id",property = "id"),
@Result(column = "date",property = "ordertime"),
@Result(
property = "user", //要封装的属性名称
column = "uid", //根据那个字段去查询user表的数据
javaType = User.class, //要封装的实体类型
//select属性 代表查询那个接口的方法获得数据
one = @One(select = "com.itheima.mapper.UserMapper.findById")
)
})
public List findAll();
}
测试:
public class test {
private UserMapper mapper;
private SqlSession sqlSession;
@Before
//前置增强
public void before() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("VI/SqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
sqlSession = sqlSessionFactory.openSession(true);//自动提交
mapper = sqlSession.getMapper(UserMapper.class);
}
@After
//后置增强
public void after() {
sqlSession.close();
}
@Test
public void testInsert() {
mapper.insert(new User(5,"薛之谦","yeyeye"));
}
@Test
public void testDelete() {
mapper.delete(5);
}
@Test
public void testUpdate() {
mapper.update(new User(5,"薛之谦","wawawaw"));
}
@Test
public void testFindById() {
User user = mapper.findById(5);
System.out.println(user);
}
@Test
public void testFindAll() {
List userList = mapper.findAll();
System.out.println(userList);
}
}
注意:Mybatis配置文件中的映射关系仍需声明:



