什么是逆向工程?
就是我们可以根据数据库表,自动生成javabean,mapper接口和其对应的maaper.xml文件。
现有数据库ssm_curd以及相应的表tbl_emp和tbl_dept:
项目的基本目录如下:
主要的是配置文件,我们看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" /> </数据库连接的信息:驱动类、连接地址、用户名、密码 --> jdbcConnection driverClass="com.MysqL.jdbc.Driver" connectionURL="jdbc:MysqL://localhost:3306/ssm_curd" userID="root" password="123456"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="forceBigDecimals"="false" > targetProject:生成PO类的位置 javaModelGenerator targetPackage="com.gong.generate.bean" targetProject=".\src" enableSubPackages:是否让schema作为包的后缀 ="enableSubPackages"/> 从数据库返回的值被清理前后的空格 ="trimstrings"javaModelGenerator targetProject:mapper映射文件生成的位置 sqlMapGenerator ="mapper"=".\conf"sqlMapGenerator targetPackage:mapper接口生成的位置 javaClIEntGenerator type="XMLMAPPER" targetPackage="com.gong.generate.dao" targetProjectjavaClIEntGenerator 指定数据库表 table tablename="tbl_emp" domainObjectname="Employee" enableCountByExample="false" enableupdateByExample enableDeleteByExample enableSelectByExample selectByExamplequeryID="false"></table="tbl_dept"="Department"> context>>
我们慢慢来看:
>
ID为该配置文件里的标识,targetRuntime为MyBatis3。
>
去掉生成文件中的注释。
>
数据库连接配置
>
配置POJO:javaModelGenerator ,具体位置:targetProject,具体包:targetPackage
>
配置mapper.xml
>
配置mapper.java也就是接口。
>
指定数据库名称以及要生成的POJO的名称。后面的一些属性是为了不生成类似于EmployeeExample.java等example文件。
接下来是运行的java文件:Generatorsqlmap.java
import java.io.file; java.util.ArrayList; java.util.List; org.mybatis.generator.API.MyBatisGenerator; org.mybatis.generator.config.Configuration; org.mybatis.generator.config.xml.ConfigurationParser; org.mybatis.generator.internal.DefaultShellCallback;public class Generatorsqlmap { voID generator() throws Exception{ List<String> warnings = new ArrayList<String>(); boolean overwrite = true; //指定 逆向工程配置文件 file configfile = new file("generatorConfig.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configfile); DefaultShellCallback callback = DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = MyBatisGenerator(config,callback,warnings); myBatisGenerator.generate(null); } static voID main(String[] args) Exception { try { Generatorsqlmap generatorsqlmap = Generatorsqlmap(); generatorsqlmap.generator(); } catch (Exception e) { e.printstacktrace(); } }}
我们只需要更改为自己配置文件的位置即可,运行它:控制台
点击自己的项目,按F5进行刷新:
我们发现生成了相关的文件,我们看下其中的一些:
Employee.java
package com.gong.generate.bean; Employee { private Integer empID; String empname; String gender; String email; Integer dID; public Integer getEmpID() { return empID; } voID setEmpID(Integer empID) { this.empID = String getEmpname() { empname; } setEmpname(String empname) { this.empname = empname == null ? : empname.trim(); } String getGender() { gender; } setGender(String gender) { this.gender = gender == : gender.trim(); } String getEmail() { email; } setEmail(String email) { this.email = email == : email.trim(); } Integer getdID() { dID; } setdID(Integer dID) { this.dID = dID; }}
发现数据库中的下划线命名字段会转换成java中驼峰命名的属性。
EmployeeMapper.java
com.gong.generate.dao; com.gong.generate.bean.Employee;interface EmployeeMapper { int deleteByPrimaryKey(Integer empID); insert(Employee record); insertSelective(Employee record); Employee selectByPrimaryKey(Integer empID); updateByPrimaryKeySelective(Employee record); updateByPrimaryKey(Employee record);}
提供了一些默认的方法。
EmployeeMapper.xml
xml version="1.0" enCoding="UTF-8" DOCTYPE mapper PUBliC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" mapper namespace="com.gong.generate.dao.EmployeeMapper" > resultMap ="BaseResultMap" type="com.gong.generate.bean.Employee" > ID column="emp_ID" property="empID" jdbcType="INTEGER" /> result ="emp_name"="empname"="VARCHAR" ="gender"="CHAR" ="email"="d_ID"="dID"/> resultMapsql ="Base_Column_List" > emp_ID,emp_name,gender,email,d_ID sqlselect ="selectByPrimaryKey" resultMap parameterType="java.lang.Integer" select include refID/> from tbl_emp where emp_ID = #{empID,jdbcType=INTEGER} selectdelete ="deleteByPrimaryKey" delete from tbl_emp where emp_ID = #{empID,1)">deleteinsert ="insert" insert into tbl_emp (emp_ID,d_ID) values (#{empID,jdbcType=INTEGER},#{empname,jdbcType=VARCHAR},#{gender,jdbcType=CHAR},#{email,#{dID,jdbcType=INTEGER}) insert="insertSelective" insert into tbl_emp trim prefix="(" suffix=")" suffixOverrIDes="," > if test="empID != null" emp_ID,if="empname != null" emp_name,1)">="gender != null" gender,1)">="email != null" email,1)">="dID != null" d_ID,1)">trim="values (" #{empID,1)"> #{empname,1)"> #{gender,1)"> #{email,1)"> #{dID,1)">update ="updateByPrimaryKeySelective" update tbl_emp set emp_name = #{empname,1)"> gender = #{gender,1)"> email = #{email,1)"> d_ID = #{dID,1)">set where emp_ID = #{empID,1)">update="updateByPrimaryKey" update tbl_emp set emp_name = #{empname,gender = #{gender,email = #{email,d_ID = #{dID,jdbcType=INTEGER} where emp_ID = #{empID,1)">mapper>
对应的mapper.xml文件,至此mybatis逆向工程就完成了。
总结以上是内存溢出为你收集整理的mybatis逆向工程全部内容,希望文章能够帮你解决mybatis逆向工程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)