摘要:原文链接插件使用通用通用可以简化操作,不必多带带为每一指定接口所需包配置在配置文件中配置配置通用使用方法只要就拥有了通用中所有方法常用方法通用常用方法等号的根据实体中的属性值进行查询,查询条件使用等号根据主键字段进行查询,方
原文链接:MyBatis插件使用--通用Mapper
XML配置通用Mapper可以简化CRUD操作,不必多带带为每一Mapper指定CRUD接口
所需jar包mapper-3.3.9.jar,persistence-api-1.0.jar
在spring配置文件中配置:
使用方法mappers=tk.mybatis.mapper.common.Mapper
只要extends tk.mybatis.mapper.common.Mapper
public interface Test1Mapper extends Mapper常用方法{ }
import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.apache.ibatis.session.SqlSessionFactory; import org.junit.Test; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.exception.InvalidConfigurationException; import org.mybatis.generator.exception.XMLParserException; import org.mybatis.generator.internal.DefaultShellCallback; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.core.io.ClassPathResource; import tk.mybatis.mapper.entity.Condition; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.yupont.gs.dao.mapper.Test1Mapper; import com.yupont.gs.model.Test1; /** * 通用Mapper常用方法: * * 等号的CRUD: * Listselect(T record); 根据实体中的属性值进行查询,查询条件使用等号 * T selectByPrimaryKey(Object key); 根据主键字段进行查询,方法参数必须包含完整的主键属性,查询条件使用等号 * List selectAll(); 查询全部结果,select(null)方法能达到同样的效果 * T selectOne(T record); 根据实体中的属性进行查询,只能有一个返回值,有多个结果是抛出异常,查询条件使用等号 * int selectCount(T record); 根据实体中的属性查询总数,查询条件使用等号 * int insert(T record); 保存一个实体,null的属性也会保存,不会使用数据库默认值 * int insertSelective(T record); 保存一个实体,null的属性不会保存,会使用数据库默认值 * int updateByPrimaryKey(T record); 根据主键更新实体全部字段,null值会被更新 * int updateByPrimaryKeySelective(T record); 根据主键更新属性不为null的值 * int delete(T record); 根据实体属性作为条件进行删除,查询条件使用等号 * int deleteByPrimaryKey(Object key); 根据主键字段进行删除,方法参数必须包含完整的主键属性 * * 条件的CRUD: * List selectByCondition(Object condition); 根据Condition条件进行查询 * int selectCountByCondition(Object condition); 根据Condition条件进行查询总数 * int updateByCondition(@Param("record") T record, @Param("example") Object condition); 根据Condition条件更新实体record包含的全部属性,null值会被更新 * int updateByConditionSelective(@Param("record") T record, @Param("example") Object condition); 根据Condition条件更新实体record包含的不是null的属性值 * int deleteByCondition(Object condition); 根据Condition条件删除数据 * * * */ public class CommonMapperTest { public static Test1Mapper mapper = ((SqlSessionFactory) new ClassPathXmlApplicationContext("spring-db.xml").getBean("sqlSessionFactory")).openSession().getMapper(Test1Mapper.class); @Test public void selectAll(){ PageHelper.startPage(2, 5); //第一个参数offset是当前页数,第二个参数limit是每页显示多少数据 //Condition c = new Condition(Test1.class); //c.createCriteria().andCondition("name in ("zhaoliu","zhangsan")"); List list = mapper.selectAll(); PageInfo page = new PageInfo (list); System.out.println(page.getTotal()); for (Test1 test1 : list) { System.out.println(test1.getName()); } } @Test public void insertSelective(){ Test1 test = new Test1(); test.setAge(33); test.setName("zhaoliu"); mapper.insertSelective(test); System.out.println(test.getId()); } @Test public void selectOne(){ Test1 test = new Test1(); test.setAge(22); Test1 t = mapper.selectOne(test); System.out.println(t.getName()); } @Test public void SelectByConditionMapper(){ Condition condition=new Condition(Test1.class); condition.createCriteria().andCondition("name like "%zhangsan%""); condition.setOrderByClause("name desc"); List list = mapper.selectByExample(condition); System.out.println(list.size()); } @Test public void generatorCode() throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException{ List warnings = new ArrayList (); boolean overwrite = true; ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(new ClassPathResource("generatorConfig.xml").getInputStream()); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } }
参考资料http://git.oschina.net/free/M...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/69859.html
摘要:通用是为了解决使用中的基本操作,使用它可以很方便的进行开发,可以节省开发人员大量的时间。当该参数设置为时,时会查询第一页,超过总数时,会查询最后一页。 SpringBoot 是为了简化 Spring 应用的创建、运行、调试、部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖就可以轻易的搭建出一个 WEB 工...
摘要:原文链接插件使用通用通用可以简化操作,不必单独为每一指定接口所需包配置在配置文件中配置配置通用使用方法只要就拥有了通用中所有方法常用方法通用常用方法等号的根据实体中的属性值进行查询,查询条件使用等号根据主键字段进行查询,方 原文链接:MyBatis插件使用--通用Mapper 通用Mapper可以简化CRUD操作,不必单独为每一Mapper指定CRUD接口所需jar包mapper-3....
摘要:解决通用无法回显的问题首先给大家推荐一个非常好的插件网站,使用的各位可以到这个网站来看一下插件。通用配置问题解决,如有疑问请查文档,在上面的插件官网中有。 解决通用mapperUUID无法回显的问题 首先给大家推荐一个非常好的Mybatis插件网站http://mybatis.tk/,使用Mbatis的各位可以到这个网站来看一下Mybatis插件。 ...
摘要:代码自动生成底层服务有很多通用的,利用代码生成最好不过了,这里作者将代码生成放在中的,避免与正式代码冲突。主要通过来实现,项目中的模板文件可以自行定义。相互学习,共同进步 从零开始学习Spring Boot也有几天时间了,项目已经不允许我这么慢慢学习了,急需底层变现实现一套简单的Restful API用于业务支撑。 于是在GitHub上找到了一个不错的demo,直接看demo搭建自己的...
摘要:优化当我们在数据库中增加字段时,需要在对应的实体类中增加字段,中也需要去增加字段,去维护,会消耗大量的时间我们可以让接口去继承,删除接口中的所有方法,因为中都已经实现了。遇到这里问题不会报错,只要注意打印出来的语句即可。 SpringBoot集成Mybatis 自动生成实体类和Mapper 1.使用IDEA创建一个空的SpringBoot项目 2.在pom.xml中引入以下配置 ...
阅读 1639·2023-04-25 20:36
阅读 2047·2021-09-02 15:11
阅读 1176·2021-08-27 13:13
阅读 2653·2019-08-30 15:52
阅读 4586·2019-08-29 17:13
阅读 1000·2019-08-29 11:09
阅读 1490·2019-08-26 11:51
阅读 833·2019-08-26 10:56