- 浏览: 299796 次
文章分类
最新评论
-
流年末年:
那四个参数还是没看懂.....能不能解释下showPassst ...
我写的密码强度验证方法(原创) -
kingcs2008:
// 验证pws.jsshowPassstrength(&qu ...
我写的密码强度验证方法(原创) -
h957355152:
请问博主这个怎么用呢?我直接放到jsp里面调用showPass ...
我写的密码强度验证方法(原创) -
qq_15138059:
我写的全国省市县三级联动菜单,拿出来和大家分享了(原创) -
valenon:
评论呢?从MAIL FROM命令开始貌似就出错了:500 Er ...
如何发送伪造的电子邮件
一个给pojo生成hashcode、equals、toString等方法的工具类
package com.kong.coder; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.FilenameFilter; import java.io.IOException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; public class CodeFactory { public static void main(String[] args) { String projectPath = "D:\\Workspaces\\MyEclipse 10\\lowcaActivity"; String packageName = "com.lowca.activity.pojo"; String[] banedClassNames = {}; appendCompareMethods(projectPath, packageName, banedClassNames); } public static void appendCompareMethods(String projectPath, String packageName, final String[] banedClassNames) { String packagePath = File.separator + packageName.replace(".", File.separator); File packageFile = new File(projectPath + File.separator + "src" + packagePath); if (!packageFile.exists() || !packageFile.isDirectory()) { System.err.println("包文件不存在"); System.exit(-1); } File[] pojoFiles = packageFile.listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String name) { boolean isBaned = false; for (String banedClassName : banedClassNames) { if (name.equals(banedClassName + ".java")) { isBaned = true; break; } } return !isBaned && name.endsWith(".java"); } }); if (pojoFiles == null || pojoFiles.length == 0) { System.err.println("包文件是空的,找不到pojo"); System.exit(-1); } for (File pojoFile : pojoFiles) { handlePojoFile(packageName, pojoFile); } } private static void handlePojoFile(String packageName, File pojoFile) { String pojoFileName = pojoFile.getName(); String pojoClassName = packageName + "." + pojoFileName.substring(0, pojoFileName.length() - 5); Class<?> pojoClass = null; try { pojoClass = Class.forName(pojoClassName); } catch (ClassNotFoundException e) { e.printStackTrace(); } Method[] methods = pojoClass.getMethods(); List<Method> getterList = new ArrayList<Method>(); // 遍历反射方法组并提取当前类属性的getter方法 for (Method method : methods) { // 过滤与当前类属性无关的get方法 if (method.getName().startsWith("get") && !method.getName().equals("getClass")) { getterList.add(method); } } MethodnameFilter methodnameFilter = new MethodnameFilter() { @Override public boolean accept(String name) { return name.matches("get([A-Z][a-zA-Z])*Id") ? false : true; } }; String hashCodeCode = getHashCodeCode(pojoClass, getterList, methodnameFilter); String equalsCode = getEqualsCode(pojoClass, getterList, methodnameFilter); String toStringCode = getToStringCode(pojoClass, getterList, methodnameFilter); String methodsCode = hashCodeCode + equalsCode + toStringCode; writeCodeToPojoFile(methodsCode, pojoFile); } private static void writeCodeToPojoFile(String methodsCode, File pojoFile) { BufferedReader br = null; BufferedWriter bw = null; try { FileReader fr = new FileReader(pojoFile); br = new BufferedReader(fr); String line; StringBuffer sb = new StringBuffer(); while ((line = br.readLine()) != null) { sb.append(line + "\r\n"); } int pos = sb.lastIndexOf("}"); sb.insert(pos, methodsCode); FileWriter fw = new FileWriter(pojoFile); bw = new BufferedWriter(fw); bw.write(sb.toString()); bw.flush(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (br != null) br.close(); } catch (IOException e) { e.printStackTrace(); } try { if (bw != null) bw.close(); } catch (IOException e) { e.printStackTrace(); } } } private static String getEqualsCode(Class<?> pojoClass, List<Method> getterList, MethodnameFilter methodnameFilter) { StringBuffer sb = new StringBuffer(); sb.append("\n\tpublic boolean equals(Object object) {\n"); sb.append("\t\tif (this == object)\n"); sb.append("\t\t\treturn true;\n"); sb.append("\t\tif (!(object instanceof ${class}))\n"); sb.append("\t\t\treturn false;\n"); sb.append("\t\tfinal ${class} ${classLowercaseFirst} = (${class}) object;\n"); for (Method getter : getterList) { String getterName = getter.getName(); if (methodnameFilter != null && !methodnameFilter.accept(getterName)) continue; sb.append("\t\tif (!" + getterName + "().equals(${classLowercaseFirst}." + getterName + "()))\n"); sb.append("\t\t\treturn false;\n"); } sb.append("\t\treturn true;\n"); sb.append("\t}\n"); String code = sb.toString(); String className = pojoClass.getSimpleName(); String classNameLowercaseFirst = toLowercaseFirst(className); code = code.replaceAll("\\$\\{class\\}", className); code = code.replaceAll("\\$\\{classLowercaseFirst\\}", classNameLowercaseFirst); return code; } private static String getHashCodeCode(Class<?> pojoClass, List<Method> getterList, MethodnameFilter methodnameFilter) { StringBuffer sb = new StringBuffer(); sb.append("\n\tpublic int hashCode() {\n"); sb.append("\t\tint result;\n"); boolean first = true; for (Method getter : getterList) { String getterName = getter.getName(); if (methodnameFilter != null && !methodnameFilter.accept(getterName)) continue; if (first) { first = false; sb.append("\t\tresult = " + getterName + "().hashCode();\n"); } else { sb.append("\t\tresult = 29 * result + " + getterName + "().hashCode();\n"); } } sb.append("\t\treturn result;\n"); sb.append("\t}\n"); String code = sb.toString(); return code; } private static String getToStringCode(Class<?> pojoClass, List<Method> getterList, MethodnameFilter methodnameFilter) { StringBuffer sb = new StringBuffer(); sb.append("\n\tpublic String toString() {\n"); boolean first = true; for (Method getter : getterList) { String getterName = getter.getName(); if (methodnameFilter != null && !methodnameFilter.accept(getterName)) continue; String filedName = toLowercaseFirst(getterName.substring(3)); if (first) { first = false; sb.append("\t\treturn \"${class} [" + filedName + "=\" + " + filedName + "\n"); } else { sb.append("\t\t+ \", " + filedName + "=\" + " + filedName + "\n"); } } sb.append("\t\t + \"]\";\n"); sb.append("\t}\n"); String code = sb.toString(); String className = pojoClass.getSimpleName(); code = code.replaceAll("\\$\\{class\\}", className); return code; } private static String toLowercaseFirst(String pojoClassName) { return pojoClassName.substring(0, 1).toLowerCase() + pojoClassName.substring(1); } interface MethodnameFilter { boolean accept(String name); } }
发表评论
-
java正则表达式高级用法:转换驼峰标示
2012-06-26 16:47 5752String source = "LastLog ... -
你会做Web上的用户登录功能吗?(转)
2012-06-25 13:22 1324Web上的用户登录功能应 ... -
使用pager-taglib.jar实现的分页技术
2012-06-24 02:34 880//1.导入pager-taglib.jar包; / ... -
我写的验证码生成方案,可防止绝大多数机械识别。
2012-06-20 14:59 2367web.xml <!DOCTYPE web-app ... -
如何在myeclipse中使用maven?
2012-06-11 14:22 168061.下载maven,解压到D盘ma ... -
安装subclipse, MyEclipse8 SVN插件
2012-06-09 22:39 913安装subclipse, MyEclipse8 SVN插件 ... -
PDF生成器
2012-05-28 02:53 819我自己写的一个pdf生成器,能导出百度博客为PDF -
我的自动投票器
2012-04-17 13:58 1266自动投票器,支持windows的32位机器 下面的压缩包是编 ... -
list,set,map,数组间的相互转换(转载)
2012-03-16 16:29 28241.list转set Java代码 ... -
ehcache的用法
2012-02-13 22:13 0Spring ... -
使用ehcache来缓存页面
2012-02-13 22:08 771关于缓存的话题,在坛子里已经有很多讨论,简单的来说,如果一个应 ... -
java笔记:自己动手写javaEE框架(二)--业务层Service以及Service单元测试
2012-02-13 00:55 0前一篇博文里有三 ... -
struts+spring+hibernate的web应用<四> Web层代码编写(2)
2012-02-13 00:50 0接着就是写资源文件了。 在 com.game. ... -
struts+spring+hibernate的web应用<四> Web层代码编写(1)
2012-02-13 00:49 1011前面的文章: ... -
struts+spring+hibernate的web应用<三> Service层代码编写
2012-02-13 00:46 825前面的文章: ... -
struts+spring+hibernate的web应用<二> Dao层代码编写
2012-02-13 00:45 828前一篇文章 (struts+spring ... -
struts+spring+hibernate的web应用<一> 架构搭建
2012-02-13 00:44 749许久没有些文章了,现 ... -
ehcache缓存管理
2012-02-12 23:52 947EHCache 是一个纯java的,在Hibernate2 ... -
检测一个字符串是否在jvm的常量池中(原创)
2012-01-11 09:07 2121检测一个字符串是否在jvm的常量池中 public ... -
我写的密码强度验证方法(原创)
2011-12-18 15:26 8322/* *说明: * 该方法主要分析密码的内容构成 ...
相关推荐
POJO实体类生成器,MySQL 、Oracle、 SQLserver三大数据库都可以用,点击打开就可以用
POJO生成器 生实体!
1.1.1版本 简单数据库逆向工程 自动生成POJO类 JAVA WEB jsp
Mybatis自动生成pojo、mapper、xml工具
NULL 博文链接:https://zljava.iteye.com/blog/301130
mybatis 自动生成pojo mapper 在config.xml中指定数据连接池,数据库表
自动成hbm文件和Pojo Bean文件的工具类 输入 1,tableName 2,beanName 3,pkgName 4,root_path 5,pkColumn <br>输出 1、生成xxx.hbm.xml文件 2、生成xxx.java文件
写好配置后,连接数据库,读取所有表,自动生成pojo和mybatis xml增删改查字段信息。...生成的pojo里面只有成员变量没有set/get方法,因为生成代码麻烦但是在eclipse里面添加这个很简单。抛砖引玉,用得上的拿走。
mybatis_genertor逆向工程自动生成pojo dao层等类根据数据库表一 一对应 加快开发效率
6、从1.3版开始生成的POJO代码目录中可自动添加一个名为pojo.ntf.xml的POJO映射通 知档,其中,ID列名默认使用主键名称(若为复合主键则采用次序排首位的主键列名) ,而Oracle环境下的sequence对象名称则为“seq_...
dao和mapper 抛弃了mybatis插件生成的一个POJO一个mapper 很冗余的数据,这里直接生成增删改查3个dao/mapper对照,依托于IDEA-DataBase-Tools能够直接选取需要生成POJOS 表模型的选择器。可以很方便的生成pojo/dao/...
绝对牛的ibatis代码生成(也可以单独用于pojo生成) 可以选择某些表,或者全部表来生成pojo和sqlmap。 可以指定生成文件的编码。 傻瓜式生成,不用任何配置,只需在窗口填写一些必要的信息。 目前最牛的ibatis代码...
于是试着动手写了一个可以把数据库表自动写成pojo类,并且产生hibernate配置文件。虽然不是什么比较高级的程序,但是我希望也能对大家有一些帮助。不要吃我当时的闭门羹,算是给朋友们,提供一个思路吧。 备注:运行...
###Responsibilities### Aequum 库旨在通过使用在 POJO 类上编写equals 、 hashCode和compareTo方法时帮助删除一些样板。 请注意,此库依赖于 Java 8。 ###组件初始化指令###要使用此库,调用builder的方法Aequum...
oracle数据库数据表生成java文件。
eclipse插件,根据数据库表自动生成DTO(pojo)插件!eclipse插件,根据数据库表自动生成DTO(pojo)插件!
根据属性名相同, 把一个pojo的属性值付给另一个pojo相同属性名.
保存资源,以后开发备用,数据表生成pojo,java代码。
#要使用Hyberbin进行数据库操作必需引入一个properties文件。 #properties文件参见本文件同级文件夹下的database.properties。 #HyberbinData和HyberbinServlet可以只选其一使用 1.数据库中表名和POJO类的名称...
利用Mybatis逆向工程来生成pojo,dao和mapper。然后将pojo实体类和dao拷贝到工程当中。这样可以快速地实现数据库的开发