Mybatis通用mapper
什么是通用Mapper
通用Mapper就是为了解决单表增删改查,基于Mybatis的插件机制。开发人员不需要编写SQL,不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删改查方法
如何使用
首先在maven项目,在pom.xml中引入mapper的依赖
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>3.1.2</version>
</dependency>
Mybatis配置文件中完成配置
<plugins>
<!--分页插件:如果有分页插件,要排在通用mapper之前-->
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql"/>
</plugin>
<plugin interceptor="tk.mybatis.mapper.mapperhelper.MapperInterceptor">
<!-- 通用Mapper接口,多个通用接口用逗号隔开 -->
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
</plugin>
</plugins>
实体类设置主键
@Table(name = "t_user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String username;
}
定义通用mapper
import com.lagou.domain.User;
import tk.mybatis.mapper.common.Mapper;
public interface UserMapper extends Mapper<User> {
}
测试
public class UserTest {
@Test
public void test1() throws IOException {
Inputstream resourceAsStream =
Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = build.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setId(4);
//(1)mapper基础接口
//select 接口
User user1 = userMapper.selectOne(user); //根据实体中的属性进行查询,只能有 —
个返回值
List<User> users = userMapper.select(null); //查询全部结果
userMapper.selectByPrimaryKey(1); //根据主键字段进行查询,方法参数必须包含完 整
的主键属性,查询条件使用等号
userMapper.selectCount(user); //根据实体中的属性查询总数,查询条件使用等号
// insert 接口
int insert = userMapper.insert(user); //保存一个实体,null值也会保存,不会使
用数据库默认值
int i = userMapper.insertSelective(user); //保存实体,null的属性不会保存, 会
使用数据库默认值
// update 接口
int i1 = userMapper.updateByPrimaryKey(user);//根据主键更新实体全部字段,
null值会被更新
// delete 接口
int delete = userMapper.delete(user); //根据实体属性作为条件进行删除,查询条件
使用等号
userMapper.deleteByPrimaryKey(1); //根据主键字段进行删除,方法参数必须包含完 整
的主键属性
//(2)example方法
Example example = new Example(User.class);
example.createCriteria().andEqualTo("id", 1);
example.createCriteria().andLike("val", "1");
//自定义查询
List<User> users1 = userMapper.selectByExample(example);
}
}
版权声明:本文为qq_40977467原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。