Mybatis通用mapper

  • Post author:
  • Post category:其他




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 版权协议,转载请附上原文出处链接和本声明。