簡單點說,就是經過數據庫中的單表,自動生成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的字段 |