自动生成代码工具:mybatis-generator
Mybatis-Generator是一个可以用来生成Mybatis dao,entity,Mapper的文件的一个工具,在项目中可以省去我们很多重复的工作。
1、在main/resource中加入配置文件 generatorConifg.xml
例子如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="MySQLTables" targetRuntime="MyBatis3">
<!-- 数据库驱动 用户名 密码 数据库名 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1/cars" userId="root" password="a">
</jdbcConnection>
<!-- 实体类包名 targetPackage指定生成在那个包下 targetProject指定在那个目录下生成该包-->
<javaModelGenerator targetPackage="com.yc.cars.bean"
targetProject="src/main/java">
</javaModelGenerator>
<!-- Dao类包名 -->
<sqlMapGenerator targetPackage="com.yc.cars.dao"
targetProject="src/main/java">
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.yc.cars.dao" targetProject="src/main/java">
</javaClientGenerator>
<!-- column告诉jdbc哪一个字段是自增列,保存以后mysql自动生成在返回这个自增列的值 -->
<table tableName="car">
<generatedKey column="id" sqlStatement="mysql" />
</table>
<table tableName="driver">
<generatedKey column="id" sqlStatement="mysql" />
</table>
<table tableName="user_info">
<generatedKey column="id" sqlStatement="mysql" />
</table>
<table tableName="order">
<generatedKey column="id" sqlStatement="mysql" />
</table>
</context>
</generatorConfiguration>
注需要修改的是数据库驱动类、数据库表名、数据库用户名、数据库密码、各类文件需要生成在哪个目录(targetProject)下和在该目录下的哪个包(targetPackage)
2、在pom.xml中配置generator插件 和加入mysql-connector-java依赖
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
</dependencies>
</plugin>
</plugins>
3、运行命令:
在工程右键-》Run as-》Maven build-》输入命令:mybatis-generator:generate
4、通过自动生成的代码无需手动书写数据库事务语句
新版本自动生成的类有Mapper和Example,Example类用于封装定义数据库语句的类
具体用法:这里用到是模拟登陆功能
测试类:
@RunWith(SpringRunner.class)
@ContextConfiguration("/beans.xml")
public class UserInfoMapperTest {
@Resource
private UserInfoMapper umapper;
@Test
public void test()
{
//查询所有
/*umapper.selectByPrimaryKey(1);
umapper.selectByExample(null);*/
//查询指定用户名
UserInfoExample uie=new UserInfoExample();
uie.createCriteria().andNameEqualTo("张三");
umapper.selectByExample(uie);
uie=new UserInfoExample();
Criteria c=uie.createCriteria();
c.andNameLike("%三%");
c.andPwdEqualTo("123");
c.andEmailLike("%123%");
umapper.selectByExample(uie);
}
}
5、实现
1、创建相应的Example实例对象UserInfoExample example=new UserInfoExample();
2、由example调用createCriteria()创建Criteria实例 Criteria c=uie.createCriteria();
Criteria可以调用多种为实体类属性定义的条件方法 :
如 c.andNameLike(“%三%”);
c.andPwdEqualTo(“123”);
c.andEmailLike(“%123%”);
3、Criteria实例调用之后,再由UserInfoMapper调用Example的方法,此处要以example为方法参数
如:umapper.selectByExample(uie); 通过uie定义的条件查询
4、注:Example类中带Selecttive方法表示只更新非空字段
updateByPrimaryKeySelective会对字段进行判断再更新(如果为Null就忽略更新),如果你只想更新某一字段,可以用这个方法。
updateByPrimaryKey对你注入的字段全部更新,如果为字段不更新,数据库的值就为null。sql语句:
版权声明:本文为weixin_43784880原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。