javabean自动生成器

本文介绍了一个用于自动生成JavaBean类的工具。该工具能够从数据库表结构中读取信息,并根据表中的字段自动生成对应的JavaBean类。文章详细展示了如何将数据库中的列名转换为Java字段名,并将数据类型映射到Java类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class JavaBeanGenerater {
	public static String uncapitalize(String s){
		StringBuffer sb = new StringBuffer();
		if (s!=null&&s.length()>0) {
			char f = s.charAt(0);
			String s1 = (f+"").toLowerCase();
			sb.append(s1);
			if (s.length()>1) {
				String s2 = s.substring(1);
				sb.append(s2);
			}
		}
		return sb.toString();
	}
	public static String dbTypeToJavaType(String type){
		if (type.equals("INT")) {
			return "int";
		}else if (type.equals("VARCHAR")) {
			return "String";
		}else if (type.equals("DATETIME")) {
			return "Date";
		}else if (type.equals("TIMESTAMP")) {
			return "Date";
		}else if (type.equals("LONG")) {
			return "long";
		}else if (type.equals("DOUBLE")) {
			return "double";
		}else if (type.equals("FLOAT")) {
			return "float";
		}else{
			return "String";
		}
	}
	
	public static Map<String, String> columnToField(Map<String, String> map){
		Map<String, String> fields = new HashMap<String, String>();
		if (map!=null) {
			Set<String> columns = map.keySet();
			for (String col : columns) {
				String field = uncapitalize(col);
				String type = map.get(col);
				String java_type =  dbTypeToJavaType(type);
//				System.out.println(field+"="+java_type);
				fields.put(field, java_type);
			}
		}
		return fields;
	}
	
	public static void main(String[] args) throws SQLException {
		
		MysqlDAO dao = new MysqlDAO();
		List<String> tables = dao.queryTables();
		for (String table : tables) {
			System.out.println("public class "+table+"{");
			Map<String, String> columns = dao.queryTableColumn(table);
			Map<String, String> fields = columnToField(columns);
			Set<String> keys = fields.keySet();
			List<String> keys_sort = new ArrayList<String>(keys);
			Collections.sort(keys_sort);
			
			for (String key : keys_sort) {
				String type = fields.get(key);
				System.out.println("\t private "+type+" "+key+";");
			}
			System.out.println("}");
			System.out.println();
		}
		
	}
	
}

 

一直以来把数据库的表转换成Entity或DTO都是一件让人头痛的事情,既浪费时间又很繁琐,看着几十上百个表的几百上千个字段,真是一件让人很头痛的事情。 我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不干净,配置非常繁琐等等问题。 于是一怒之下,自己动手丰衣足食,就自己用Swing写了一个通过数据库的表生成JavaBean的工具,支持MySQL、Oracle、SQLServce、PostgreSQL,完美支持JPA注解,可以同时生成Entity和DTO,可以自动去除表前缀,并支持去除多个前缀,支持精确指定只生成哪几个表的Bean,也支持模糊查找生成哪几个表的Bean,现在不但成员变量上能生成备注了,而且在Getter和Setter上也能有备注了! 更重要的是所有的配置都能被保存到本地,只要配置过一次,下次使用只要点一下生成JavaBean,下一秒就能拿到你想要的JavaBean了,完全实现秒生成。并且集成各种实用工具,使得工作效率瞬间爆棚,生产力瞬间爆表。 第10版更新震撼发布,效率大提升,功能更加强大,速度过来围观,这次版本更新如下: 1、新增数据库连接池并可以手动配置,提升数据库连接的使用效率。 2、新增多线程并发处理并可以手动配置,大大提升数据收集和文件生成的效率。 3、增强字符串格式化工具,使得自动拼接字符串的应用场景更多。 4、测试数据库连接、生成Bean文件、精确匹配的更多等按钮都使用了异步线程进行处理, 这样界面不再会被卡住了,点了这些按钮以后还可以同时对界面进行其他操作, 如:移动、最小化、设置参数、使用集成工具等。 5、生成Bean文件按钮添加计时功能,当点击该按钮以后,按钮上的文字会变为读秒计时, 这样就不会以为程序卡死了。 6、更新Oracle的数据库驱动包,提升了数据库连接和查询的速度。 7、更新MySQL的数据库驱动包。 8、其他一些小Bug的修改和代码优化调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值