设为首页 收藏本站
查看: 1153|回复: 0

[经验分享] Mybatis Generator自动生成工具

[复制链接]

尚未签到

发表于 2016-11-25 05:04:19 | 显示全部楼层 |阅读模式
最近在网上发现一个比较好用的自动生成的工具,特来分享
数据库配置如下:
create table t_user(
pk_userid int(10) primary key,
username varchar(10),
password varchar(20)
);
insert into  t_user values(1,'user1','pwd1');
insert into  t_user values(2,'user2','pwd2');
insert into  t_user values(3,'user3','pwd3');
insert into  t_user values(4,'user4','pwd4');
insert into  t_user values(5,'user5','pwd5');
insert into  t_user values(6,'user6','pwd6');
insert into  t_user values(7,'user7','pwd7');
insert into  t_user values(8,'user8','pwd8');
insert into  t_user values(9,'user9','pwd9');
insert into  t_user values(10,'user10','pwd10');
insert into  t_user values(11,'user11','pwd11');
insert into  t_user values(12,'user12','pwd12');


新建maven工程,新建mybatisGeneratorConfig.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:数据库的JDBC驱动-->
<!-- <classPathEntry location="src/main/webapp/WEB-INF/lib/mysql-connector-java-5.1.24.jar" /> -->
<classPathEntry location="E:\MavenTest\respo\mysql\mysql-connector-java\5.1.24\mysql-connector-java-5.1.24.jar" />
<context id="MysqlTables" targetRuntime="MyBatis3">
<!-- 注意这里面的顺序确定的,不能随变更改 -->
<!--  自定义的分页插件
<plugin type="com.deppon.foss.module.helloworld.shared.PaginationPlugin"/>
-->
<!-- 可选的(0 or 1) -->
<!-- 注释生成器 -->
<commentGenerator>
<!-- 是否去掉注释 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- 必须的(1 required) -->
<!-- 数据库连接 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost/test" userId="root" password="root">
</jdbcConnection>
<!-- 可选的(0 or 1) -->
<!-- 类型转换器或者加类型解析器 -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>

<!-- 必须的(1 required) -->
<!-- java模型生成器 -->
<!-- targetProject:自动生成代码的位置 -->
<javaModelGenerator targetPackage="com.deppon.cms.module.generators.shared.domain"
targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>

<!-- 必须的(1 required) -->
<!-- map xml 生成器 -->
<sqlMapGenerator targetPackage="com.deppon.cms.module.generators.server.META-INF.ibatis"
targetProject="src/main/resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 可选的(0 or 1) -->
<!-- mapper  或者就是dao接口生成器-->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.deppon.cms.module.generators.server.dao"
targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
<property name="methodNameCalculator" value="extended"/>
</javaClientGenerator>
<!-- 必须的(1...N) -->
<!-- pojo 实体生成器 -->
<!-- tableName:用于自动生成代码的数据库表;-->
<!-- domainObjectName:对应于数据库表的javaBean类名-->
<table tableName="t_user" domainObjectName="User" enableInsert="false" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>

引入相关jar文件:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.24</version>
</dependency>

用java程序执行如下程序:
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("src/main/resources/com/deppon/cms/module/generators/server/META-INF/ibatis/mybatisGeneratorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
try {
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XMLParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("finished");
}

刷新工程,结果如下相关文件出现了
现在测试是否通过
public class MybatisGeneratorTest {
@Test
public void test1(){
String resource = "com/deppon/cms/module/generators/server/META-INF/ibatis/mybatisConfig.xml";
Reader reader = null;
SqlSessionFactory sqlMapper = null;
SqlSession sqlSession = null;
try {
//读取配置文件
reader = Resources.getResourceAsReader(resource);
sqlMapper = new SqlSessionFactoryBuilder().build(reader);
sqlSession = sqlMapper.openSession();
//获取User里面的值
UserMapper mappers = sqlSession.getMapper(UserMapper.class);
User user = mappers.selectByPrimaryKey(1);
System.out.println(user.getUsername());
} catch (IOException e) {
e.printStackTrace();
}
}
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-305009-1-1.html 上篇帖子: MyBatis之一(环境搭建) 下篇帖子: spring mvc + spring + mybatis整合
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表