package cn.com.servyou.fkpt.core.base.bean; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import cn.com.servyou.fkpt.core.fak.bean.Fxfa; /** * <p> * 标题: BeanUtil.java * </p> * <p> * 描述: 根据bean快速生成dao参数的工具类 * </p> * <p> * </p> * <p> * 创建时间: 2015-1-4 * </p> * <p> * 作者:zhuw * </p> */ public class BeanUtil { /** * 需要生成的bean类 此处需要修改成你所要的类 */ public static Class cls = Fxfa.class; /** * DAOParamGenerator 的参数名 如果需要修改则修改此变量 */ public static String paramName = "pg"; /** * 生成类型 false非批量 /true 批量 如果是批量的要修改成true */ public static boolean batch = true; /** * batch为true时生效 dao的第几个sql默认为0 */ public static String sqlIndex = "0"; /** * batch为true时生效 for循环的参数名称默认为i */ public static String forParam = "i"; public static void main(String[] args) { System.out.println(writeDao(cls)); } /** * 控制台输出代码 */ public static String writeDao(Class cls) { String cname = cls.getName(); cname = cname.substring(cname.lastIndexOf(".") + 1, cname.length()); className = cname; String firstZm = String.valueOf(cname.charAt(0)); classNameXx = cname.replaceFirst(firstZm, firstZm.toLowerCase()); try { return writeMethod(writeDAOParamGenerator(writeAttr(cls))).toString(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return ""; } private static String className; private static String classNameXx; /** * 写入方法 */ public static StringBuilder writeMethod(StringBuilder content) { StringBuilder sb = new StringBuilder(); if (batch) { sb.append(" public DAOParamGenerator getDaoParam(List<" + className + "> " + classNameXx + "List) {\n"); } else { sb.append(" public DAOParamGenerator getDaoParam(" + className + " " + classNameXx + ") {\n"); } sb.append(content); sb.append(" }"); return sb; } /** * 写入参数 */ public static StringBuilder writeDAOParamGenerator(StringBuilder attr) { StringBuilder sb = new StringBuilder(); sb.append(" DAOParamGenerator " + paramName + " = new DAOParamGenerator();\n"); sb.append(attr); sb.append(" return " + paramName + ";\n"); List<Fxfa> list = new ArrayList<Fxfa>(); for (int i = 0; i < list.size(); i++) { Fxfa fxfa = list.get(i); } return sb; } /** * 写入javabean属性 */ public static StringBuilder writeAttr(Class cls) throws ClassNotFoundException { StringBuilder sb = new StringBuilder(); Method[] methods = cls.getMethods(); if (batch) { sb.append(" for (int i = 0; i < " + classNameXx + "List.size(); i++) {\n"); sb.append(" " + className + " " + classNameXx + " = " + classNameXx + "List.get(i);\n"); for (Method m : methods) { // String类型才行 if (m.getName().indexOf("get") != -1 && m.getReturnType() == String.class) { sb.append(" " + paramName + ".addBatchSqlParam(" + sqlIndex + ", " + forParam + ", " + classNameXx + "." + m.getName() + "());\n"); } } sb.append(" }\n"); } else { for (Method m : methods) { // String类型才行 if (m.getName().indexOf("get") != -1 && m.getReturnType() == String.class) { sb.append(" " + paramName + ".addFirstSqlParam(" + classNameXx + "." + m.getName() + "());\n"); } } } return sb; } }
相关推荐
利用Java的反射机制实现的万能DAO工具类,包含对应的测试代码。具体功能包括:单表查询,多表查询,模糊查询,添加,修改,删除等。利用万能DAO可以对数据库中任意表进行操作,只需一个DAO类即可完成。阅读本代码...
反射反射反射反射反射反射反射反射反射反射反射反射反射反射反射反射
本人自己做的一个简单的.net 自动生成实体类、DAO工具,数据读取层的update/inster方法,
这是我老师用C#写的一个代码生成器(生成.ne版本的),我改编成了生成java dao模式的代码 生成器里面有用到我自己写的接口,生成的代码更简单一点,还存在很多问题,请大家多多反馈
abator 生成ibaties dao xml 生成命令
ibator-huoniao通过它你可以通过配置少量参数,通过一键生成dao层的全部文件,能够应付对dao层的所有操作 产物包括: 1. pojo文件 2. dao接口类 3. dao接口实现类文件 4. ibatis sql map文件 5. 数据库查询时...
mybatis 自动生成实体类dao
java的基于泛型+反射的通用DAO例子,原创,没事写着玩的,请多指教哈。。。
Java利用Freemarker模板自动生成dto、dao、rowmapper、bo、service代码,代码可以直接复制到项目中使用,代码是基于pring框架的
生成数据库dao的java类 java 工具,运行下就可以 默认放在c盘根目录下 实现数据库增删改查,不过是mysql的 要改数据库连接密码
使用时选择目录后会在改目录下生成对应的pojo/dao/mapper 文件,非常直观。dao和mapper 抛弃了mybatis插件生成的一个POJO一个mapper 很冗余的数据,这里直接生成增删改查3个dao/mapper对照,依托于IDEA-DataBase-...
生成struts2 dwr spring 配置文件和数据操作类(com.comm 中BaseDao) idao层 dao层的实现类 Service 层和IService层 总的情况为 src 下有 com.comm BaseDao com.idao pojo所在的类的接口 com.daoimlp pojo所在...
根据表字段自动生成Mapper类、Dao类、Model对象,适用于Spring整合Mybatis的工程。数据库可以根据驱动修改为MYSQL或者Oracle。
自动生成dao 配置文件 自动生成dao的eclipse插件autoDAO
使用MyBatis Generator生成DAO
hibernate dao 生成工具
mybatis_genertor逆向工程自动生成pojo dao层等类根据数据库表一 一对应 加快开发效率
由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这样可以省去很多的功夫,将...
一个简单的JAVA版的DAO生成器,通过反射机制获取bean实体类属性,前提是bean属性都有自动生成的getters和setters。 数据库支持MySQL 如果需要使用其他数据库,修改daoCreator.Util.DBUtil 使用方法介绍在test下的...
Mybatis自动生成dao与model类的工具,txt说明文档中有使用方法:复制其中的命令在cmd窗口中进入jar所在目录下运行命令即可。