返回顶部
首页 > 资讯 > 精选 >J-Hi的生成器有什么用
  • 871
分享到

J-Hi的生成器有什么用

2023-06-17 13:06:32 871人浏览 独家记忆
摘要

这篇文章给大家分享的是有关J-Hi的生成器有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。数据库相关对应不同的数据库J-Hi会生成不同的数据库脚本文件,生成的文件会临时存放在WEB/db目录下的相关数据库(

这篇文章给大家分享的是有关J-Hi的生成器有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

数据库相关

对应不同的数据库J-Hi会生成不同的数据库脚本文件,生成的文件会临时存放在WEB/db目录下的相关数据库(MSsql/MYSQL/oracle)子目录下,每次生成该目录下的文件都会清理一次。生成的文件如下:

xxx.sql 定义该服务下所有实体(枚举实体除外)的数据库表的创建

xxx_BaseData.sql用于对该服务下的实体,为系统表插入相关数据,系统表包括:菜单、权限、枚举等,通过该文件会将与实体相关的菜单信息,权限信息等一次性的插入到系统表中

Java相关

因为Java含盖的框架有很多,采用不同的框架不同的技术生成的内容会有所不同,下面让我们按三层结构的原理划分说明:

数据访问层

xxx.dao包为数据访问层的总包,对应不同的ORM框架还会有相应的子包,比如hibernate、ibatis(ibatis2)、ibatis3等子包。

***DAO.java:在dao包下这是个接口,用于规范不同框架之间的差异。

hibernate子包:

***DAOHibernate.java:hibernate数据访问的具体实现类,该类继承BaseDAOHibernate,从而实现对hibernate的封装

***.hbm.xml:该文件是hibernate的映射文件

我们之所以把ibatis的两个不同版本分两个子包来管理,是因为ibatis2与ibatis3在底层实现上已经有很大的差异,无论是内部运行原理还是配置文件基本上是颠覆性的变化。

ibatis子包

***DAOIbatis.java:ibatis2数据访问的具实体现类,该类继承BaseDAOIbatis,从而实现对Ibatis2的封装

***.ism.xml:ibatis2的映射文件,之所以后缀叫ism是指ibatis sql mapping

ibatis3子包

***DAOIbatis3.java:ibatis3数据访问的具实体现类,该类继承BaseDAOIbatis,从而实现对Ibatis3的封装

***.ism3.xml:ibatis3的映射文件,之所以后缀叫ism是指ibatis3 sql mapping

业务逻辑层

业务逻辑层J-Hi采用的是spring,因此大体上与spring的标准结构完全相同

xxx.service包为业务逻辑层的总包,接口定义在该包下

***Manager.java:业务逻辑的接口类文件,缺省生成的是实体的增删查改方法,如果在业务逻辑层中想做权限控制,可以调用*Security***()方法

xxx.service.impl包下的

***ManagerImpl.java:是业务逻辑的具体类,该类继承ManagerImpl类。如果是特定的业务逻辑一定要在该类中通过手写代码的形式实现之

appContext-xxx.xml:是spring的配置文件,放在置在xxx包下

表现层

xxx.action包为表现层的总包,对应不同的表现层框架会有相应的子包,比如webwork、struts等子包。

***PageInfo.java:在action总包下,该类是与框架无关的,实际上该类记录页面信息的一个POJO,信息主要包括三部分:1)翻页(page):行数、当前页数等;2)过滤器(filter):即查询条件;3)排序器(sorter):即正序倒序

webwork子包:

***ListAction.java:查询页面时所调用的动作

***.RemoveActoin.java:删除记录时所调用的动作

***.RemoveAllActoin.java:批量删除时所调用的动作

***SaveAction.java:保存记录时所调用的动作

***.ViewAllActoin.java:查看记录时所调用的动作

xwork-xxx.xml:webwork的配置文件

与webwork相比,struts的类文件只有一个,所以的动作都是通过方法命名调用实现的,我们之所以做成两种生成方式,是想考虑用户会有个自不同的编程偏好,从而我们为些在不同框架间提供两种生成模式,以适应这种编程偏好的差异

struts子包:

平台目前舍弃了对struts1.x的支持,所以与struts相关都是以struts2为前提的

***Action.java:该Action包括了所有的页面调用动作,通过方法命名进行调度

struts-xxx.xml:struts2的配置文件

POJO及其它

在xxx.model包为POJO的总包,一个POJO实际上是由两个类文件组成的,即

***Abstract.java:该类是POJO的抽象类

***.java:该类是POJO的具体类

之所以这样做是为了避免手写的代码会被生成器生成的文件所覆盖

***.java:如果在定义是有枚举实体,在model包下还有会生对应枚举实体的常量类文件

***-conversion.properties:如果实体有从实体,也就是主从结构,生成器对应主实体生成该文件,其目的是为了适应表现层框架对页面信息的对象化封装

xxx--security.properties:该文件放置在xxx包下,是权限的映射信息的配置文件

页面相关

以后生成器会根据所选模版不同,而对应生成的页面会有很大差异,现在以目前平台的经典模版为例

***List.jsp:查询页面

***Edit.jsp:编辑页面

***View.jsp:查看页面

***.js:与JSP文件应对应的javascript文件

源数据相关

***.hsc.xml 对应每个服务,平台在WEB-INF/matadate目录下都会生成一个源数据的描述文件。该文件记录了定义了模型的全部信息。hsc的意义为:hi service config

基于平台生成器避免手动代码被覆盖的解决方案

如果您采用本平台开发,理论上80%以上的代码都是生成出来的。这样就带来了一个新问题—如何保证我手动改写或添加的代码不会被生成器生成的文件所覆盖?

考虑到上述问题生成器在生成文件时有如下规则:

生成器会反复生成并覆盖以下类与文件:

i. model.original包下的抽象类

ii. action包下***PageInfo类

iii. model包下的***.hbm.xml文件

iv. 服务根包下的appContext-***.xml文件

v. 服务根包下的***-security.properties文件

vi. src根下的xwork-***.xml文件

除上述文件外,生成器对生成其它文件时均会判断是否以存在,如果存生就不再生成也不会覆盖已生成或手动修改类或配置文件的内容

从反复生成的文件规则上可以看出,生成器只会反复生成:

1) 与实体属性密切相关的类或配置文件如模型的抽象类与***PageInfo、***.hbm.xml,因为实体中的属性名称或数量发生变化,生成器要适应对实体属性的变化

2) 与整个服务相关的配置文件如xwork-***.xml、appContext-***.xml等等,因为一个服务下会有多个实体,生成器要适应服务下实体数据库的增减

3) 对于那些与实体相关并且不与服务或实体属性相关的类生成器却只会生成一次如dao、service、action下的所有类,以保证您手写的代码不会被生成器所覆盖

在基于平台开发时,因采用生成器生成所以可以使用如下解决方案来避免您手写的代码或配置不会被生成器所覆盖

i. 如果您要对模型类实现某个接口或方法,请改写model包下的具体类,该类只会生成一次,注意千万不要修改original包下抽象中的内容

ii. 如果您要对表现层的配置文件做修改,以xwork-test.xml为例,操作应该是1)新建一个xwork-test-customer.xml配置文件,2)将您要修改或要增加的actoin写在该文件中(即使action名与xwork-test.xml只的action名重复也没有关系,系统会以您的action为***优先级),3)在xwork.xml文件中引入该配置文件注意一定要放在xwork-customer.xml引用的下面。只有这样复名的action才会优先调用您的配置

iii. 如果您要对业务层的配置文件做修改,以appContext-text.xml为例,操作应该是1)新建一个appContext-test- customer.xml配置文件,2)在该文件中加入您自己的配置信息。注意新建的文件名必须以appContext开头。

iv. 如果您要对权限配置文件做修改,以test-security.properties为例,操作应该是1)新建一个test-customer- security.properties配置文件,2)在该文件中加入您的配置信息。注意新建的文件名必须以-security结尾。***如果您想删除生成的配置文件中某些配置项(即对某些url或方法不要求做权限控制),推荐在整个项目做完后统一处理。

感谢各位的阅读!关于“J-Hi的生成器有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: J-Hi的生成器有什么用

本文链接: https://lsjlt.com/news/289435.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • J-Hi的生成器有什么用
    这篇文章给大家分享的是有关J-Hi的生成器有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。数据库相关对应不同的数据库J-Hi会生成不同的数据库脚本文件,生成的文件会临时存放在web/db目录下的相关数据库(...
    99+
    2023-06-17
  • J-Hi查询过滤器的实现原理是什么
    本篇文章给大家分享的是有关J-Hi查询过滤器的实现原理是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。J-Hi设计自己的查询过滤器而没有直接采用Hibernate的Crit...
    99+
    2023-06-17
  • python生成器函数有什么特点
    今天就跟大家聊聊有关python生成器函数有什么特点,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;...
    99+
    2023-06-14
  • 生成器里 return 的作用是什么
    这篇文章主要讲解了“生成器里 return 的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“生成器里 return 的作用是什么”吧!在粉丝群里,...
    99+
    2024-04-02
  • python迭代器和生成器有什么区别
    Python中,迭代器和生成器是两种不同的对象。它们的区别如下:1. 迭代器是一个实现了迭代协议的对象,它可以使用`iter()`和...
    99+
    2023-09-20
    python
  • 用数据库生成的ID会生成什么问题
    这篇文章主要讲解了“用数据库生成的ID会生成什么问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“用数据库生成的ID会生成什么问题”吧!用数据库生成应用ID...
    99+
    2024-04-02
  • python迭代器和生成器的作用是什么
    这篇文章主要讲解了“python迭代器和生成器的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python迭代器和生成器的作用是什么”吧!说明容器是可迭代对象,可迭代对象调用ite...
    99+
    2023-06-20
  • PMK数据生成工具airolib-ng有什么用
    这篇文章主要介绍了PMK数据生成工具airolib-ng有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PMK数据生成工具airolib-ngPMK(Pairwise ...
    99+
    2023-06-04
  • 复杂密码生成工具apg有什么用
    这篇文章主要为大家展示了“复杂密码生成工具apg有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“复杂密码生成工具apg有什么用”这篇文章吧。复杂密码生成工具apg密码是身份认证的重要方式。...
    99+
    2023-06-04
  • es6生成器指的是什么意思
    这篇文章将为大家详细讲解有关es6生成器指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在es6中,生成器是设置迭代器的一个函数...
    99+
    2024-04-02
  • python中生成器的原理是什么
    这篇文章将为大家详细讲解有关python中生成器的原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,...
    99+
    2023-06-14
  • Python中的生成器原理是什么
    这篇文章主要介绍“Python中的生成器原理是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中的生成器原理是什么”文章能帮助大家解决问题。什么是python生成器生成器是一种特殊的迭...
    99+
    2023-07-06
  • Python生成器的用法
    这篇文章主要讲解了“Python生成器的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python生成器的用法”吧!一、生成器在 Python 中,使用了 yield 的函数被称为生成器...
    99+
    2023-06-02
  • python中生成器是什么意思
    这篇文章将为大家详细讲解有关python中生成器是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。生成器(Generator):通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量...
    99+
    2023-06-16
  • Python生成器怎么使用
    本篇内容介绍了“Python生成器怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!生成器仅仅拥有生成某种东西的能力,如果不用__nex...
    99+
    2023-06-17
  • 为什么mockgen会生成文件中的所有接口?
    在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天编程网就整理分享《为什么mockgen会生成文件中的所有接口...
    99+
    2024-04-05
  • 学生要云服务器有什么用
    学生使用云服务器可以有以下几个用途:1. 学习和练习:云服务器可以为学生提供一个安全的环境来学习和练习各种计算机技术,如网络管理、虚...
    99+
    2023-08-18
    云服务器
  • 学生买云服务器有什么用
    学生购买云服务器可以提高学习和研究的效率,因为云服务器可以提供高性能、高可用性和可靠性保证,使学生能够专注于学习和研究。此外,云服务器提供的可扩展性和弹性也可以让学生轻松地添加更多服务器,从而提高他们的资源利用率。 云服务器还可以提高学生...
    99+
    2023-10-27
    什么用 服务器 学生
  • 为什么这些元组没有正确生成?
    php小编苹果在编写代码时,经常会遇到一些问题,其中一个常见问题是元组生成不正确的情况。这可能是由于代码逻辑错误、数据类型不匹配或者其他错误导致的。在解决这个问题之前,我们需要先仔细分...
    99+
    2024-02-09
  • 什么是分布式ID生成器Tinyid
    本篇内容介绍了“什么是分布式ID生成器Tinyid”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Tinyi...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作