实现思想:就是java对目标表的字符串的处理,以及基础的sql语句
不能使用hibernate tool ,解决办法
为了记录,以后也许还会用的小工具
**工具优点:比手打生成快,能加快hibernate配置文件开发速度,当你不能使用hibernate tool,他就是你的选择之一(不能使用现成hibernate tool的再此处。)
一定程度减轻配置文件书写量
。
。
工具缺点:不灵活,生成模式简单,当然可以自己修改程序达到你的要求。需要控制台获取字符串并cv到目标文件,
只是解决燃眉急的工具
对表关联没有解决方案
**
首先感谢Java的字符串处理
原理:文件本质是字符串,我们做的就是得到他
实现工具:
需要mysql的可视化工具
需要一句sql,源码中有,得到程序所需字符串(表名的字符串,换掉主键)
需要自己对源码的file改值,直接加双引号再复制进去就好。
需要自己改文件·配置的头头,版本不一样嘛
file = file.replaceAll(“换掉主键\r\n”, “,”);
运行
对于目标文件生成,主要是一种比较偏门的方法,但比自己敲的快。
*.hbm.xml
直接工具源码:
package javatool.hibernate;import java.util.Scanner;/*** 生成普通*.hbm.xml文件的工具类* @author joker**/public class Hbmxml {public static void main(String[] args) {// TODO 自动生成的方法存根@SuppressWarnings("resource")Scanner scanner = new Scanner(System.in);///目标转换处,这是一个从·数据库得到的字符串,注意\r\nString file = "id\r\n" + "employeeName\r\n" + "department\r\n" + "position\r\n" + "gender\r\n" + "birthday";// 依赖ide,依赖查询语句select COLUMN_NAME,column_comment from INFORMATION_SCHEMA.Columns// where table_name='tb_driver_info' and table_schema='crazy'//System.out.println("对于快速生成*.hbm.xml=========hibernate tool p配置太慢,这个快,简单");System.out.println("1.直接复制select COLUMN_NAME,column_comment from INFORMATION_SCHEMA.Columns where table_name='要生成的表' and table_schema='crazy'查出的表列名数据");System.out.println("2.复制到file字符串,点击运行,ok,对斜杠r斜杠n不要管,核心处理字符串");System.out.println("3.输出内容复制到目标即可");System.out.println("直接复制查出的表数据,将他变成file字符串,不懂看源码,依赖ide,不可更改版本与mysql查询语句select COLUMN_NAME,column_comment from INFORMATION_SCHEMA.Columns where table_name='要生成的表' and table_schema='crazy'"+ "\r\n" + "\r\n" + "");file = file.replaceAll("\r\n", ",");System.out.print("输入表名");String table = scanner.next();String start = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + "<!DOCTYPE hibernate-mapping PUBLIC \r\n"+ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\r\n"+ " \"/dtd/hibernate-mapping-3.0.dtd\">\r\n" + "<hibernate-mapping>\r\n"+ "<!-- crazy:tb_" + table + "_info-->\r\n" + "<class name=\"com.j.bean\" table=\"tb_" + table+ "_info\">\r\n" + "<id name=\"id\" column=\"id\" type=\"java.lang.Integer\">\r\n"+ "<generator class=\"native\"></generator>\r\n" + "</id>";String result = "";String[] arr;arr = file.split(",");for (int j = 0; j < arr.length; j++)result = result + "<property name=\"" + arr[j] + "\" column=\"" + arr[j] + "\" not-null=\"true\"\r\n"+ "type=\"java.lang.String\">\r\n" + "</property>";System.out.print(start + result + "</class>\r\n" + "</hibernate-mapping>");}}
同理实现bean
主要是生成变量,getter,setter,没必要
package javatool.hibernate;/*** 生成bean 变量的工具类* @author joker**/public class Springbean {public static void main(String[] args) {// TODO 自动生成的方法存根/ 目标转换处String file = "id\r\n" + "employeeName\r\n" + "department\r\n" + "position\r\n" + "gender\r\n" + "birthday";// 依赖ide,依赖查询语句select COLUMN_NAME,column_comment from INFORMATION_SCHEMA.Columns// where table_name='tb_driver_info' and table_schema='crazy'//System.out.println("直接复制查出的表数据,将他变成file字符串,不懂看源码,依赖ide,不可更改版本与mysql查询语句select COLUMN_NAME,column_comment from INFORMATION_SCHEMA.Columns where table_name='要生成的表' and table_schema='crazy'"+ "\r\n" + "\r\n" + "");file = file.replaceAll("\r\n", ",");String start = "private Integer id;//";String result = "";String[] arr;arr = file.split(",");for (int j = 0; j < arr.length; j++)result = result + "\r\nprivate String " + arr[j] + ";//注释\r\n";System.out.print(start + result + "\r\n" );}}
记录,
希望能解决您的燃眉急!
工具-eclipse-hibernate关于快速生成*.hbm.xml文件 与bean文件的操作 不使用hibernate tool解决办法之一 主要为了快速开发 写的小工具