详解MyBatis逆向工程
程序员文章站
2023-12-15 19:00:34
1.什么是mybatis逆向工程
在使用mybatis时需要程序员自己编写sql语句,针对单表的sql语句量是很大的,mybatis官方提供了一种根据数据库表生成myba...
1.什么是mybatis逆向工程
在使用mybatis时需要程序员自己编写sql语句,针对单表的sql语句量是很大的,mybatis官方提供了一种根据数据库表生成mybatis执行代码的工具,这个工具就是一个逆向工程。
逆向工程:针对数据库单表—->生成代码(mapper.xml、mapper.java、pojo。。)
mybatis-generator-core-1.3.2.jar—逆向工程运行所需要的jar核心 包
2.配置逆向工程的配置文件
配置文件generatorconfig.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="testtables" targetruntime="mybatis3"> <commentgenerator> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressallcomments" value="true" /> </commentgenerator> <!--数据库连接的信息:驱动类、连接地址、用户名、密码 --> <jdbcconnection driverclass="com.mysql.jdbc.driver" connectionurl="jdbc:mysql://localhost:3306/mybatis" userid="root" password="123"> </jdbcconnection> <!-- <jdbcconnection driverclass="oracle.jdbc.oracledriver" connectionurl="jdbc:oracle:thin:@127.0.0.1:1521:yycg" userid="yycg" password="yycg"> </jdbcconnection> --> <!-- 默认false,把jdbc decimal 和 numeric 类型解析为 integer,为 true时把jdbc decimal 和 numeric 类型解析为java.math.bigdecimal --> <javatyperesolver> <property name="forcebigdecimals" value="false" /> </javatyperesolver> <!-- targetproject:生成po类的位置 --> <javamodelgenerator targetpackage="cn.zm.mybatis.po" targetproject=".\src"> <!-- enablesubpackages:是否让schema作为包的后缀 --> <property name="enablesubpackages" value="false" /> <!-- 从数据库返回的值被清理前后的空格 --> <property name="trimstrings" value="true" /> </javamodelgenerator> <!-- targetproject:mapper映射文件生成的位置 --> <sqlmapgenerator targetpackage="cn.zm.mybatis.mapper" targetproject=".\src"> <!-- enablesubpackages:是否让schema作为包的后缀 --> <property name="enablesubpackages" value="false" /> </sqlmapgenerator> <!-- targetpackage:mapper接口生成的位置 --> <javaclientgenerator type="xmlmapper" targetpackage="cn.zm.mybatis.mapper" targetproject=".\src"> <!-- enablesubpackages:是否让schema作为包的后缀 --> <property name="enablesubpackages" value="false" /> </javaclientgenerator> <!-- 指定数据库表 --> <table tablename="items"></table> <!-- <table tablename="orders"></table> <table tablename="orderdetail"></table> <table tablename="user"></table>--> <!-- <table schema="" tablename="sys_user"></table> <table schema="" tablename="sys_role"></table> <table schema="" tablename="sys_permission"></table> <table schema="" tablename="sys_user_role"></table> <table schema="" tablename="sys_role_permission"></table> --> <!-- 有些表的字段需要指定java类型 <table schema="" tablename=""> <columnoverride column="" javatype="" /> </table> --> </context> </generatorconfiguration>
3.执行逆向工程生成代码
执行java类方法:
生成的代码如下:
4.将生成的代码拷贝到业务系统工程中测试
public class itemsmappertest { private applicationcontext applicationcontext; private itemsmapper itemsmapper; @before public void setup() throws exception { applicationcontext = new classpathxmlapplicationcontext("classpath:applicationcontext.xml"); itemsmapper = (itemsmapper) applicationcontext.getbean("itemsmapper"); } //根本主键删除 @test public void deletebyprimarykey() { itemsmapper.deletebyprimarykey(4); } @test public void insert() { } @test public void selectbyexample() { itemsexample itemsexample = new itemsexample(); itemsexample.criteria criteria = itemsexample.createcriteria(); //使用criteria自定义查询条件 criteria.andnameequalto("水杯"); criteria.andidequalto(1); list<items> list = itemsmapper.selectbyexample(itemsexample); system.out.println(list); } @test public void selectbyprimarykey() { items items = itemsmapper.selectbyprimarykey(1); system.out.println(items); } @test public void updatebyprimarykey() { } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。