网页设计模板代码下载(网页设计模板代码下载安装)

  起因

网页设计模板代码下载(网页设计模板代码下载安装)

  项目中需要根据数据库表写很多Meta、Dao、Service代码,其中很多代码都是重复而繁琐的。因此如果有一个模板代码的生成器,就可以一定程度提高开发效率。

  目标

  可配置生成Java Web项目中Dao、Meta、Service层模板代码的生成器。

  代码框架mvn archetype:generate -DgroupId=com.zju -DartifactId=JavaWebCodeGenerator -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false -DarchetypeCatalog=internal设计思路

  项目参考Mybatis generator生成代码的过程,具体步骤分为以下5步。

  逻辑步骤

解析命令行

解析配置文件

获取数据表信息

生成配置信息

生成文件

代码设计

  命令解析类 ShellRunner

  该类负责解析命令行的命令,解析配置文件并封装所需的数据给代码生成类。

  可解析命令有-configfile:指定配置文件所在路径和-overwrite:是否重写目标文件。

  配置文件的配置项有:

  //Java SQL 驱动所在路径(暂未使用)privatestaticfinalStringCLASS_PATH_ENTRY = "class.path.entry";//Java 驱动类型(暂未使用)privatestaticfinalStringDRIVER_CLASS = "driver.class";//数据库地址privatestaticfinalStringCONNECTION_URL = "connection.url";//数据库用户名privatestaticfinalStringUSER_ID = "user.id";//数据库密码privatestaticfinalStringUSER_PASSWORD = "user.password";//模型生成地址privatestaticfinalStringJAVA_MODEL_PACKAGE = "java.model.package";//SQL生成地址privatestaticfinalStringSQL_MAPPING_PACKAGE = "sql.mapping.package";//项目地址privatestaticfinalStringPROJECT = "project";//数据表名privatestaticfinalStringTABLE_NAME = "table.name";//模型名称privatestaticfinalStringDOMAIN_OBJECT_NAME = "domain.object.name";

  代码生成类 CodeGenerator

  该类负责连接数据库,查询数据表的表信息,将SQL类型映射成Java类型并封装所需的数据给文件生成类。

  Class.forName(configuration.getDriverClass());//获取数据库连接Connection connection = DriverManager.getConnection(configuration.getConnectionURL(), configuration.getUserId(), configuration.getPassword());DatabaseMetaData databaseMetaData = connection.getMetaData();//获取表结构信息ResultSet rs = databaseMetaData.getColumns("", "", configuration.getTableName(), "%");

  通过以上几行代码,rs变量中已经获得目标数据表的表信息。

  databaseMetaData.getColumns方法的实质是执行了SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME="tableName"语句。

  在结果集中,后续处理大致需要以下表信息列。

字段

描述

DATA_TYPE

数据类型

COLUMN_SIZE

数据长度

COLUMN_NANE

列名

NULLABLE

是否允许非空

DECIMAL_DIGITS

小数位数

REMARKS

备注

COLUMN_DEF

默认值

  最后通过JavaTypeResolver中的类型映射(Map<Integer, JdbcTypeInformation> typeMap)和StringUtils中的驼峰命名转换(getCamelCaseString)将SQL信息转换成Java信息。

  文件生成类 FileGenerator

  该类通过FreeMarker模板引擎组合数据成目标代码文件。

  主逻辑如下:

  /** * @param configuration 封装的配置信息 * @param columns 封装的数据表列信息 * @throws IOException * @throws TemplateException */publicstaticvoidwriteFile(Configuration configuration, List<TableColumn> columns)throws IOException, TemplateException { File r=new File(""); //测试环境获取项目根目录路径//String path=Class.class.getClass().getResource("/").getPath();//Jar包获取根目录路径 String path=r.getAbsolutePath(); //System.out.println("path:"+path); Configuration cfg = new Configuration(); cfg.setDirectoryForTemplateLoading(new File(path + "/ftl")); //需要文件夹绝对路径 cfg.setDefaultEncoding("UTF-8"); cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); Map root = new HashMap(); root.put("configuration", configuration); root.put("columnList", columns); writeSingleFile(cfg, root, "DaoImpl.ftl", configuration.getProjectPath(), configuration.getSqlMappingPackage().replace(".", "/"), configuration.getDomainObjectName(), "DaoImpl.java",configuration.getOverwrite()); writeSingleFile(cfg, root, "Dao.ftl", configuration.getProjectPath(), configuration.getSqlMappingPackage().replace(".", "/"), configuration.getDomainObjectName(), "Dao.java",configuration.getOverwrite()); writeSingleFile(cfg, root, "Meta.ftl", configuration.getProjectPath(), configuration.getJavaModelPackage().replace(".", "/"), configuration.getDomainObjectName(), ".java",configuration.getOverwrite()); }

  注意

  在测试中,Class.class.getClass().getResource("/").getPath();该方法可以获取项目根目录,但是在测试生成的Jar包时,该方法时效。因此在生成Jar包前需要把该行修改成new File("").getAbsolutePath();获取生成路径。

  项目结构

  配置文件范例

  generatorConfig.properties

  class.path.entry=src/test/resources/mysql-connector-java-5.1.38.jar driver.class=com.mysql.jdbc.Driver connection.url=jdbc:mysql://localhost:3307/workuser.id= user.password= java.model.package=com.model sql.mapping.package=com.dao project=src table.name=holiday domain.object.name=Holiday运行命令范例java-jarJavaWebCodeGenerator.jar-configfilegeneratorConfig.properties-overwrite实例演示

  源代码

  https://github.com/TedHacker/PracticeArea/tree/master/JavaWebCodeGenerator


【免责声明】:

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

【关于转载】:

本站尊重互联网版权体系,本站部分图片、文章大部分转载于互联网、所有内容不代表本站观点、不对文章中的任何观点负责、转载的目的只用于给网民提供信息阅读,无任何商业用途,所有内容版权归原作者所有
如本站(文章、内容、图片、视频)任何资料有侵权,先说声抱歉;麻烦您请联系请后台提交工单,我们会立即删除、维护您的权益。非常感谢您的理解。

【附】:

二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!

注:本站资源来自网络转载,版权归原作者和公司所有,如果有侵犯到您的权益,请第一时间联系我们处理!

-----------------------------------------------------------------------------------------------------------

【版权声明】:

一、本站致力于为源码爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、如有内容侵犯您的版权或其他利益的,请编辑邮件并加以说明发送到站长邮箱。站长会进行审查之后,情况属实的会在三个工作日内为您删除。
-----------------------------------------------------------------------------------------------------------


内容投诉
源码村资源网 » 网页设计模板代码下载(网页设计模板代码下载安装)

1 评论

您需要 登录账户 后才能发表评论

发表评论

欢迎 访客 发表评论