这篇文章主要介绍了浅谈跳羚中tk.mapper代码生成器的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
问:什么是tk.mapper?
答:这是一个通用的制图人框架,相当于把米巴蒂斯的常用数据库操作方法封装了一下,它实现了作业的装配区(JobPackArea)的规范,简单的查询更新和插入操作都可以直接使用其自带的方法,无需写额外的代码。
而且它还有根据实体的不为空的字段插入和更新的方法,这个是非常好用的哈。
而且它的集成非常简单和方便,下面我来演示下使用它怎么自动生成代码。
砰的一声中引入依赖,这里引入tk.mybatis.mapper的版本依赖是因为在映射器-弹簧-启动-启动器的新版本中没有MapperPlugin这个类,无法提供代码生成的功能,在老版本中有:
!-通用映射器-
属国
groupIdtk.mybatis/groupId
artifactId映射器-spring-boot-starter/artifact id
版本2 .1 .5/版本
/依赖关系
!-代码生成使用-
属国
groupIdtk.mybatis/groupId
artifactIdmapper/artifactId
版本3 .4 .2/版本
/依赖关系
配置generatorConfig.xml:
?可扩展标记语言版本='1.0 '编码='UTF八号'?
!文档类型生成器配置
PUBLIC '-//MyBatis。org//DTD MyBatis生成器配置1.0//EN '
http://米巴蒂斯。org/dtd/mybatis-generator-config _ 1 _ 0。' dtd '
!-配置生成器-
生成器配置
!-执行发电机插件生成文件的命令:调用mvn我的batis-生成器:生成-e-
!-引入配置文件-
属性resource='生成器。属性'/
!- classPathEntry:数据库的JDBC驱动,换成你自己的驱动位置可选-
classPathEntry
location=' D:\ iflytek \ maven \ repository \ MySQL \ MySQL-connector-Java \ 8。0 .15 \ MySQL-connector-Java-8。0 .15 .jar '/
!-一个数据库一个背景-
!- defaultModelType='flat '大数据字段,不分表-
上下文id=' MySQL表'目标运行时=' mybatis 3 simple '默认模型类型=' flat '
!-自动识别数据库关键字,默认假的,如果设置为没错,根据SqlReservedWords中定义的关键字列表;
一般保留默认值,遇到数据库关键字(Java关键字),使用列覆盖覆盖-
属性名称='自动分隔关键字'值=' true '/
!-生成的Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)文件的编码-
属性名='javaFileEncoding '值='utf-8'/
!- beginningDelimiter和结局分隔符:指明数据库的用于标记数据库对象名的符号,比如神谕就是双引号,MYSQL默认是`反引号;-
属性名称='beginningDelimiter '值='`'/
属性名称='endingDelimiter '值='`'/
!-格式化Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)代码-
属性名=' Java former '值=' org。我的巴蒂斯。发电机。API。多姆。defaultjava former '/
!-格式化可扩展标记语言代码-
属性名='xmlFormatter '值=' org。我的巴蒂斯。发电机。API。多姆。defaultxml格式化程序'/
插件类型=' org。我的巴蒂斯。发电机。插件。可序列化插件'/
!-覆盖可扩展标记语言文件-
插件类型=' com。xqnode。靴子。util。overwritexmlplugin '/
!托斯特林
!-插件类型=' org。我的巴蒂斯。发电机。插件。tostring插件'/-
插件类型=' tk。我的巴蒂斯。制图师。发电机。'映射器插件'
属性名='地图绘制者'值=' tk。我的巴蒂斯。制图师。常见。映射器'/
/插件
!-注释type=' com。xqnode。靴子。util。'注释生成器'-
评论生成器
属性名称=' inoptillcomments '值=' true '/!-是否取消注释-
属性名称='suppressDate '值='真'/!-是否生成注释代时间戳-
/commentGenerator
!- jdbc连接安培表示-
JDBC连接驱动程序class=' $ { JDBC。驱动程序类} '
连接URL=' $ { JDBC。连接URL } '
userId='${jdbc.userId} '
password='${jdbc.password}'/
!-类型转换-
javaTypeResolver
!-是否使用bigDecimal,false可自动转化以下类型(长型、整数型、短型等。) -
属性名称='forceBigDecimals '值='false'/
/javaTypeResolver
!-生成实体类地址-
javaModelGenerator目标包=' com。xqnode。靴子。“模型”目标项目=“src/main/Java”
属性名称='enableSubPackages '值='false'/
属性名称='trimStrings '值='真'/
/javaModelGenerator
!-生成mapxml文件-
sqlMapGenerator目标包=' mapper '目标项目=' src/main/resources '
属性名称='enableSubPackages '值='false'/
/sqlMapGenerator
!-生成mapxml对应客户,也就是接口道-
javaClientGenerator目标包=' com。xqnode。靴子。“Dao”目标项目=“src/main/Java”
type='XMLMAPPER '
属性名称='enableSubPackages '值='false'/
/javaClientGenerator
!-桌子可以有多个,每个数据库中的表都可以写一个表,表名表示要匹配的数据库表,也可以在表名属性中通过使用%通配符来匹配所有数据库表,只有匹配的表才会自动生成文件-
!-表名=%则匹配数据库的所有表,注意将域名对象名和mapperName置为空-
!- enableCountByExample等设置生成简单的令人厌恶的东西操作方法-
表tableName=“$ { table。“name }”域对象名称=“$ { domain。对象。name }“映射器名称=”$ { mapper。名称} '
属性名称='useActualColumnNames '值='false'/
!-数据库表主键-
生成的键列=' id ' SQL语句=' Mysql '标识=' true '/
/表格
/上下文
/生成器配置
基础配置生成器。属性:
#jdbc
JDBC。驱动程序类=com。MySQL。CJ。JDBC。驾驶员
JDBC。连接URL=JDBC:MySQL://localhost:3306/test?服务器时区=utcnullcatalogmenscurrent=true
jdbc.userId=root
jdbc.password=123456
#项目
项目。name=spring boot-my batis
#表格
table.name=t_user
domain.object.name=User
mapper.name=用户映射程序
使用代码的方式生成,工具GeneratorUtil:
包com。xqnode。靴子。util
导入org。我的巴蒂斯。发电机。API。mybatis发生器;
导入org。我的巴蒂斯。发电机。配置。配置;
导入org。我的巴蒂斯。发电机。配置。XML。配置分析器;
导入org。我的巴蒂斯。发电机。内部。defaultshellcallback
导入Java。io。inputstream
导入Java。util。ArrayList
导入Java。util。列表;
/**
* 代码生成工具具体的配置在生成器。属性中
*由青溪a4创建于2019/3/7 10:56
*/
公共类GeneratorUtil {
公共静态void main(String[] args)引发异常{
//MBG执行过程中的警告信息
ListString warnings=new ArrayList();
//当生成的代码重复时,覆盖原代码
布尔覆盖=真
//读取我们的MBG配置文件
InputStream is=generator util。班级。getresourceasstream('/generator config。XML’);
配置解析器CP=新配置解析器(警告);
配置config=CP。分析配置(是);
是。close();
DefaultShellCallback callback=new DefaultShellCallback(覆盖);
//创建MBG
MyBatisGenerator MyBatisGenerator=新的MyBatisGenerator(配置、回调、警告);
//执行生成代码
mybatisgenerator。生成(空);
//输出警告信息
对于(字符串警告:警告){
System.err.println(警告);
}
系统。出去。println('-success-');
}
}
这里还使用了一个覆盖可扩展标记语言的插件OverwriteXmlPlugin,使用这个插件每次新生成的可扩展标记语言文件会完全覆盖老的可扩展标记语言文件,这个插件已经在上面的generatorConfig.xml中配置过了
包com。xqnode。靴子。util
导入Java。util。列表;
导入org。我的巴蒂斯。发电机。API。生成的XML文件;
导入org。我的巴蒂斯。发电机。API。自省表;
导入org。我的巴蒂斯。发电机。API。插件适配器;
/**
* @版本1.0.0
*/
公共类OverwriteXmlPlugin扩展插件适配器{
@覆盖
公共布尔验证(列表字符串警告){
返回真实的
}
@覆盖
public boolean sqlmapggenerated(生成的XML文件sqlMap,自省表自省表){
sqlmap。set mergeable(false);
返回超级。sqlmapggenerated(sqlMap,自省表);
}
}
最后,运行发电机的主要的方法,就可以生成刀、模型和mapper.xml文件了。而且生成的代码非常简洁,这是因为tk.mapper代码生成的插件中已经做了相应的处理。生成的结果如下:
使用:
首先在应用程序。yml中配置可扩展标记语言和数据模型的位置:
mybatis:
映射器-位置:类路径:映射器/*。可扩展标记语言
类型-别名-包:com。xqnode。靴子。模型
然后在启动类上加上注解@ mapper scan(" com。xqnode。靴子。道》)扫描大刀的位置,注意这个注解式来自tk.mybatis.spring.annotation包下的,千万别引用错了。
包com。xqnode。开机;
导入org。spring框架。靴子。春季申请;
导入org。spring框架。靴子。自动配置。弹簧启动应用程序;
导入tk。我的巴蒂斯。春天。注释。映射器扫描;
@SpringBootApplication
@ MapperScan(' com。xqnode。靴子。道’)
公共类应用程序{
公共静态void main(String[] args) {
春季申请。运行(应用程序。class,args);
}
}
现在就可以编写控制器测试了:
包com。xqnode。靴子。控制器;
导入cn。胡工具。密码。安全实用程序;
导入com。xqnode。靴子。道。用户映射器;
导入com。xqnode。靴子。模型。用户;
导入org。spring框架。网络。绑定。注释。*;
导入tk。我的巴蒂斯。制图师。实体。例子;
导入javax。注释。资源;
导入Java。util。日期;
导入Java。util。列表;
/**
*由夏青创建于2019/3/6 20:11
*/
@RestController
@RequestMapping('/user ')
公共类用户控制器{
@资源
专用用户映射程序用户映射程序;
/**
* 查询所有用户
* @返回
*/
@GetMapping('/all ')
公共列表用户findAll() {
返回用户映射器。select all();
}
/**
* 注册新用户
* @param用户
* @返回
*/
@ post映射("/registry ")
公共整数注册表(@RequestBody User用户){
字符串pwd MD5=secure util。MD5(用户。get password());
用户。设置密码(pwd MD5);
用户。设置创建时间(新日期());
返回用户映射器。插入选择性(用户);
}
/**
* 根据登录名修改密码
* @param用户
* @返回
*/
@PutMapping('/changePwd ')
公共整数更改pwd(@ request body User User){
字符串pwd MD5=secure util。MD5(用户。get password());
用户。设置密码(pwd MD5);
示例示例=新示例(用户。类);
example.createCriteria()。andEqualTo('loginName ',用户。getloginname());
返回用户映射器。updatebyexampleselective(用户,示例);
}
}
接口访问测试一下:
测试成功!
以上这篇浅谈跳羚中tk.mapper代码生成器的用法说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。