虽然是用的注解,但是SqlMapConfig.xml(mybatis配置文件)还是要有的。
单表查询
dao里面的注解:
/**
*查询所有用户的方法
* @return
*/
@Select("select * from user")
List<User> findAll();
/**
* 增加用户的方法
* @param user
*/
@Insert("insert into user(username,address,sex,birthday) values(#{username},#{address},#{sex},#{birthday})")
void addUser(User user);
/**
* 修改用户的方法
* @param user
*/
@Update("update user set username=#{username},sex=#{sex} where id=#{id}")
void updateUser(User user);
/**
* 删除的方法
* @param id
*/
@Delete("delete from user where id=#{id}")
void deleteUser(Integer id);
/**
*根据id查询
* @param id
* @return
*/
@Select("select * from user where id=#{id}")
User findById(Integer id);
/**
* 根据名字模糊查询的
* @param name
* @return
*/
//模糊查询有下面两种写法,第一种用时要带%,第二种不用
//@Select("select * from user where username like #{username}")
@Select("select * from user where username like '%${value}%' ")
List<User> findByName(String name);
/**
* 查总数
* @return
*/
@Select("select count(*) from user")
Integer findTotalUser();
如果数据库表列名跟类的属性名不一致,那么可以用下面的代码
多表查询之多对一(mybatis里面是一对一)的举例
需求:查询所有账户并且查出所属的用户。
类的准备:
dao里面的注解:
测试的方法:
多表查询之一对多的举例
需求:查询所有用户并且查出用户名下所有账户
类的准备:
dao里面的注解:
测试的方法:
开启二级缓存,只需两步
第一步:在mybatis配置文件中配上
<!--配置开启二级缓存-->
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
第二步:在dao上使用注解开启
//↓开启二级缓存
@CacheNamespace(blocking = true)
public interface UserDao{
...
}