Mybatis上路_06-使用Java自动生成
11人收藏此文章, 我要收藏发表于1个月前(2013-04-24 23:05) , 已有
151次阅读 ,共
0个评论
1.编写Generator执行配置文件:
generatorConfigation.xml。注意配置数据库驱动包的绝对路径。
01 |
<? xml version = "1.0" encoding = "UTF-8" ?> |
02 |
<!DOCTYPE generatorConfiguration |
03 |
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" |
04 |
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> |
06 |
< generatorConfiguration > |
08 |
< classPathEntry location = "c:/mysql-connector-java-5.1.22-bin.jar" /> |
13 |
< context id = "MySqlTables" targetRuntime = "MyBatis3" > |
21 |
driverClass = "com.mysql.jdbc.Driver" |
22 |
connectionURL = "jdbc:mysql://127.0.0.1:3306/db_mybatis" |
32 |
< property name = "forceBigDecimals" value = "false" /> |
41 |
targetPackage = "cn.cvu.test.model" |
43 |
< property name = "enableSubPackages" value = "false" /> |
44 |
< property name = "trimStrings" value = "true" /> |
52 |
targetPackage = "cn.cvu.test.xml" |
54 |
< property name = "enableSubPackages" value = "false" /> |
64 |
targetPackage = "cn.cvu.test.dao" |
66 |
< property name = "enableSubPackages" value = "false" /> |
67 |
</ javaClientGenerator > |
72 |
< table tableName = "tb_generator" domainObjectName = "Eminem" > |
75 |
< property name = "useActualColumnNames" value = "true" /> |
79 |
< generatedKey column = "id" sqlStatement = "MySql" identity = "true" /> |
83 |
< columnOverride column = "name" property = "generName" /> |
89 |
</ generatorConfiguration > |
2.在MyEclipse中建空web项目:
将配置文件放到src里。加入generator的jar文件。
3.编写并执行Java程序:
01 |
package cn.cvu.test.build; |
04 |
import java.util.ArrayList; |
05 |
import java.util.List; |
06 |
import org.junit.Test; |
07 |
import org.mybatis.generator.api.MyBatisGenerator; |
08 |
import org.mybatis.generator.config.Configuration; |
09 |
import org.mybatis.generator.config.xml.ConfigurationParser; |
10 |
import org.mybatis.generator.internal.DefaultShellCallback; |
12 |
public class TestGenerateWithJava { |
15 |
public void testBuild() throws Exception { |
17 |
List<String> warnings = new ArrayList<String>(); |
19 |
boolean overwrite = true ; |
21 |
File configFile = new File( "F:/myeclipse_workspace/generator/src/generatorConfigation.xml" ); |
23 |
ConfigurationParser parser = new ConfigurationParser(warnings); |
25 |
Configuration config = parser.parseConfiguration(configFile); |
27 |
DefaultShellCallback callback = new DefaultShellCallback(overwrite); |
29 |
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); |
31 |
myBatisGenerator.generate( null ); |
4.查看并修改生成的文件:
选中src,按F5刷新,可以看到新文件已经创建:
修改报错的EmineMapper.java文件,去除注解:
5.测试,使用生成的文件查询:
1)导入MyBatis的jar包:
mybatis-3.2.2.jar
mybatis-generator-core-1.3.2.jar
mysql-connector-java-5.1.22-bin.jar
2)创建MyBatis的xml配置文件:
上面我们注释掉了自动生成的注解代码,在src新建一个xml配置文件,mybatisConfigation.xml:
01 |
<? xml version = "1.0" encoding = "UTF-8" ?> |
02 |
<!DOCTYPE configuration |
03 |
PUBLIC "-//mybatis.org//DTD Config 3.0//EN" |
04 |
"http://mybatis.org/dtd/mybatis-3-config.dtd"> |
07 |
< environments default = "development" > |
08 |
< environment id = "development" > |
09 |
< transactionManager type = "JDBC" /> |
10 |
< dataSource type = "POOLED" > |
11 |
< property name = "driver" value = "com.mysql.jdbc.Driver" /> |
12 |
< property name = "url" value = "jdbc:mysql://127.0.0.1:3306/db_mybatis" /> |
13 |
< property name = "username" value = "root" /> |
14 |
< property name = "password" value = "root" /> |
21 |
< mapper resource = "cn/cvu/test/xml/EminemMapper.xml" /> |
3)Java测试代码:
创建测试类cn.cvu.test.dotest.TestDoGeneratorWithJava :
01 |
package cn.cvu.test.dotest; |
03 |
import java.io.Reader; |
04 |
import java.util.List; |
05 |
import org.apache.ibatis.io.Resources; |
06 |
import org.apache.ibatis.session.SqlSession; |
07 |
import org.apache.ibatis.session.SqlSessionFactoryBuilder; |
08 |
import org.junit.Test; |
09 |
import cn.cvu.test.dao.EminemMapper; |
10 |
import cn.cvu.test.model.Eminem; |
11 |
import cn.cvu.test.model.EminemExample; |
12 |
import cn.cvu.test.model.EminemExample.Criteria; |
14 |
public class TestDoGeneratorWithJava { |
17 |
public void testQuery() throws Exception { |
20 |
Reader reader = Resources.getResourceAsReader( "mybatisConfigation.xml" ); |
21 |
SqlSession session = new SqlSessionFactoryBuilder().build(reader).openSession(); |
24 |
EminemExample eminemExample = new EminemExample(); |
27 |
EminemMapper mapper = session.getMapper(EminemMapper. class ); |
30 |
List<Eminem> eminems = mapper.selectByExample(eminemExample); |
31 |
System.out.println( "ID \t\t name \t\t notes \n" ); |
32 |
for (Eminem eminem : eminems) { |
33 |
System.out.println(eminem.getId()+ |
34 |
"\t\t" +eminem.getGenerName()+ |
35 |
"\t\t" +eminem.getNotes()); |
- end