mybatisgenerator的使用及自定义sql最佳实践

更新时间:2023-06-28 10:21:10 阅读: 评论:0

mybatisgenerator的使⽤及⾃定义sql最佳实践怎么留胡子
mybatis generator提供的代码⽣成功能解决了繁琐的sql⽂件编写,提供了类似hibernate的javaapi编程拼装sql功能,对于效率提⾼颇有帮助。
MBG的配置使⽤
本⽂采⽤maven⽅式配置。
1.在l中加⼊插件,<build>应该与<dependencies>并列
<build>
<plugins>
<plugin>
<groupId&ator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.0</version>
<!-- 所需依赖 -->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
</dependencies>
<configuration>
<!--配置⽂件的路径 -->
<configurationFile>${badir}/src/main/l</configurationFile>
<!-- 重复⽣成是否覆盖源⽂件 -->
<overwrite>true</overwrite>
</configuration>
</plugin>
楼房英语关于父母的歌</plugins>
</build>
2.在resources⽬录下建mappers⽂件夹存放⽣成的l,并在java⽬录下建⽴dao和entity⽬录分别存放⽣成的Mapper接⼝和实体类
3.配置l
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis//DTD MyBatis Generator Configuration 1.0//EN"
"mybatis/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="tables"targetRuntime="MyBatis3">
<!-- 数据库连接配置 -->
<jdbcConnection driverClass="sql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/ssm?characterEncoding=UTF8"
urId="root"
password="root">
</jdbcConnection>
<!-- java类型调整,此处并不强制使⽤BigDecimal -->
<javaTypeResolver >
空白的一百年<property name="forceBigDecimals"value="fal" />
</javaTypeResolver>
<!-- 模型类⽣成配置,targetPackage为⽣成后⽂件的⽬录 -->
<javaModelGenerator targetPackage="com.chinasofti.ity"targetProject="src/main/java">
<property name="enableSubPackages"value="true" />
<property name="trimStrings"value="true" />
</javaModelGenerator>
汽车排气<!-- l⽣成配置,targetPackage为⽣成后⽂件的⽬录 -->
blmanhua
<sqlMapGenerator targetPackage="resources.mappers"targetProject="src/main/">
<property name="enableSubPackages"value="true" />
</sqlMapGenerator>
<!-- Mapper接⼝即XXXMapper.java⽣成配置,targetPackage为⽣成后⽂件的⽬录 -->
<javaClientGenerator type="XMLMAPPER"targetPackage="com.chinasofti.ssm.dal.dao"targetProject="src/main/java">
<property name="enableSubPackages"value="true" />
</javaClientGenerator>
<!-- 表的配置 -->
<table schema="ssm"tableName="player"domainObjectName="Player" >
<!-- uActualColumnNames设为true则会直接将数据库的表名作为模型类的表名,所以设为fal,默认转成驼峰式 -->
<property name="uActualColumnNames"value="fal"/>
<generatedKey column="id"sqlStatement="mysql"identity="true" />
<columnOverride column="id"property="id"/>
</table>
</context>
</generatorConfiguration>
4.在项⽬根⽬录下执⾏mvn mybatis-generator:generate 则会⾃动⽣成到指定⽬录下。eclip可以run as > maven build 在goal⾥输
共享发展
⼊mybatis-generator:generate
!注意,配置⽂件中指定的targetPackage不能有⼤写,必须全⼩写,否则出错
关于⽣成的⽅法,如果设置了主键,则会⽣成⼀系列XXByPrimaryKey的⽅法,如果没有检查是否有主键或者主键类型是否为⾃增int。
⽣成的XXByExample可能会让你觉得很奇怪。其实Example的API很简单。主要是createCreteria⽅法,该⽅法创建的对象提供了各种条件拼装的⽅法,使⽤这些⽅法就能够创建查询条件了。
⼀个列⼦
PaymentExample example = new PaymentExample();
example.tOrderByClau("amount desc");
example.tDistinct(true);
paymentMapper.lectByExample(example);
⽣成的sql为
lect distinct id, ur, amount, status, pay_time from payment WHERE ( amount > ? and pay_time > ? ) order by amount desc
⾃定义sql最佳实践壁纸简单
使⽤MBG会有⼀个问题,就是重复⽣成代码,如果不配置override(见l中的插件配置),则会⽣成⼀堆重复⽂件,如果配置了,会将UrMapper⾥的内容覆盖掉。个⼈认为的最佳实践如下。
编写⼀个⾃定义Mapper接⼝继承⾃原Mapper,将⾃定义的⽅法写在该对象中,并⾃⼰编写⼀个对应的l
Mapper接⼝如下:
package com.ci.framework.door.dal.dao;
import java.util.Map;
import com.ci.framework.ity.Ur;
public interface UrMapperCustom extends UrMapper {
Ur findById(int urId);
Ur lectUrnameAndPassword(Map<String, Object> map);
}
对应的l如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis//DTD Mapper 3.0//EN" "mybatis/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.ci.framework.door.dal.dao.UrMapperCustom" >
<lect id="findById"parameterType="int"resultType="com.chinasofti.framework.ity.Ur">
lect * from urs where ur_id=#{urId}
</lect>
<lect id="lectUrnameAndPassword"parameterType="map"resultType="com.chinasofti.framework.ity.Ur">
lect * from urs where urname=#{urname} and passwd=#{passwd}
</lect>
</mapper>
这样重复⽣成覆盖内容将不会影响到原先的内容。

本文发布于:2023-06-28 10:21:10,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1058153.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:配置   主键   提供
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图