`
vipbooks
  • 浏览: 148118 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类

根据表结构自动生成JavaBean,史上最强最专业的表结构转JavaBean的工具(第6版)

阅读更多
        第6版重大更新震撼发布,功能更加强大,速度过来围观,这次版本更新如下:
             1、新增测试数据库连接。
             2、标准模板新增C#标准模板。
             3、字段转换设置新增需要在某类型上添加的注解配置。
             4、新增实体生成策略,可以根据项目的需求为实体配置不同的生成策略。
             5、新增实体主键生成策略,可以配置手动生成主键也可以配置自动生成主键。
             6、可以根据选择的标准模板不同自动生成相应扩展名的文件,也可以手动设置文件扩展名。
             7、新增设置文件注释,并可以使用部分系统参数。
             8、新增设置类注释,并可以使用部分系统参数。
             9、集成工具新增String字符串拼接工具,实现秒拼StringBuffer,再也不怕拼长长的SQL了。
             10、集成工具新增XML字符串拼接工具。

        欢迎访问TableGo官网:http://www.tablego.cn
            
        大家在使用的过程中如果发现了bug一定要记得告诉我,我好在下个更新版本中进行修复。
       
        一直以来把数据库的表转换成Entity或DTO都是一件让人头痛的事情,既浪费时间又很繁琐,看着几十上百个表的几百上千个字段,真是一件让人很头痛的事情。
        我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不干净,配置非常繁琐等等问题。
        于是一怒之下,自己动手丰衣足食,就在去年自己用Swing写了一个通过数据库的表生成JavaBean的工具,支持MySQL、Oracle、SQLServce,完美支持JPA注解,可以同时生成Entity和DTO,可以自动去除表前缀,并支持去除多个前缀,支持精确指定只生成哪几个表的Bean,也支持模糊查找生成哪几个表的Bean,现在不但成员变量上能生成备注了,而且在Getter和Setter上也能有备注了!
        更重要的是所有的配置都能被保存到本地,只要配置过一次,下次使用只要点一下生成JavaBean,下一秒就能拿到你想要的JavaBean了,完全实现秒生成。

        经过几个项目的使用和积累,我决定把它分享出来给大家用,大家有什么好的建议和想法也都可以提出来,因为比较忙,一直没有时间去修改和维护,所以一定会有些bug。由于环境的原因,主要测试的是MySQL,Oracle和SQLServer测试不全,可能会有点Bug,大家如果发现什么Bug记得要告诉我,在下个版本中进行修复。

        好了,下面给大家介绍一下我写的这个工具吧。

1、配置数据库界面:



2、配置转换参数界面,标准模板新增C#标准模板:



3、字段转换设置界面,可以根据不同的项目需求配置不同的字段转换类型,新增需要在某类型上添加的注解配置:



4、高级设置界面,新增实体生成策略、主键生成策略、设置文件注释、设置类注释,可根据根据选择的标准模板不同自动生成相应扩展名的文件,要导入的包和要排除的包可以设置自定义的导包关键字,如:using System; :



5、集成工具界面,新增String字符串拼接工具、XML字符串拼接工具:



6、选择支持的数据库以后,下面的驱动名、IP地址、库名、端口、用户名和密码都会自动跟着做相应的修改,以支持不同的数据库:





7、配置好数据库以后点击测试数据库连接按钮就能测试数据库是否能够连接成功。



8、选择模板的功能,新增C#标准模板,可以根据需要生成不同语言的Bean。大家如果想要生成其它编程语言的Bean可以发一个那种编程语言的标准Bean给我,我做成标准模板发布上来:



9、查看数据库中所有表的对话框,在精确匹配文本框旁点击更多按钮或双击精确匹配文本框,即可弹出选择数据库表的对话框,这里将列出数据库中所有的表,并支持模糊查询(不区分大小写)查找需要的表,在复选框中选中需要的表,点确认选择即可:





10、支持带JPA注释和不带JPA注释的Bean:



11、字段转换设置新增需要在某类型上添加的注解配置。这里暂时只加了为Date类型添加注解的功能,这也是用得最多的,如果还要在其它类型上添加注解也可以告诉我:



12、新增实体生成策略,可以根据项目的需求为实体配置不同的生成策略:



13、新增实体主键生成策略,可以配置手动生成主键也可以配置自动生成主键:



14、可以根据选择的标准模板不同自动生成相应扩展名的文件,也可以手动设置文件扩展名:





15、新增设置文件注释和设置类注释的功能,并可以使用部分内部参数:







16、新增String字符串拼接工具,实现秒拼StringBuffer,再也不怕拼长长的SQL了:





17、新增XML字符串拼接工具:





18、工具第一次打开会自动生成两个配置文件,一个是配置数据库的,一个是配置参数的,如果设置了文件注释和类注释还会生成这两个注释的配置文件,一般第一次进去只要配置好数据库,点生成JavaBean,默认就能同时生成Entity和DTO了:









19、这是自动生成出来的Entity和DTO:





20、QQ交流群(入群密码:TableGo):
        在交流群里我会不定期的发布一些最新的测试版本给大家使用,大家在使用的过程中遇到什么问题或发现什么Bug都可以在交流群里提出来,大家一起讨论一起交流,共同发展和进步。


        使用该工具需要安装Java1.6及以上版本的,因为开发环境是JDK1.7,编译环境是JDK1.6,所以1.7和1.6的JDK都能运行,其它版本的JDK还没有测试过,更高版本的应该没有问题,必需要在操作系统的环境变量里配置好JAVA_HOME,不然会找不到Java。

        找了好多的把Jar包打包成EXE文件的工具,都不能完美支持64位的系统,最后找到了exe4j,终于能完美支持打包成64位系统支持的版本了,我自己用的是64位的Win10系统,如果生成的32位程序不能运行大家就说一声,我再去找虚拟机测试。

        注意:在每次下载一个新的版之后,如果覆盖到老版本的目录中去,最好先将已存在的paramConfig.ini配置文件删除,打开程序后会自动重新生成一个与最新版本匹配的配置文件,这样可以避免新功能出问题。

目录:
        第1版:http://vipbooks.iteye.com/blog/2209994
        第2版:http://vipbooks.iteye.com/blog/2211951
        第3版:http://vipbooks.iteye.com/blog/2212312
        第4版:http://vipbooks.iteye.com/blog/2215225
        第5版:http://vipbooks.iteye.com/blog/2219977
        第6版:http://vipbooks.iteye.com/blog/2224496
        第7版:http://vipbooks.iteye.com/blog/2230565
        第8版:http://vipbooks.iteye.com/blog/2283657
        第9版:http://vipbooks.iteye.com/blog/2296688
        第10版:http://vipbooks.iteye.com/blog/2318008
        第11版:http://vipbooks.iteye.com/blog/2330047
        第12版:http://vipbooks.iteye.com/blog/2339579
        v4.1.2版:http://vipbooks.iteye.com/blog/2351354
        v5.0.0版:http://vipbooks.iteye.com/blog/2375473
        v5.8.0版:http://vipbooks.iteye.com/blog/2404307
        v5.8.8版:http://vipbooks.iteye.com/blog/2412608
        v6.0.0版:http://vipbooks.iteye.com/blog/2441008
  • 大小: 22.6 KB
  • 大小: 19.6 KB
  • 大小: 26.7 KB
  • 大小: 18.5 KB
  • 大小: 12.6 KB
  • 大小: 23 KB
  • 大小: 22.5 KB
  • 大小: 27.3 KB
  • 大小: 20.5 KB
  • 大小: 22.7 KB
  • 大小: 51.5 KB
  • 大小: 22.1 KB
  • 大小: 98.4 KB
  • 大小: 22.8 KB
  • 大小: 22 KB
  • 大小: 10.7 KB
  • 大小: 12.8 KB
  • 大小: 55.3 KB
  • 大小: 60 KB
  • 大小: 16.4 KB
  • 大小: 63.1 KB
  • 大小: 67.9 KB
  • 大小: 51 KB
  • 大小: 48.9 KB
  • 大小: 11.6 KB
  • 大小: 11.4 KB
  • 大小: 13.4 KB
  • 大小: 24.7 KB
  • 大小: 17.2 KB
  • 大小: 15.9 KB
8
8
分享到:
评论
34 楼 vipbooks 2015-09-15  
houqijun520li 写道
为什么版本7下载不了呢....?

我刚试了下,第七版可以下载啊!你是用的什么下载的啊,有什么错误吗?
我是用的猎豹安全浏览器自带的下载工具下载的,可以正常下载。
33 楼 houqijun520li 2015-09-13  
为什么版本7下载不了呢....?
32 楼 tjzx 2015-07-13  
vipbooks 写道
myhnuhai 写道
建议生成的时候把equals hashcode  toString 三个方法覆写了。

这三个方法在不同的项目需求下要求都是不一样的,无法统一,而且重写这三个方法是有严格规范的,不能随便重写。


可以加个模板文件。提供选择模板文件功能
31 楼 vipbooks 2015-07-08  
dsjt 写道
支持楼主。
能不能开放接口,扩展至支持PostgreSQL???

哈哈,谢谢支持!
现在程序里还没有支持到PostgreSQL,更没有支持PostgreSQL的接口了,以后会慢慢扩展增加的。
30 楼 vipbooks 2015-07-08  
myhnuhai 写道
建议生成的时候把equals hashcode  toString 三个方法覆写了。

这三个方法在不同的项目需求下要求都是不一样的,无法统一,而且重写这三个方法是有严格规范的,不能随便重写。
29 楼 vipbooks 2015-07-08  
ZIFAN 写道
连接数据库的密码可以为空的哦,例如mysql。。

哈哈,这个可以有~
28 楼 dsjt 2015-07-07  
支持楼主。

能不能开放接口,扩展至支持PostgreSQL???
27 楼 myhnuhai 2015-07-07  
建议生成的时候把equals hashcode  toString 三个方法覆写了。
26 楼 ZIFAN 2015-07-07  
连接数据库的密码可以为空的哦,例如mysql。。
25 楼 vipbooks 2015-07-07  
7454103 写道
   
计划开源不,我们也想写写

暂时还没有想过开源,而且主要代码就是用NetBeans画的界面,但NetBeans生成的代码是很难看懂的,所以开源也没有什么用。
24 楼 7454103 2015-07-07  
   
计划开源不,我们也想写写
23 楼 vipbooks 2015-07-07  
huang.kw 写道
楼主太厉害了··,我在软件行业打滚两年了,但是总是感觉啥也不会,想提升自己也不知道该怎么做。能不能请教下楼主,这样的工具是怎么做的呢

哈哈,这个工具我是用Swing做的UI,用NetBeans画的界面
22 楼 huang.kw 2015-07-07  
楼主太厉害了··,我在软件行业打滚两年了,但是总是感觉啥也不会,想提升自己也不知道该怎么做。能不能请教下楼主,这样的工具是怎么做的呢
21 楼 vipbooks 2015-07-07  
DreamRoute 写道
请问如何下载!

在上面一点“TableToBean_20150706_x64_bug修正版.rar”或“TableToBean_20150706_x86_bug修正版.rar”下载
20 楼 DreamRoute 2015-07-07  
请问如何下载!
19 楼 vipbooks 2015-07-06  
20150706_bug修正版已修复出现java.lang.NullPointerException的Bug
18 楼 vipbooks 2015-07-06  
jdkleo 写道
小伙子做的很好,提几点BUG和优化建议:
1、表太多,超出最大游标
递归SQL级别1出现错误
ORA-01000:超出打开游标的最大数
2、界面及部分子界面请使用多线程打开,避免卡死
3、界面请使用以下语句套个皮肤,以免太丑

哈哈,非常感谢你对我的支持和建议,谢谢了!

1、你同时转的表有多少张才出现这个问题的啊,我可能需要测试下?我测试是Oracle同时生成四百多张表都没有问题的,现在是每循环一张表就会调下conn.close();,应该不会再出这个问题了啊。
2、多线程的话是可以考虑的。不过用多线程会使代码更加复杂,而且还要考虑重复提交的问题。
3、这个代码在NetBeans会自动生成,但还是感觉太丑了,也没有时间去找更好的皮肤,反正Swing就这个样子,这么多年了都没有进步过,貌似Oracle已经放弃了对Swing的开发和维护了。
17 楼 vipbooks 2015-07-06  
xulei 写道
漂亮,源码在GitHub上面吗?

哈哈,现在暂时还没有开源
16 楼 vipbooks 2015-07-06  
java.lang.NullPointerException
at java.lang.String.replace(Unknown Source)
at util.CommonUtils.setExpressionArgs(CommonUtils.java:357)

大家好,出现上面这个异常的原因我已经找到了,是因为有的表没有写注释说明(如:COMMENT='用户表'
)造成的,因为第一次用到${xxx}做参数,所以有一点Bug。修改好以后我会上传上来。
在修正Bug之前的解决方按有:1、把要转的表都加好注释;2、直接把所有的“xxRemark.ini”文件删除就可以了。
15 楼 jdkleo 2015-07-06  
小伙子做的很好,提几点BUG和优化建议:
1、表太多,超出最大游标
递归SQL级别1出现错误
ORA-01000:超出打开游标的最大数
2、界面及部分子界面请使用多线程打开,避免卡死
3、界面请使用以下语句套个皮肤,以免太丑
 try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }

相关推荐

Global site tag (gtag.js) - Google Analytics