1.Mapper的简单介绍

2.Mapper的作用

通用Mapper可以通过Mybatis的拦截器原理,动态的帮我们实现单表的增删改查功能,大大降低了我们的开发成本,减少了我们的工作量。

3.Mapper的使用

该Mapper是一个接口,里面提供给了一系列的方法,导入依赖,配置插件,利用Mybatis使用通用的Mapper接口,首先继承该接口,泛型为类中的类型。这样就没有配置文件了,所以要在Mybatis核心配置文件中,配置扫描的包。编写测试类。

3.1导入依赖(首先搭建好Mybatis的环境)

com.github.abel533

mapper

2.3.4

3.2配置插件(Mapper在Mybatis的拦截器)

3.3编写接口UserMapper继承Mapper(略)

3.4配置实体类与表之间的关系

packagecn.mybatis.pojo;importjava.io.Serializable;importjava.util.Date;importjavax.persistence.Column;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;importjavax.persistence.Table;

@Table(name="tb_user")public class User implementsSerializable{/****/

private static final long serialVersionUID = 1L;

@Id

@GeneratedValue(strategy=GenerationType.IDENTITY)privateLong id;//用户名

privateString userName;//密码

privateString password;//姓名

privateString name;//年龄

privateInteger age;//性别,1男性,2女性

privateInteger sex;//出生日期

privateDate birthday;//创建时间

privateDate created;//更新时间

privateDate updated;publicLong getId() {returnid;

}public voidsetId(Long id) {this.id =id;

}publicString getuserName() {returnuserName;

}public voidsetuserName(String userName) {this.userName =userName;

}publicString getPassword() {returnpassword;

}public voidsetPassword(String password) {this.password =password;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}publicInteger getAge() {returnage;

}public voidsetAge(Integer age) {this.age =age;

}publicInteger getSex() {returnsex;

}public voidsetSex(Integer sex) {this.sex =sex;

}publicDate getBirthday() {returnbirthday;

}public voidsetBirthday(Date birthday) {this.birthday =birthday;

}publicDate getCreated() {returncreated;

}public voidsetCreated(Date created) {this.created =created;

}publicDate getUpdated() {returnupdated;

}public voidsetUpdated(Date updated) {this.updated =updated;

}

@OverridepublicString toString() {return "User [id=" + id + ", userName=" + userName + ", password=" + password + ", name=" +name+ ", age=" + age + ", sex=" + sex + ", birthday=" + birthday + ", created=" +created+ ", updated=" + updated + "]";

}

}

3.5.编写测试类

packagecn.mapper.test;importjava.io.InputStream;importjava.util.List;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;importorg.junit.Before;importorg.junit.Test;importcn.mybatis.dao.UserMapper;importcn.mybatis.pojo.User;importcom.github.abel533.entity.Example;public classTestMappers {

UserMapper usermapper;

String resource= "mybatis-config.xml";

InputStream inputStream;

SqlSessionFactory sqlsessionFactory;

SqlSession sqlSession;

@Beforepublic void setUp() throwsException {

inputStream=Resources.getResourceAsStream(resource);

sqlsessionFactory= newSqlSessionFactoryBuilder().build(inputStream);

sqlSession=sqlsessionFactory.openSession();//动态代理实现

usermapper = this.sqlSession.getMapper(UserMapper.class);

}/*** 查询1个用户*/@Testpublic voidtest() {

User user= newUser();

user.setuserName("zhangsan");

User one= this.usermapper.selectOne(user);

System.out.println(one);

}/*** 查找用户,接收一个User对象。*/@Testpublic voidtestselect(){

User user= newUser();

user.setSex(2);

List list = this.usermapper.select(null);for(User user2 : list) {

System.out.println(user2);

}

System.out.println("-------------");

List list2 = this.usermapper.select(user);for(User user2 : list2) {

System.out.println(user2);

}

}/*** 查询总条数*/@Testpublic voidtestSlecteCount(){int count = this.usermapper.selectCount(null);

System.out.println(count);

System.out.println("--------");

User user= newUser();

user.setSex(1);int count2 = this.usermapper.selectCount(user);

System.out.println(count2);

}/*** 根据主键查询*/@Testpublic voidtestSelectByPrimaryKey(){

User user= this.usermapper.selectByPrimaryKey(1L);

System.out.println(user);

}

@Testpublic voidtestInsert(){

User user= newUser();

user.setAge(22);

user.setPassword("11111");//this.usermapper.insert(user);

this.usermapper.insertSelective(user);//提交

this.sqlSession.commit();

}

@Testpublic voidtestDelete(){

User user= newUser();

user.setAge(22);int i = this.usermapper.delete(user);this.sqlSession.commit();

System.out.println(i);

}

@Testpublic voidtestUpdate(){

User user= newUser();

user.setId(18L);

user.setuserName("kk0");;int i = this.usermapper.updateByPrimaryKeySelective(user);this.sqlSession.commit();

System.out.println(i);

}

@Testpublic voidtestSelectByExample(){

Example example= new Example(User.class);

example.createCriteria().andEqualTo("sex", 1).andBetween("age", 10, 22);

example.or(example.createCriteria().andLike("name", "李"));

example.setOrderByClause("age desc");

List list = this.usermapper.selectByExample(example);for(User user : list) {

System.out.println(user);

}

}

}

总结:通用mapper 的要求:

1.默认表名为类名(@Table())

2.默认字段名就是类属性名(在驼峰规则内),如果不一致,使用@Column注解

3.主键字段必须声明@Id

4.实现ID的回写@GeneratedValue(strategy=GenerationType.IDENTITY)

5.忽略该字段@Transtient(映射字段)  表中没有的字段 ,在类中有的字段

mysql通用mapper_通用Mapper(Mybatis)相关推荐

  1. mysql通用mapper_详解Mybatis通用Mapper介绍与使用

    使用Mybatis的开发者,大多数都会遇到一个问题,就是要写大量的SQL在xml文件中,除了特殊的业务逻辑SQL之外,还有大量结构类似的增删改查SQL.而且,当数据库表结构改动时,对应的所有SQL以及 ...

  2. mysql通用mapper_通用mapper的介绍和入门使用

    通用mapper的介绍和入门使用 简介 通用Mapper都可以极大的方便开发人员.可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法. 极其方便的使用MyBatis单表的增删改查. ...

  3. mysql通用mapper_通用mapper所有配置,超详细

    通用 Mapper 专用代码生成器生成的 Model 会在原有基础上增加 @Table,@Id,@Column 等注解,方便自动会数据库字段进行映射. 运行MBG有多种方法,这里只介绍两种比较常见的方 ...

  4. 通用mapper_通用Mapper快速开发,搭建项目

    搭建环境 配置maven依赖的架包 tk.mybatismapper4.0.0-beta3junitjunit4.9log4jlog4j1.2.17cglibcglib2.2org.aspectjas ...

  5. api,api接口,通用组件,通用服务,sdk

    通用服务 通用服务一定有客户端 和 服务端,一定涉及远程调用 客户端 叫做 服务客户端组件(客户端组件可以调 通用服务通过feign调用) api api一般指的是,java开发包(这里不包括cont ...

  6. 基于CMMI模型实现自己的总体研发框架(1)——CMMI模型-前言+概念+通用目标通用实践

    一.前言 接触CMMI有12年了,09年开始接触CMMI,跟着咨询老师给自己公司做CMMI认证,自己负责公司的测试相关流程体系的建设.到19年自己负责公司的体系建设,初次也是CMMI过级,不过这次只是 ...

  7. mybatis通用mapper_全网最全Mapper解析,附实操代码帮你更好理解

    今天给大家介绍一位老朋友 当你第一次接触Java开发的时候,这个老朋友就和你形影不离,当你要进行ORM的时候,单表的增删改查,这位老朋友给了你极大的帮助,不知道你想到他了吗?对,这就是通用mapper ...

  8. mysql通用mapper_这就是——通用Mapper

    image.png 什么是通用mapper? 通用mapper 可以极大的方便开发人员进行ORM,提供极其方便的单表增删改查. 可以按照自己的需要选择通用方法,还能很方便的开发自己的通用方法. 为什么 ...

  9. mysql映射mapper_这下够清楚了吧!详解Mybatis的Mapper映射文件

    前言 上节我们介绍了 < Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 >,内容很详细( 也很枯燥),由于篇幅实在过于冗长,我预计大家想看完得花上两段上 ...

最新文章

  1. 批量导出表数据到CSV文件
  2. Keil调试局部变量显示not in scope的问题解决
  3. mysql backlog_一次优化引发的血案
  4. Python7:from module import * 和 import module 的区别
  5. 3月6日 输入与输出 数据类型 运算符
  6. DB2 删除某用户下的所有表
  7. 管理感悟:学会推论及验证
  8. canvas应用之各种游戏转盘
  9. Spark的安装和使用方法
  10. Unity实现音乐播放器
  11. shping cloud搭建大觅网-之sping cloud初体验
  12. Sql Server 2008服务启动失败,错误17058
  13. Connection reset by peer 问题解析
  14. 关于core_cm3.c和core_cm3.h,Core_cmFunc.h 和 Core_cmInstr.h的理解
  15. python经纬度 县信息_10分钟教你用Python获取百度地图各点的经纬度信息
  16. 小程序发布上线流程_微信小程序发布流程:公司、个人如何注册小程序
  17. 阿里新推出“阿里云网盘”App,有机会干掉“百度网盘”吗?
  18. 到底什么是语义分割?
  19. File System | Debug | 如何查看文件挂载的分区以及分区大小
  20. win7安装node版本最高只支持13.14.0

热门文章

  1. mysql 按小时统计
  2. sticky-footer布局
  3. 获取会话的连接和断开事件
  4. Kernel那些事儿之内存管理(5) --- 衣带渐宽终不悔(上)
  5. [转]Android编程之BitmapFactory.decodeResource加载图片缩小的原因及解决方法
  6. python for symbian6
  7. html 网页整体的背景色,HTML 背景
  8. redis mysql 事务_Mysql与Redis事务
  9. proc除了能用于oracle开发_能不能用于mysql开发_MySQL 和 Oracle Enterprise Manager 开发人员 VM...
  10. 推荐一款接口自动化测试数据提取神器 JSonPath