简单点说,就是经过数据库中的单表,自动生成java代码。
Mybatis官方提供了逆向工程,能够针对单表自动生成mybatis代码(mapper.java\mapper.xml\po类)
企业中,逆向工程是个很经常使用的工具,比咱们手动建立映射文件的配置信息方便不少.java
项目类型没有限制,能够是java项目也能够是web项目,或者maven项目均可以。mysql
在src下建立一个配置文件
web
<?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> <!-- 数据库的驱动包路径 --> <classPathEntry location="C:\tools\maven-repository\mysql\mysql-connector-java\5.1.27\mysql-connector-java-5.1.27.jar" /> <context id="DB2Tables" targetRuntime="MyBatis3"> <!-- 去掉生成文件中的注释 --> <commentGenerator> <property name="suppressAllComments" value="true" /> </commentGenerator> <!-- 数据库连接URL、用户名、密码 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/ssm" userId="root" password="123456"> </jdbcConnection> <!-- <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@localhost:1521:XE" userId="car" password="car"> </jdbcConnection> --> <javaTypeResolver > <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 生成模型的包名和位置 --> <javaModelGenerator targetPackage="com.dpb.model" targetProject="mybatis12-generate\src"> <!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] --> <property name="enableSubPackages" value="false" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成的映射文件包名和位置 --> <sqlMapGenerator targetPackage="com.dpb.mapper" targetProject="mybatis12-generate\src"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- 生成DAO的包名和位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.dpb.mapper" targetProject="mybatis12-generate\src"> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <table tableName="t_user" domainObjectName="UserBean" > </table> </context> </generatorConfiguration>
选中配置文件点击右键以下图:
==生成成功==sql
方法 | 功能说明 |
---|---|
int countByExample(UserExample example) | 按条件计数 |
int deleteByPrimaryKey(Integer id) | 按主键删除 |
int deleteByExample(UserExample example) | 按条件查询 |
String/Integer insert(User record) | 插入数据(返回值为ID) |
User selectByPrimaryKey(Integer id) | 按主键查询 |
ListselectByExample(UserExample example) | 按条件查询 |
ListselectByExampleWithBLOGs(UserExample example) | 按条件查询(包括BLOB字段)。只有当数据表中的字段类型有为二进制的才会产生。 |
int updateByPrimaryKey(User record) | 按主键更新 |
int updateByPrimaryKeySelective(User record) | 按主键更新值不为null的字段 |
int updateByExample(User record, UserExample example) | 按条件更新 |
int updateByExampleSelective(User record, UserExample example) | 按条件更新值不为null的字段 |