亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

MyBatis使用Generator自動生成代碼

系統(tǒng) 1678 0

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

第一步:
配置好自動生成代碼所需的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ù)庫的JDBC驅動-->
??<classPathEntry location="F:\Jansun\workspace\wicketAjax\ojdbc14-10.2.0.1.jar" />
?
??<context id="DB2Tables" targetRuntime="MyBatis3">
<!-- 去除自動生成的注釋 -->
<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:自動生成代碼的位置 -->
?? ?<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:用于自動生成代碼的數(shù)據(jù)庫表;domainObjectName:對應于數(shù)據(jù)庫表的javaBean類名 -->
?? ?<table schema="ibis" tableName="ibis_info" domainObjectName="Ibis" >
?? ? ?
?? ?</table>
?
??</context>
??
</generatorConfiguration>
?
第二步:下載 mybatis-generator-core-1.3.1.jar 包。
?
第三步:進入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 ,? 可以很方便的生成 model,dao, 和映射配置文件 . mybatis ,? 也有生成器 , mybatis generator,? 簡稱 MBG.? 下面為大家介紹一下 MBG 的使用 .

?

? ? Mybatis-generator 的思想是編寫一個配置文件,然后運行該配置文件,就會得到相應的 java 代碼。那么重點就是這個配置文件,配置文件中都需要些什么呢?必須包括的有數(shù)據(jù)庫的 datasource , Mybatis 的版本信息,至少一個的數(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 加入到項目的 lib ,? 然后編寫一個生成器的配置文件 generatorConfig.xml.

2. mybatis-generator 的配置文件

mybatis-generator 最重要的就是一個配置文件,配置文件中配置了生成的 .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 元素里引用了一個 generatorConfig.properties 配置文件是為了方便移植的時候 , 只需修改 resource 的路徑值和 generatorConfig.properties 里的值即進行生成操作 .

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ù)庫驅動包的位置 , modelPackage 是存放 model 實體的包 ,? 對應數(shù)據(jù)庫表 , sqlMapperPackage 是存放實體映射的 XML 配置文件 , daoMapperPackage 是存放 Mapper 接口的地方 .

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

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

table 元素對應數(shù)據(jù)庫表 .

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

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

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

? ? selectByExampleQueryId="false">

</table>?

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

3. 運行

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

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的一級目錄下?
    ?
    ???????? 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();?
    ?
    ???????? }?
    ?
    ???? }?
    ?
    }

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

使用命令的方式運行:

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

4. 其他學習網址推薦

推薦一個比較好的 mybatis-generator 的教學網址:

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

MyBatis使用Generator自動生成代碼


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品亚洲视频在线 | 久久亚洲高清观看 | 伊人久久久久久久久香港 | 日本大臿亚洲香蕉大片 | 欧美天堂在线视频 | 亚洲码在线中文在线观看 | 奇米7777第四色 | 特黄特级a级黄毛片免费观看多人 | 天天爽夜夜爽视频 | 日本在线观看www鲁啊鲁视频 | 亚洲 欧洲 另类 综合 自拍 | 日韩国产综合 | 日韩欧美~中文字幕 | 美日韩免费视频 | 四虎影视免费永久在线观看 | 久久er热在这里只有精品85 | 91福利国产在线观看 | 99色视频在线 | 国产91在线视频 | 久草97| 色多多h | 亚洲区视频在线观看 | 国产网红福利 | 99精品国产在这里白浆 | 日本高清不卡视频 | 男人深夜网站 | 一级做a爱片久久蜜桃 | 全黄一级裸片视频在线观看 | 亚洲欧美卡通成人制服动漫 | 国产偷久久 | 2022国产男人亚洲欧美天堂 | 欧美成人综合视频 | 久操视频网站 | 一级做人免费观看c欧美网站 | 天堂一区二区三区在线观看 | 久久一级视频 | 精品欧美一区二区三区在线 | 国产一起色一起爱 | 男女一级做片a性视频 | 91九色国产 | 国产精品福利一区二区 |