加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

模仿Hibernate的逆向工程_java版_源码下载

发布时间:2020-12-14 06:29:53 所属栏目:Java 来源:网络整理
导读:在这篇blog:" "中谈到了Hibernate逆向工程原理。 我喜欢理论和实践相结合....so,今天我试着模仿hibernate的逆向工程,哈哈,我成功啦.... 话不多说....直接上图先: # mytest hongten showTables()获取数据库的所有表信息 descTable()获取表的描述信息 ****

在这篇blog:""中谈到了Hibernate逆向工程原理。

我喜欢理论和实践相结合....so,今天我试着模仿hibernate的逆向工程,哈哈,我成功啦....

话不多说....直接上图先:

# mytest

hongten

showTables()获取数据库的所有表信息 descTable()获取表的描述信息 ********************************************
jdbc.cfg.properties为数据库的配置信息,默认位置是在项目src目录下面
Logger log = Logger.getLogger(DBUtil. String JDBC_CFG_PROPERTIES = "jdbc.cfg.properties" LoadProperties loadProperties = String DB_DRIVER = loadProperties.getValue("DB_DRIVER" String DB_NAME = loadProperties.getValue("DB_NAME" String DB_PASSWORD = loadProperties.getValue("DB_PASSWORD" String DB_USER_NAME = loadProperties.getValue("DB_USER_NAME" String DB_URL = "jdbc:mysql://localhost:" + loadProperties.getValue("DB_PORT") + "/" + String SHOW_TABLES = "show tables" loadProperties = loadProperties == ? List showTables() List list = ArrayList Connection conn = PreparedStatement ps = ResultSet rs = log.info("数据库:[" + DB_NAME + "]中的表如下:" String tableName = rs.getString(1 List descTable(String tableName) List list = ArrayList DescTableBean temp = Connection conn = PreparedStatement ps = conn.prepareStatement("desc " + ResultSet rs = log.info("获取数据库表:[" + tableName + "]的结构:" String descTable = " " + rs.getString(1) + " " + rs.getString(2) + " " + rs.getString(3) + " " + rs.getString(4) + " " + rs.getString(5) + " " + rs.getString(6 temp = temp.setField(rs.getString(1 String type = rs.getString(2 temp.setIsNull(rs.getString(3 temp.setKey(rs.getString(4 temp.setDefaultValue(rs.getString(5 temp.setExtra(rs.getString(6 close(ResultSet rs,PreparedStatement ps,Connection conn) (rs != (ps != (conn != varchar(20),datetime,double,longtext
  • type = "varchar(20)",return type = "varchar";
  • type = "datetime",return type = "datetime"; (type.endsWith(")" type = type.substring(0,type.indexOf("(" varchar(20),decimal(19,2),longtext
  • type = "varchar(20)",return "20";
  • type = "datetime",return type = "255"; type = "decimal(19,2)",return type = "19"; (type.endsWith(")" type = type.substring(type.indexOf("(") + 1,type.length() - 1 (type.contains("," type = type.substring(0,type.indexOf("," } "255" varchar(20),longtext
  • type = "varchar(20)",return "0";
  • type = "datetime",return type = "255"; type = "decimal(19,return type = "19"; (type.endsWith(")" type = type.substring(type.indexOf("(") + 1,type.length() - 1 (type.contains("," type = type.substring(type.indexOf(",") + 1 } type = "0" } "0" list = dbUtil.showTables(); listd = dbUtil.descTable(str); }

    main(String[] args) VelocityUtil velocityUtil = DBUtil dbUtil = List list = List descTable = }

    .authorName = .authorMail = .date = .version = }

    @SuppressWarnings("rawtypes" List beanDaoList = ArrayList List beanDaoImplList = ArrayList List beanServiceList = ArrayList List beanServiceImplList = ArrayList List beanDaoUrlList = ArrayList List beanDaoImplUrlList = ArrayList List beanServiceUrlList = ArrayList List beanServiceImplUrlList = ArrayList .name = .lowerName = .beanUrl = .beanDaoUrl = .beanDaoImplUrl = .beanServiceUrl = .beanServiceImplUrl = .webActionUrl = List setBeanDaoList(List .beanDaoList = List setBeanDaoImplList(List .beanDaoImplList = List setBeanServiceList(List .beanServiceList = List setBeanServiceImplList(List .beanServiceImplList = List setBeanDaoUrlList(List Bean.beanDaoUrlList = List setBeanDaoImplUrlList(List Bean.beanDaoImplUrlList = List setBeanServiceUrlList(List Bean.beanServiceUrlList = List setBeanServiceImplUrlList(List Bean.beanServiceImplUrlList = .webAdminActionUrl = }

    name varchar,longtext Integer length = 255 decimal YES PRI,如果唯一,则 key = UNI MUL .id = .field = .type = .length = .isNull = .key = .defaultValue = .extra = .decase = }

    Logger log = Logger.getLogger(LoadProperties. Properties prop = prop = (propertiesName != || !"" InputStream is = LoadProperties. (is == is = LoadProperties..getClassLoader().getResourceAsStream("/" + log.info("载入配置文件:[" + propertiesName + "]成功!" } log.error("载入配置文件:[" + propertiesName + "]失败!" String proPath = "jdbc.cfg.properties" LoadProperties loadProperties = String value = loadProperties.getValue("ANNOTATION_AUTHOR_NAME" }

    generateBean()生成java的POJO类 ********************************************
    bean.cfg.properties为数据库的配置信息,默认位置是在项目src目录下面
    Logger log = Logger.getLogger(VelocityUtil. String BEAN_CFG_PROPERTIES = "bean.cfg.properties" LoadProperties beanLoadProperties = Bean bean = String BEAN_URL = beanLoadProperties.getValue("BEAN_URL" String BEAN_PATH = BEAN_URL.replace(".","/" Annotation annotation = beanLoadProperties = beanLoadProperties == ? annotation.setAuthorName(beanLoadProperties.getValue("ANNOTATION_AUTHOR_NAME" annotation.setAuthorMail(beanLoadProperties.getValue("ANNOTATION_AUTHOR_MAIL" annotation.setVersion(beanLoadProperties.getValue("ANNOTATION_VERSION" SimpleDateFormat simpleDateFormat = SimpleDateFormat("yyyy-MM-dd" annotation.setDate(simpleDateFormat.format( String createCode(String fileVMPath,Bean bean,Annotation annotation,List descTable) VelocityEngine velocityEngine = velocityEngine.setProperty("input.encoding","UTF-8" velocityEngine.setProperty("output.encoding","UTF-8" Template template = VelocityContext velocityContext = velocityContext.put("bean" velocityContext.put("annotation" velocityContext.put("descTable" StringWriter stringWriter = generateBean(String tableName,List descTable) (descTable != String path = System.getProperty("user.dir") + "/src/" + BEAN_PATH + "/" File filePath = (! log.info("创建路径[" + path + "]成功!" String fileName = path + handleTableName(tableName) + ".java" File file = FileWriter fw = fw.write(createCode(beanLoadProperties.getValue("BEAN_TEMPLATE_VM_PATH" tableName = "expert_user_admin";
    return "ExpertUserAdmin";
  • tableName = "expert";
    return "Expert";
    (tableName.contains("_" String[] array = tableName.split("_" String temp = "" temp = temp + str.substring(0,1).toUpperCase() + str.substring(1 } tableName.substring(0,1).toUpperCase() + tableName.substring(1 list = dbUtil.showTables(); descTable = dbUtil.descTable(tableName); }
  • import javax.persistence. import javax.persistence. (name #($_ " #($_ " #($_ " #($_ " #($_ " #($_longtext ##foreach #foreach ( $descTableBean #($type ##处理int,转换为java.lang. #($type $_ private # #($type $_ # #($type $_ # #($type $_ # #($type # #($type $_ private # # }

    #the bean template BEAN_TEMPLATE_VM_PATH srcvms BEAN_URL #the author s mail ANNOTATION_AUTHOR_MAIL hongtenzone #the version the program ANNOTATION_VERSION

    DB_DRIVER # DB_CHARACTER_ENCODING UTF #jdbc DB_PORT #jdbc url eg:codejdbc:mysql:localhost:sample?characterEncodingUTFcode #DB_URL jdbc:mysql:localhost: #jdbc DB_USER_NAME DB_PASSWORD root

    log4j.appender. log4j.appender..Target log4j.appender..layout log4j.appender..layout.ConversionPattern d{yyyyMMdd HH:mm:ss,SSS} 5p c:L m log4j.appender.hongten. log4j.appender.hongten..E:log4jlog4j log4j.appender.hongten..DatePatternyyyyMMdd log4j.appender.hongten..layout log4j.appender.hongten..layout.ConversionPattern d{yyyyMMdd HH:mm:ss,SSS} 5p c:L m log4j.rootLoggerdebug,,hongten. log4j.logger.org.hibernate.typeerror

    在“”中可以下载到hibernate相关jar文件;

    在“”中可以下载到velocity的相关jar文件;

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读