MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代碼生成器。它將爲全部版本的MyBatis以及版本2.2.0以後的iBATIS版本生成代碼。它將內省數據庫表(或許多表),並將生成可用於訪問表的工件。這減小了設置對象和配置文件以與數據庫表交互的初始麻煩。MBG尋求對簡單CRUD(建立,檢索,更新,刪除)的大部分數據庫操做產生重大影響。您仍然須要爲鏈接查詢或存儲過程手動編寫SQL和對象代碼。
<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> <executions> <execution> <id>Generate MyBatis Artifacts</id> <goals> <goal>generate</goal> </goals> </execution> </executions> </plugin>
<?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> <properties resource="jdbc.properties"/> <!-- 數據庫驅動 --> <classPathEntry location="/Users/beast/.m2/repository/mysql/mysql-connector-java/5.0.8/mysql-connector-java-5.0.8.jar" /> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressDate" value="true" /> <!-- 是否去除自動生成的註釋 true:是 : false:否 --> <property name="suppressAllComments" value="true" /> </commentGenerator> <!--數據庫連接URL,用戶名、密碼 --> <jdbcConnection driverClass="${jdbc.driver}" connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}"> </jdbcConnection> <!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析爲 Integer true,把JDBC DECIMAL 和 NUMERIC 類型解析爲java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 生成模型的包名和位置 --> <javaModelGenerator targetPackage="wang.beastxw.javao2o.entity" targetProject="src/main/java"> <!-- enableSubPackages:是否讓schema做爲包的後綴 --> <property name="enableSubPackages" value="true" /> <!-- 從數據庫返回的值被清理先後的空格 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成映射文件的包名和位置XML文件 --> <sqlMapGenerator targetPackage="resources/mapper" targetProject="src/main"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- 生成DAO的包名和位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="wang.beastxw.javao2o.dao" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 要生成哪些表 --> <!-- tableName:用於自動生成代碼的數據庫表;domainObjectName:對應於數據庫表的javaBean類名 --> <!--tb_area數據庫代表--> <!--別名Book_Info pojo(實體類明)--> <!-- 配置數據庫中的表(%表示全部表),不生成Example類 --> <table tableName="tb_area" domainObjectName="Area" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> </context> </generatorConfiguration>
其中classPathEntry的值是數據庫驅動的地址對應maven裏面的jar包,不過這裏由於mysql驅動的問題(不然會一直提示找不到主鍵),要降版本,上一節mysql-connector-java的版本是8.多的,降成如今這個。而且把jdbc.properties換成jdbc.driver=com.mysql.jdbc.Driver
java
CREATE TABLE `tb_area` ( `area_id` int(2) NOT NULL AUTO_INCREMENT, `area_name` varchar(200) NOT NULL, `priority` int(2) NOT NULL DEFAULT '0', `create_time` datetime DEFAULT NULL, `last_edit_time` datetime DEFAULT NULL, PRIMARY KEY (`area_id`), UNIQUE KEY `UK_AREA` (`area_name`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
queryAreaList
這個方法package wang.beastxw.javao2o.dao; import wang.beastxw.javao2o.entity.Area; import java.util.List; public interface AreaMapper { List<Area> queryAreaList(); int deleteByPrimaryKey(Integer areaId); int insert(Area record); int insertSelective(Area record); Area selectByPrimaryKey(Integer areaId); int updateByPrimaryKeySelective(Area record); int updateByPrimaryKey(Area record); }
<select id="queryAreaList" resultType="wang.beastxw.javao2o.entity.Area"> SELECT <include refid="Base_Column_List" /> From tb_area ORDER BY priority DESC </select>
package wang.beastxw.javao2o; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * 配置spring 和 junit 整合 , junit 啓動時加載springIOC 容器 */ @RunWith(SpringJUnit4ClassRunner.class) // 告訴 junit spring 配置文件在哪裏 @ContextConfiguration({"classpath:spring/spring-dao.xml","classpath:spring/spring-service.xml"}) public class BaseTest { }
先在數據庫裏tb_area這個表裏增長一點數據
mysql
package wang.beastxw.javao2o.dao; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import wang.beastxw.javao2o.BaseTest; import wang.beastxw.javao2o.entity.Area; import java.util.List; public class AreaDaoTest extends BaseTest { @Autowired AreaMapper areaMapper; @Test public void TestQueryAreaList() { List<Area> areaList = areaMapper.queryAreaList(); } }
uri: https://github.com/Hericium/j...
分支: feature/startmvcgit