IUserDao.java
/*在mybatis中,CRUD一共有四个注解
* @Select @Insert @Update @Delete*/
public interface IUserDao {
/*查询所有用户*/
@Select("select * from user")
List<User> findAll();
/*保存用户*/
@Insert("insert into user(username,address,sex,birthday)values(#{username},#{address},#{sex},#{birthday})")
void saveUser(User user);
/*更新用户信息*/
@Update("update user set username=#{username},sex=#{sex},birthday=#{birthday},address=#{address}where id=#{id}")
void updateUser(User user);
/*删除一个用户*/
@Delete("delete from user where id=#{id}")
void delete(Integer userId);
/*查询一个用户*/
@Select("select * from user where id=#{id}")
User findById(Integer userId);
/*根据用户名称模糊查询*/
//@Select("select * from user where username like #{username}")
@Select("select * from user where username like '%${value}%'")
List<User> findUserByName(String username);
/*查询用户总数*/
@Select("select count(*) from user")
Integer findTotal();
}
测试类中:
public class AnnotationCRUDTest {
private InputStream in;
private SqlSessionFactory factory;
private SqlSession session;
private IUserDao userDao;
@Before
public void init()throws Exception{
in= Resources.getResourceAsStream("SqlMapConfig.xml");
factory=new SqlSessionFactoryBuilder().build(in);
session=factory.openSession();
userDao=session.getMapper(IUserDao.class);
}
@After
public void destroy()throws Exception{
session.commit();
session.close();
in.close();
}
@Test
public void testSave(){
User user=new User();
user.setUsername("mybatis annotations");
user.setAddress("北京市昌平区");
userDao.saveUser(user);
}
@Test
public void testupdate(){
User user=new User();
user.setId(61);
user.setUsername("mybatis annotation update");
user.setAddress("北京市海淀区");
user.setSex("男");
user.setBirthday(new Date());
userDao.updateUser(user);
}
@Test
public void testDelete(){
userDao.delete(61);
}
@Test
public void testFindOne(){
User user=userDao.findById(60);
System.out.println(user.toString());
}
@Test
public void testFindByName(){
//List<User> users=userDao.findUserByName("%user%");
List<User> users=userDao.findUserByName("user");
for(User user:users){
System.out.println(user);
}
}
@Test
public void testFindTotal(){
System.out.println(userDao.findTotal());
}
}
即可实现。