日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

MyBatis使用Generator自動(dòng)生成代碼

系統(tǒng) 1829 0

MyBatis中,可以使用Generator自動(dòng)生成代碼,包括DAO層、 MODEL層 、MAPPING SQL映射文件。

第一步:
配置好自動(dòng)生成代碼所需的XML配置文件,例如(generator.xml):
<?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:數(shù)據(jù)庫(kù)的JDBC驅(qū)動(dòng)-->
??<classPathEntry location="F:\Jansun\workspace\wicketAjax\ojdbc14-10.2.0.1.jar" />
?
??<context id="DB2Tables" targetRuntime="MyBatis3">
<!-- 去除自動(dòng)生成的注釋 -->
<commentGenerator>
?<property name="suppressAllComments" value="true" />
</commentGenerator>
?
?? ?<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
?? ? ? ?connectionURL="jdbc:oracle:thin:@10.87.61.233:1521:orcl11g"
?? ? ? ?userId="ibis"
?? ? ? ?password="ibis">
?? ?</jdbcConnection>
?
?? ?<javaTypeResolver >
?? ? ?<property name="forceBigDecimals" value="false" />
?? ?</javaTypeResolver>
?
<!-- targetProject:自動(dòng)生成代碼的位置 -->
?? ?<javaModelGenerator targetPackage="com.test.model" targetProject="F:\Jansun\workspace\wicketAjax\src">
?? ? ?<property name="enableSubPackages" value="true" />
?? ? ?<property name="trimStrings" value="true" />
?? ?</javaModelGenerator>
?
?? ?<sqlMapGenerator targetPackage="com.test.mapping" ?targetProject="F:\Jansun\workspace\wicketAjax\src">
?? ? ?<property name="enableSubPackages" value="true" />
?? ?</sqlMapGenerator>
?
?? ?<javaClientGenerator type="XMLMAPPER" targetPackage="com.test.dao" ?targetProject="F:\Jansun\workspace\wicketAjax\src">
?? ? ?<property name="enableSubPackages" value="true" />
?? ?</javaClientGenerator>
?
<!-- tableName:用于自動(dòng)生成代碼的數(shù)據(jù)庫(kù)表;domainObjectName:對(duì)應(yīng)于數(shù)據(jù)庫(kù)表的javaBean類名 -->
?? ?<table schema="ibis" tableName="ibis_info" domainObjectName="Ibis" >
?? ? ?
?? ?</table>
?
??</context>
??
</generatorConfiguration>
?
第二步:下載 mybatis-generator-core-1.3.1.jar 包。
?
第三步:進(jìn)入XML配置文件(generator.xml)所在的的目錄并執(zhí)行命令:
?
java -jar F:\mybatis-generator-core-1.3.1\lib\mybatis-generator-core-1.3.1.jar -configfile genrator.xml -overwrite
?
(PS:F:\mybatis-generator-core-1.3.1\lib\mybatis-generator-core-1.3.1.jar,是你所下載的 mybatis-generator-core-1.3.1.jar包所在的目錄
//--------------------------------------------------------------------------------------
?

Mybatis-generator-------------Mybatis 的代碼生成器

使用 Hibernate 時(shí) ,? 可以很方便的生成 model,dao, 和映射配置文件 . mybatis ,? 也有生成器 , mybatis generator,? 簡(jiǎn)稱 MBG.? 下面為大家介紹一下 MBG 的使用 .

?

? ? Mybatis-generator 的思想是編寫一個(gè)配置文件,然后運(yùn)行該配置文件,就會(huì)得到相應(yīng)的 java 代碼。那么重點(diǎn)就是這個(gè)配置文件,配置文件中都需要些什么呢?必須包括的有數(shù)據(jù)庫(kù)的 datasource Mybatis 的版本信息,至少一個(gè)的數(shù)據(jù)表,還有是需要生成的代碼所在的包的信息。

?

1. 下載類包

下載 mybatis-generator-core-1.3.1-bundle.zip 之后 ,? 解壓得到 mybatis-generator-core-1.3.1.jar,? 即生成器的 jar ,? mybatis-3.0.6.jar mybatis-generator-core-1.3.1.jar 加入到項(xiàng)目的 lib ,? 然后編寫一個(gè)生成器的配置文件 generatorConfig.xml.

2. mybatis-generator 的配置文件

mybatis-generator 最重要的就是一個(gè)配置文件,配置文件中配置了生成的 .dao? pojo 生成的 package 路徑等。

介紹一下 genernatorConfig.xml

    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<? xml version = "1.0" encoding = "UTF-8" ?>
<!DOCTYPE generatorConfiguration?
?
?? PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"?
?
?
?? ?
?
< generatorConfiguration >?
?
???? < properties resource = "com/yuan/mybatis/mbg/util/generatorConfig.properties" />?
?
???? < classPathEntry location = "${classPath}" />?
?
???? < context id = "MBG" targetRuntime = "MyBatis3" defaultModelType = "conditional" >?
?
???????? < plugin type = "org.mybatis.generator.plugins.EqualsHashCodePlugin" />?
?
???????? < plugin type = "org.mybatis.generator.plugins.MapperConfigPlugin" >?
?
???????????? < property name = "fileName" value = "GeneratedMapperConfig.xml" />?
?
???????????? < property name = "targetPackage" value = "com.yuan.mybatis.mbg.util" />?
?
???????????? < property name = "targetProject" value = "${targetProject}" />?
?
???????? </ plugin >?
?
???????? < commentGenerator >?
?
???????????? < property name = "suppressAllComments" value = "true" />?
?
???????? </ commentGenerator >?
?
???????? < jdbcConnection driverClass = "${driverClass}" ?
?
???????????? connectionURL = "${connectionURL}" userId = "${userId}" password = "${password}" >?
?
???????? </ jdbcConnection >?
?
???????? < javaTypeResolver >?
?
???????????? < property name = "forceBigDecimals" value = "false" />?
?
???????? </ javaTypeResolver >?
?
?? ?
?
???????? < javaModelGenerator targetPackage = "${modelPackage}" ?
?
???????????? targetProject = "${targetProject}" >?
?
???????????? < property name = "enableSubPackages" value = "true" />?
?
???????? </ javaModelGenerator >?
?
?? ?
?
???????? < sqlMapGenerator targetPackage = "${sqlMapperPackage}" ?
?
???????????? targetProject = "${targetProject}" >?
?
???????????? < property name = "enableSubPackages" value = "true" />?
?
???????? </ sqlMapGenerator >?
?
?? ?
?
???????? < javaClientGenerator type = "XMLMAPPER" ?
?
???????????? targetPackage = "${daoMapperPackage}" targetProject = "${targetProject}" >?
?
???????????? < property name = "enableSubPackages" value = "true" />?
?
???????? </ javaClientGenerator >?
?
???????? < table schema = "minghan" tableName = "sys_group" domainObjectName = "Group" >?
?
???????????? < generatedKey column = "groupId" sqlStatement = "mysql" ?
?
???????????????? identity = "true" />?
?
???????? </ table >?
?
???????? < table schema = "minghan" tableName = "sys_admin" domainObjectName = "Admin" ?
?
???????????? enableCountByExample = "false" enableUpdateByExample = "false" ?
?
???????????? enableDeleteByExample = "false" enableSelectByExample = "false" ?
?
???????????? selectByExampleQueryId = "false" >?
?
???????? </ table >?
?
?? ?
?
???? </ context >?
?
</ generatorConfiguration >
    

其中的 properties 元素里引用了一個(gè) generatorConfig.properties 配置文件是為了方便移植的時(shí)候 , 只需修改 resource 的路徑值和 generatorConfig.properties 里的值即進(jìn)行生成操作 .

generatorConfig.properties 代碼如下 :

Properties 代碼?? 收藏代碼

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
classPath=D\:/ylink/myeclipse/MBG/lib/mysql-connector-java-5.0.7-bin.jar?
?
targetProject=D\:/ylink/myeclipse/MBG/src?
?
driverClass=com.mysql.jdbc.Driver?
?
connectionURL=jdbc\:mysql\://127.0.0.1\:3306/minghan?useUnicode\=true&amp;characterEncoding\=UTF-8?
?
userId=root?
?
password=root?
?
modelPackage=com.yuan.mybatis.mbg.model?
?
sqlMapperPackage=com.yuan.mybatis.mbg.model.mapper?
?
daoMapperPackage=com.yuan.mybatis.mbg.dao.mapper

?

? 其中 , targetProject 是工程的源代碼存放位置

classPath 是數(shù)據(jù)庫(kù)驅(qū)動(dòng)包的位置 , modelPackage 是存放 model 實(shí)體的包 ,? 對(duì)應(yīng)數(shù)據(jù)庫(kù)表 , sqlMapperPackage 是存放實(shí)體映射的 XML 配置文件 , daoMapperPackage 是存放 Mapper 接口的地方 .

注意 :? 要事先建立這些包才可以生成 .

如果不想生成 mybatis 的注釋信息 ,? 可以將 commentGenerator 里的 suppressAllComments 的值設(shè)為 true,

table 元素對(duì)應(yīng)數(shù)據(jù)庫(kù)表 .

<table schema="minghan" tableName="sys_admin" domainObjectName="Admin" ?

? ? ?enableCountByExample="false" enableUpdateByExample="false" ?

? ? ?enableDeleteByExample="false" enableSelectByExample="false"

? ? selectByExampleQueryId="false">

</table>?

? schema 即為數(shù)據(jù)庫(kù)名 , tableName 為對(duì)應(yīng)的數(shù)據(jù)庫(kù)表 , domainObjectName 是要生成的實(shí)體類 ,? 如果想要 mapper 配置文件加入 sql where 條件查詢 ,? 可以將 enableCountByExample 等設(shè)為 true,? 這樣就會(huì)生成一個(gè)對(duì)應(yīng) domainObjectName Example , enableCountByExample 等設(shè)為 false 時(shí) ,? 就不會(huì)生成對(duì)應(yīng)的 Example 類了 .

3. 運(yùn)行

配置文件配好了之后 , 進(jìn)行生成代碼 ,? 既可以使用命令的方式 ,? 也可以自已寫一個(gè)帶 main 的類來運(yùn)行 ,? 下面提供了一個(gè)帶 main 的運(yùn)行類

MyBatisGeneratorTool.java

Java 代碼?? 收藏代碼

  1. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    package com.yuan.mybatis.mbg.util;?
    ?? ?
    ?
    import java.io.File;?
    ?
    import java.io.IOException;?
    ?
    import java.sql.SQLException;?
    ?
    import java.util.ArrayList;?
    ?
    import java.util.List;?
    ?
    ?? ?
    ?
    import org.mybatis.generator.api.MyBatisGenerator;?
    ?
    import org.mybatis.generator.config.Configuration;?
    ?
    import org.mybatis.generator.config.xml.ConfigurationParser;?
    ?
    import org.mybatis.generator.exception.InvalidConfigurationException;?
    ?
    import org.mybatis.generator.exception.XMLParserException;?
    ?
    import org.mybatis.generator.internal.DefaultShellCallback;?
    ?
    ?? ?
    ?
    public class MyBatisGeneratorTool {?
    ?
    ???? public static void main(String[] args) {?
    ?
    ???????? List<String> warnings = new ArrayList<String>();?
    ?
    ???????? boolean overwrite = true ;?
    ?
    ???????? String genCfg = "/generatorConfig.xml" ; //src的一級(jí)目錄下?
    ?
    ???????? File configFile = new File(MyBatisGeneratorTool. class .getResource(genCfg).getFile());?
    ?
    ???????? ConfigurationParser cp = new ConfigurationParser(warnings);?
    ?
    ???????? Configuration config = null ;?
    ?
    ???????? try {?
    ?
    ???????????? config = cp.parseConfiguration(configFile);?
    ?
    ???????? } catch (IOException e) {?
    ?
    ???????????? e.printStackTrace();?
    ?
    ???????? } catch (XMLParserException e) {?
    ?
    ???????????? e.printStackTrace();?
    ?
    ???????? }?
    ?
    ???????? DefaultShellCallback callback = new DefaultShellCallback(overwrite);?
    ?
    ???????? MyBatisGenerator myBatisGenerator = null ;?
    ?
    ???????? try {?
    ?
    ???????????? myBatisGenerator = new MyBatisGenerator(config, callback, warnings);?
    ?
    ???????? } catch (InvalidConfigurationException e) {?
    ?
    ???????????? e.printStackTrace();?
    ?
    ???????? }?
    ?
    ???????? try {?
    ?
    ???????????? myBatisGenerator.generate( null );?
    ?
    ???????? } catch (SQLException e) {?
    ?
    ???????????? e.printStackTrace();?
    ?
    ???????? } catch (IOException e) {?
    ?
    ???????????? e.printStackTrace();?
    ?
    ???????? } catch (InterruptedException e) {?
    ?
    ???????????? e.printStackTrace();?
    ?
    ???????? }?
    ?
    ???? }?
    ?
    }

? 運(yùn)行此類即可生成對(duì)應(yīng)于數(shù)據(jù)庫(kù)表的實(shí)體類 , Mapper 配置文件 , Mapper 接口 ,? 生成后可以測(cè)試其可用性 .

使用命令的方式運(yùn)行:

? ?java -jar mybatis-generator-core-x.x.x.jar -configfile generatorConfig.xml -overwrite

4. 其他學(xué)習(xí)網(wǎng)址推薦

推薦一個(gè)比較好的 mybatis-generator 的教學(xué)網(wǎng)址:

http://www.cnblogs.com/harrychinese/archive/2012/01/09/learn_mybatis.html

MyBatis使用Generator自動(dòng)生成代碼


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 邯郸市| 凤冈县| 江津市| 松江区| 彭泽县| 栖霞市| 佛坪县| 南郑县| 新龙县| 北碚区| 通化县| 海淀区| 河池市| 伊春市| 越西县| 巨鹿县| 石屏县| 湘乡市| 洛隆县| 海伦市| 淅川县| 司法| 准格尔旗| 岳阳县| 南城县| 会理县| 新乡县| 兴义市| 徐闻县| 麦盖提县| 门源| 临猗县| 芮城县| 淳化县| 普格县| 沛县| 滨海县| 中卫市| 安远县| 长子县| 灵川县|