浅谈Mybatis通用Mapper使用方法_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习
对单表进行增删改查是项目中不可避免的需求,Mybatis的通用Mapper插件使这些操作变得简单
添加maven依赖
在对应工程的pom.xml文件中添加
<dependency> <groupId>javax.persistence</groupId> <artifactId>persistence-api</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>3.1.2</version> </dependency>
配置拦截器
在mybatis-config.xml文件中添加通用Mapper
<plugin interceptor="tk.mybatis.mapper.mapperhelper.MapperInterceptor"> <!--================================================--> <!--可配置参数说明(一般无需修改)--> <!--================================================--> <!--UUID生成策略--> <!--配置UUID生成策略需要使用OGNL表达式--> <!--默认值32位长度

java.util.UUID@randomUUID().toString().replace("-", "")-->
<!--<property name="UUID" value="@java.util.UUID@randomUUID().toString()"/>-->
<!--主键自增回写方法,默认值MYSQL,详细说明请看文档-->
<property name="IDENTITY" value="HSQLDB"/>
<!--序列的获取规则,使用{num}格式化参数,默认值为{0}.nextval,针对Oracle-->
<!--可选参数一共3个,对应0,1,2,分别为SequenceName,ColumnName,PropertyName-->
<property name="seqFormat" value="{0}.nextval"/>
<!--主键自增回写方法执行顺序,默认AFTER,可选值为(BEFORE|AFTER)-->
<!--<property name="ORDER" value="AFTER"/>-->
<!--通用Mapper接口,多个通用接口用逗号隔开-->
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
</plugin>
继承通用Mapper<T>,必须指定泛型<T>
public interface ClubMapper extends Mapper<TClub>
{
}
继承了Mapper<T>之后,就拥有了Mapper中的各种通用方法,具体可以查看源码
泛型(表对象实体类)<T>要求
实体类需要按照如下规则和数据库表进行转换,注解全部是JPA中的注解,所以我们在maven中添加了它的jar包依赖
- 表名默认使用类名,驼峰转下划线,如UserInfo默认对应的表名为user_info
- 表名可以使用@Table(name = "tableName")进行指定,对不符合第一条默认规则的可以通过这种方式指定表名
- 字段默认和@Column一样,都会作为表字段,表字段默认为Java对象的Field名字驼峰转下划线形式
- 可以使用@Column(name = "fieldName")指定不符合第3条规则的字段名
- 使用@Transient注解可以忽略字段,添加该注解的字段不会作为表字段使用
- 建议一定是有一个@Id注解作为主键的字段,可以有多个@Id注解的字段作为联合主键
- 默认情况下,实体类中如果不存在包含@Id注解的字段,所有的字段都会作为主键字段进行使用(这种效率极低)
- 实体类可以继承使用
- 由于基本类型,如int作为实体类字段时会有默认值0,而且无法消除,所以实体类中建议不要使用基本类型
Mapper还提供了主键自增的方式
@Id @GeneratedValue(generator = "JDBC") @Column(name = "id") private Integer id;
添加Mapper配置
将继承的Mapper接口添加到mybatis-config.xml文件中
<mappers> <mapper class="com.ind4.iss.icp.dao.logic.map.mapper.club.clubMapper" /> </mappers>
具体使用
public List<TClub> queryList() throws CcpException
{
SqlSession sqlSession = CcpDB.getInstance().getSession();
try
{
ClubMapper mapper = getMapper(sqlSession);
TClub tClub = new TClub();
return mapper.select(tClub);
}
catch (Exception e)
{
CcpLogger.getInstance().error(e, "TClubDAO.queryList, status=" + status);
throw new CcpException(CcpErrorCode.ERROR_CLUB_DAO_DB_ERROR, e);
}
finally
{
CcpDB.getInstance().closeSession();
}
}
private ClubMapper getMapper(SqlSession sqlSession)
{
return sqlSession.getMapper(ClubMapper.class);
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持敏而好学论坛/嗨学网。
原文地址是:http://www.piaodoo.com/thread-13230-1-2.html 丝袜控www.txdah.com 131www.buzc.org学习之外可赏心悦目有助更好地学习!
浅谈Mybatis通用Mapper使用方法_java - JAVA的更多相关文章
- 值得收藏的Mybatis通用Mapper使用大全。
引言 由于小编的记性不太好,每次在写代码的时候总是把通用mapper的方法记错,所以今天把通用mapper的常用方法做一下总结,方便以后直接查看.好了,不废话啦. 引包 <!-- 通用Mappe ...
- Mybatis的Mapper接口方法不能重载
今天给项目的数据字典查询添加通用方法,发现里边已经有了一个查询所有数据字典的方法 List<Dict> selectDictList(); 但我想设置的方法是根据数据字典的code查询出所 ...
- SpringBoot 3.SpringBoot 整合 MyBatis 逆向工程以及 MyBatis 通用 Mapper
一.添加所需依赖,当前完整的pom文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&qu ...
- Spring boot集成 MyBatis 通用Mapper
配置 POM文件 <parent> <groupId>org.springframework.boot</groupId> <artifactId>sp ...
- (一 、上)搭建简单的SpringBoot + java + maven + mysql + Mybatis+通用Mapper 《附项目源码》
最近公司一直使用 springBoot 作为后端项目框架, 也负责搭建了几个新项目的后端框架.在使用了一段时间springBoot 后,感觉写代码 比spring 更加简洁了(是非常简洁),整合工具也 ...
- springboot学习笔记:8. springboot+druid+mysql+mybatis+通用mapper+pagehelper+mybatis-generator+freemarker+layui
前言: 开发环境:IDEA+jdk1.8+windows10 目标:使用springboot整合druid数据源+mysql+mybatis+通用mapper插件+pagehelper插件+mybat ...
- springboot学习笔记:9.springboot+mybatis+通用mapper+多数据源
本文承接上一篇文章:springboot学习笔记:8. springboot+druid+mysql+mybatis+通用mapper+pagehelper+mybatis-generator+fre ...
- springboot学习笔记:11.springboot+shiro+mysql+mybatis(通用mapper)+freemarker+ztree+layui实现通用的java后台管理系统(权限管理+用户管理+菜单管理)
一.前言 经过前10篇文章,我们已经可以快速搭建一个springboot的web项目: 今天,我们在上一节基础上继续集成shiro框架,实现一个可以通用的后台管理系统:包括用户管理,角色管理,菜单管理 ...
- Mybatis通用Mapper介绍和使用
Mybatis通用Mapper介绍与使用 前言 使用Mybatis的开发者,大多数都会遇到一个问题,就是要写大量的SQL在xml文件中,除了特殊的业务逻辑SQL之外,还有大量结构类似的增删改查SQL. ...
随机推荐
- pycryptodom的源码安装
1.去网站https://pypi.python.org/pypi/pycryptodome/#downloads下载 2.python setup.py build -> python set ...
- PHP 异步执行方式
在工作中我们经常遇到一些比较耗时的任务,比如用户注册发送邮件,审核短信通知等功能,同步执行这些功能的话,响应时间就会变长,所以一般我们会用队列去管理这些功能,但是如果条件不允许怎么办,今天get了一个 ...
- 【神经网络与深度学习】Caffe部署中的几个train-test-solver-prototxt-deploy等说明
1:神经网络中,我们通过最小化神经网络来训练网络,所以在训练时最后一层是损失函数层(LOSS), 在测试时我们通过准确率来评价该网络的优劣,因此最后一层是准确率层(ACCURACY). 但是当我们真正 ...
- python 并发编程 多线程 线程queue
线程queue 线程之间已经是共享数据的,为什么还使用线程queue? 线程需要自己加锁,线程queue帮我们处理好加锁的问题 有三种不同的用法 第一种方法: class queue.Queue(ma ...
- [转帖]Spring Cloud底层原理
拜托!面试不要再问我Spring Cloud底层原理 https://mp.weixin.qq.com/s/ZH-3JK90mhnJPfdsYH2yDA 毫无疑问,Spring Cloud 是目前微服 ...
- Spark架构角色及基本运行流程
1. 集群角色 Application:基于spark的用户程序,包含了一个Driver program 和集群中多个Executor Driver Program:运行application的mai ...
- import和from.…import…
import和from.-import- 在讲之前我们先来讲一下怎样去下载第三方库,我们把python看作一部手机,pip就是应用管家,第三方库里面的模块就是应用管家里面的一个应用 一.import模 ...
- Python笔试面试题目及答案
1.is 和==的区别? is:比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象.是否指向同一个内存地址 == : 比较的两个对象的内容/值是否相等,默认会调用对象的eq()方法 ...
- python 绘制对象检测框及中文信息标注
# 坐标顺序: 上->左->下->右 def draw_bounding_box_on_image(image, ymin, xmin, ymax, xmax, color='red ...
- Spring boot 拦截器和过滤器
1. 过滤器 Filter介绍 Filter可以认为是Servlet的一种“加强版”,是对Servlet的扩展(既可以对请求进行预处理,又可以对处理结果进行后续处理.使用Filter完整的一般流程是: ...