mybaits須要程序員本身編寫sql語句,mybatis官方提供逆向工程 能夠針對單表自動生成mybatis執行所須要的代碼(mapper.Java,mapper.xml、po..)java
該工程源碼已上傳個人資源頁 http://download.csdn.NET/detail/u012373815/8941137mysql
數據庫到java 代碼 程序員
企業實際開發中,經常使用的逆向工程方式:sql
因爲數據庫的表生成java代碼。數據庫
目錄mybatis
建議使用java程序方式,不依賴開發工具備java環境便可。oracle
一、 添加要生成的數據庫表app
二、 po文件所在包路徑工具
三、 mapper文件所在包路徑開發工具
配置文件以下:注意標紅處
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEgeneratorConfiguration
PUBLIC "-//mybatis.org//DTDMyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<contextid="testTables"targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自動生成的註釋 true:是: false:否 -->
<propertyname="suppressAllComments"value="true"/>
</commentGenerator>
<!--數據庫鏈接的信息:驅動類、鏈接地址、用戶名、密碼 -->
<jdbcConnectiondriverClass="com.MySQL.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatis"userId="root"
password="mysql">
</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>
<propertyname="forceBigDecimals"value="false"/>
</javaTypeResolver>
<!-- targetProject:生成PO類的位置 -->
<javaModelGeneratortargetPackage="cn.hpu.ssm.po"
targetProject=".\src">
<!--enableSubPackages:是否讓schema做爲包的後綴 -->
<propertyname="enableSubPackages"value="false"/>
<!-- 從數據庫返回的值被清理先後的空格 -->
<propertyname="trimStrings"value="true"/>
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGeneratortargetPackage="cn.hpu.ssm.mapper"
targetProject=".\src">
<!--enableSubPackages:是否讓schema做爲包的後綴 -->
<propertyname="enableSubPackages"value="false"/>
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGeneratortype="XMLMAPPER"
targetPackage="cn.hpu.ssm.mapper"
targetProject=".\src">
<!--enableSubPackages:是否讓schema做爲包的後綴 -->
<propertyname="enableSubPackages"value="false"/>
</javaClientGenerator>
<!-- 指定數據庫表 -->
<table tableName="items"></table>
<table tableName="orders"></table>
<table tableName="orderdetail"></table>
<table tableName="user"></table>
</context>
</generatorConfiguration>
Public void generator()throws Exception{
List<String>warnings = newArrayList<String>();
boolean overwrite =true;
FileconfigFile = newFile("generatorConfig.xml");
ConfigurationParsercp = newConfigurationParser(warnings);
Configurationconfig = cp.parseConfiguration(configFile);
DefaultShellCallbackcallback = new DefaultShellCallback(overwrite);
MyBatisGeneratormyBatisGenerator = new MyBatisGenerator(config,
callback,warnings);
myBatisGenerator.generate(null);
}
Public static voidmain(String[] args)throws Exception {
try {
GeneratorSqlmapgeneratorSqlmap = new GeneratorSqlmap();
generatorSqlmap.generator();
}catch(Exception e) {
e.printStackTrace();
}
}
刷新程序目錄結構生成後的代碼:
須要將生成工程中所生成的代碼拷貝到本身的工程中。
測試ItemsMapper中的方法
//自定義條件查詢
@Test
public void testSelectByExample() {
ItemsExampleitemsExample = newItemsExample();
//經過criteria構造查詢條件
ItemsExample.Criteriacriteria = itemsExample.createCriteria();
criteria.andNameEqualTo("筆記本3");
//可能返回多條記錄
List<Items>list = itemsMapper.selectByExample(itemsExample);
System.out.println(list);
}
//根據主鍵查詢
@Test
public voidtestSelectByPrimaryKey() {
Itemsitems = itemsMapper.selectByPrimaryKey(1);
System.out.println(items);
}
//插入
@Test
public void testInsert() {
//構造 items對象
Itemsitems = newItems();
items.setName("手機");
items.setPrice(999f);
itemsMapper.insert(items);
}
//更新數據
@Test
public void testUpdateByPrimaryKey() {
//對全部字段進行更新,須要先查詢出來再更新
Items items = itemsMapper.selectByPrimaryKey(1);
items.setName("水杯");
itemsMapper.updateByPrimaryKey(items);
//若是傳入字段不空爲才更新,在批量更新中使用此方法,不須要先查詢再更新
//itemsMapper.updateByPrimaryKeySelective(record);
}
源碼傳資源了在個人資源頁