mysql通用mapper_通用Mapper(Mybatis)
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)相关推荐
- mysql通用mapper_详解Mybatis通用Mapper介绍与使用
使用Mybatis的开发者,大多数都会遇到一个问题,就是要写大量的SQL在xml文件中,除了特殊的业务逻辑SQL之外,还有大量结构类似的增删改查SQL.而且,当数据库表结构改动时,对应的所有SQL以及 ...
- mysql通用mapper_通用mapper的介绍和入门使用
通用mapper的介绍和入门使用 简介 通用Mapper都可以极大的方便开发人员.可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法. 极其方便的使用MyBatis单表的增删改查. ...
- mysql通用mapper_通用mapper所有配置,超详细
通用 Mapper 专用代码生成器生成的 Model 会在原有基础上增加 @Table,@Id,@Column 等注解,方便自动会数据库字段进行映射. 运行MBG有多种方法,这里只介绍两种比较常见的方 ...
- 通用mapper_通用Mapper快速开发,搭建项目
搭建环境 配置maven依赖的架包 tk.mybatismapper4.0.0-beta3junitjunit4.9log4jlog4j1.2.17cglibcglib2.2org.aspectjas ...
- api,api接口,通用组件,通用服务,sdk
通用服务 通用服务一定有客户端 和 服务端,一定涉及远程调用 客户端 叫做 服务客户端组件(客户端组件可以调 通用服务通过feign调用) api api一般指的是,java开发包(这里不包括cont ...
- 基于CMMI模型实现自己的总体研发框架(1)——CMMI模型-前言+概念+通用目标通用实践
一.前言 接触CMMI有12年了,09年开始接触CMMI,跟着咨询老师给自己公司做CMMI认证,自己负责公司的测试相关流程体系的建设.到19年自己负责公司的体系建设,初次也是CMMI过级,不过这次只是 ...
- mybatis通用mapper_全网最全Mapper解析,附实操代码帮你更好理解
今天给大家介绍一位老朋友 当你第一次接触Java开发的时候,这个老朋友就和你形影不离,当你要进行ORM的时候,单表的增删改查,这位老朋友给了你极大的帮助,不知道你想到他了吗?对,这就是通用mapper ...
- mysql通用mapper_这就是——通用Mapper
image.png 什么是通用mapper? 通用mapper 可以极大的方便开发人员进行ORM,提供极其方便的单表增删改查. 可以按照自己的需要选择通用方法,还能很方便的开发自己的通用方法. 为什么 ...
- mysql映射mapper_这下够清楚了吧!详解Mybatis的Mapper映射文件
前言 上节我们介绍了 < Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 >,内容很详细( 也很枯燥),由于篇幅实在过于冗长,我预计大家想看完得花上两段上 ...
最新文章
- 批量导出表数据到CSV文件
- Keil调试局部变量显示not in scope的问题解决
- mysql backlog_一次优化引发的血案
- Python7:from module import * 和 import module 的区别
- 3月6日 输入与输出 数据类型 运算符
- DB2 删除某用户下的所有表
- 管理感悟:学会推论及验证
- canvas应用之各种游戏转盘
- Spark的安装和使用方法
- Unity实现音乐播放器
- shping cloud搭建大觅网-之sping cloud初体验
- Sql Server 2008服务启动失败,错误17058
- Connection reset by peer 问题解析
- 关于core_cm3.c和core_cm3.h,Core_cmFunc.h 和 Core_cmInstr.h的理解
- python经纬度 县信息_10分钟教你用Python获取百度地图各点的经纬度信息
- 小程序发布上线流程_微信小程序发布流程:公司、个人如何注册小程序
- 阿里新推出“阿里云网盘”App,有机会干掉“百度网盘”吗?
- 到底什么是语义分割?
- File System | Debug | 如何查看文件挂载的分区以及分区大小
- win7安装node版本最高只支持13.14.0
热门文章
- mysql 按小时统计
- sticky-footer布局
- 获取会话的连接和断开事件
- Kernel那些事儿之内存管理(5) --- 衣带渐宽终不悔(上)
- [转]Android编程之BitmapFactory.decodeResource加载图片缩小的原因及解决方法
- python for symbian6
- html 网页整体的背景色,HTML 背景
- redis mysql 事务_Mysql与Redis事务
- proc除了能用于oracle开发_能不能用于mysql开发_MySQL 和 Oracle Enterprise Manager 开发人员 VM...
- 推荐一款接口自动化测试数据提取神器 JSonPath