在创建JavaBean的时候,我们需要与数据库表的字段设计相互对应,自己写起来太费时间,也比较麻烦,所以我们可以使用mybatis的插件,来自动的帮助我们创建实体类,mapper,以及对应mapper的xml文件。So,我们开始吧!
1 首先,我们需要在pom.xml中导入对应的插件包;复制如下代码到plugins标签下面:
<plugin>
<groupId>org.mybatis.generatorgroupId>
<artifactId>mybatis-generator-maven-pluginartifactId>
<version>1.3.2version>
<configuration>
<verbose>trueverbose>
<overwrite>trueoverwrite>
configuration>
<dependencies>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>5.1.35version>
dependency>
dependencies>
plugin>
2 导入后,下载完毕,点击右侧的maven选项下的plugins下的如图的选项,出现如下图的选项即说明导入成功了;
3 然后,在resources源文件目录下面新建一个generatorConfig.xml文件,复制如下代码(需要修改的地方看注释):
<generatorConfiguration>
<context id="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressAllComments" value="true" />
commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/film"
userId="账号"
password="密码">
jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
javaTypeResolver>
<javaModelGenerator targetPackage="Start.lpy.pojo"
targetProject="src/main/java">
<property name="enableSubPackages" value="false" />
<property name="trimStrings" value="true" />
javaModelGenerator>
<sqlMapGenerator targetPackage="mapper"
targetProject="src/main/resources">
<property name="enableSubPackages" value="false" />
sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER"
targetPackage="Start.lpy.Mapper"
targetProject="src/main/java">
<property name="enableSubPackages" value="false" />
javaClientGenerator>
<table tableName="数据库的表名1"/>
<table tableName="数据库的表名2"/>
context>
generatorConfiguration>
4 当将数据库信息配置完成之后,在双击第二步的mybatis-generator工具即可生成成功,成功生成的文件有test.java,testExample.java,TestMapper.java,TestMapper.xml这几个文件。
1 实体类中会生成2个java类:test.java与testExample.java
test.java中包括:属性(数据库中对应的字段),Get与Set方法;
testExample.java, 这个类是专门用来做单表查询的类,对单表(test表)的CURD操作是脱离sql性质的(已经通过逆向工程生成相应的sql),可以直接在service层就可以完成相应操作。
2 映射类与映射文件
testmapper.java是一个接口,里面定义了单表查询的基本的方法,
testmapper.xml是mybatis的sql语句文件,里面包含了与testmapper.java中的基本的sql的单表查询的语句。
具体如何使用参考这位大佬的博客:https://blog.csdn.net/thedarkclouds/article/details/82384606
.java中的基本的sql的单表查询的语句。
3 xxxExample类的具体使用
这个类简单来说就是一个工具类,example即例子,就是说——创建了一个模板,对这个模板进行修改,修改成自己需要的样子,在进行调用即可。
//按照主键查询 相当于select * from test where testid = 1
@Override
public List<Test> listByPK() {
Test test= testMapper.selectByPrimaryKey(1);
List<Test> list=new ArrayList<>();
list.add(test);
return list;
}
//按照条件进行查询 相当于select * from test where name = 'c' order by name asc
@Override
public List<Test> listByCluse() {
TestExample testExample=new TestExample(); //实例化
TestExample.Criteria criteria = testExample.createCriteria();//创建条件对象
criteria.andNameEqualTo("c");//设置条件
testExample.setOrderByClause("name asc");//设置条件
//将实例化的创建好条件的对象传入,用它的条件来进行约束;我就是这么理解的
List<Test> testList=testMapper.selectByExample(testExample);
return testList;
}
具体如何使用参考这位大佬的博客:使用example来完成简单的单表查询