mybatis--generator自动生成代码工具使用步骤详解

自动生成代码工具: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语句:

发布了20 篇原创文章 · 获赞 10 · 访问量 5476

猜你喜欢

转载自blog.csdn.net/weixin_43784880/article/details/89437927