文档章节

通用Mapper常见用法

草原-星空
 草原-星空
发布于 2017/07/31 20:18
字数 647
阅读 33
收藏 0
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:
 * List<T> select(T record); 根据实体中的属性值进行查询,查询条件使用等号
 * T selectByPrimaryKey(Object key); 根据主键字段进行查询,方法参数必须包含完整的主键属性,查询条件使用等号
 * List<T> 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<T> 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<Test1> list = mapper.selectAll();
        PageInfo<Test1> page = new PageInfo<Test1>(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<Test1> list = mapper.selectByExample(condition);
        System.out.println(list.size());
    }
    
    @Test
    public void generatorCode() throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException{
        List<String> warnings = new ArrayList<String>();
        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);
    }
}

© 著作权归作者所有

共有 人打赏支持
草原-星空
粉丝 0
博文 31
码字总数 36144
作品 0
闸北
私信 提问
在Spring4中使用通用Mapper

在Spring4中使用通用Mapper Spring4增加了对泛型注入的支持,这个特性对通用Mapper来说,非常的有用,可以说有了这个特性,可以直接在Service中写,可以通过来实现通用的。 这篇文档主要讲解...

Liuzh_533
2014/12/12
0
29
Mybatis 通用 Mapper--Mapper

Mybatis 通用 Mapper 极其方便的使用 Mybatis 单表的增删改查,支持单表操作,不支持通用的多表联合查询 优点: 通用 Mapper 可以极大的方便开发人员。 为了让您更方便的了解通用 Mapper,下面...

Liuzh_533
2014/11/22
48.8K
11
Mybatis 通用 Mapper 4.0.0 发布

通用 Mapper4 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及Example相关的单表操作。通用 Mapper 是为了解决 MyBatis 使用中 90% 的基本操作,使用它可以很...

Liuzh_533
03/19
17.7K
24
Mybatis 通用 Mapper 3.4.6: Example 新增 builder 模式

Mybatis 通用 Mapper 3.4.6 已发布。MyBatis 通用 Mapper 极其方便的使用 MyBatis 单表的增删改查,支持单表操作,不支持通用的多表联合查询。通用 Mapper 可以极大的方便开发人员。可以随意...

Liuzh_533
2017/12/18
2K
11
Mybatis 通用 Mapper 3.4.5 发布,增加代码生成器插件

Mybatis 通用 Mapper 3.4.5 已发布。MyBatis 通用 Mapper 极其方便的使用 MyBatis 单表的增删改查,支持单表操作,不支持通用的多表联合查询。通用 Mapper 可以极大的方便开发人员。可以随意...

Liuzh_533
2017/11/13
3.3K
3

没有更多内容

加载失败,请刷新页面

加载更多

Spring boot 各种常用注解总结(不断完善中)

@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。 @Scope注解 作用域 @Lazy(true) 表示延迟初始化 @Service用于标注业务层组件、...

覃大光
5分钟前
0
1
《让家庭教育回归生活》读书笔记3000字范文

《让家庭教育回归生活》读书笔记3000字范文: 以前,只知道新东方是教英语的,也培训挖掘机司机,一直不知道他们还研究家庭教育。读了《让家庭教育回归生活》一书,才知道他们的家庭教育高峰...

原创小博客
17分钟前
0
0
spring学习笔记(二)spring 事件的使用

spring 中的事件 spring事件通过订阅发布 可以解耦操作 可以同步 可以异步 步骤 编写事件 通过继承org.springframework.context.ApplicationEvent 来编写事件 public ApplicationEvent(Obj...

NotFound403
昨天
13
0
特斯拉车主成功破解了自己Model 3汽车

据汽车博客Electrek消息,一位特斯拉车主成功破解了自己Model 3汽车,还在此基础上运行了Ubuntu。 这位叫trsohmers的网友表示,“功劳大多要归到Ingineerix的头上,他花了数月才找到初始的那...

linuxCool
昨天
4
0
Gitbook : random errors when using gitbook plugin on running "gitbook serve"

在执行gitbook serve时,会有不定的失败错误 参考问题 :#1309 解决方案: 更新gitbook版本,这个问题似乎是3版本的问题 , 官方也不打算在这个版本解决了。 更新 到最新版本后, 不再出现问...

ol_O_O_lo
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部