`
- 浏览:
3975 次
- 性别:
- 来自:
jiangsu
-
实用主义,不使用Hibernate,枚举类Enum在OR映射中应用
在很早以前刚接触Hibernate,觉得新奇,网上有很多评价,称如何如何的好用,就研究了一下,看了源代码,做了测试,一步一步的跟了进去.也学了不少东东,但感觉有些繁琐(或许我还没有领会其精髓所在吧).在我们做企业应用系统中对持久数据层的需求就是能够开发出这样的一种映射架构,能够透明的把规格好的数据和需要DB执行业务逻辑的sql传输给DB执行,以及伴随着异常和事务的处理.那么问题基础是,如何实现良好的封装sql和sql参数的取值.将这两个属性数据传输给你的持久数据框架,让其执行JDBC事务操作.在我做项目的过程中,大概有60-70%的模块逻辑操作,是针对主键数据对象,包括主键查询,删除,插入,修改,以及数据库表列的全查询,如果能够找到某种映射机制,将你的java实体对象和数据库字段实现完美的映射(如java注释,XDoclet标记,xml配置文件等),通过映射类将需要操作的业务对象,由持久层自动处理,这样就可以处理应用系统中大部分的业务模块的基本数据操作.
从java1.5开始,有了Enum类,使用Enum类作为OR映射介质(后面称其为"实体映射类"),可用很好的实现OR映射,
1, Enum实体映射类,要求实现一个公共的接口,可以获得例如映射的数据库表名称,映射的java实体对象全类名,等信息.例如实体映射类包含的属性设置如下:
SmMenuObjEnum(String _field, String _property, String caption, Class _type, boolean _pkField, String _defaultValue)
2,使用自动代码生成器,可以指定数据库表,自动创建java实体对象和实体映射类.
3,系统启动加载时,通过映射解析引擎,获得实体对象的基本操作对象(包括sql,和sql参数对应java实体对象的属性名称,类型等信息)
4, 开发客户调用时,传入需要处理的装载有业务数据的实体对象(可选参数-实体映射类),持久框架引擎根据实体类,获得当前需要操作的sql,并自动组装sql参数,最后由事务参与对象执行JDBC操作.
使用Enum类作为OR映射介质,可以达到很好的效果:
1,使用代码生成器自动创建所有的java实体对象和映射类.
2,避免了在程序中使用字符串的方式取得数据库表字段名称,可以直接使用映射枚举类成员获得,这样在数据模型修改时,在系统开发状态的编译,就可以找到程序中需要变化的地方.
3,可以使用映射枚举类,组装sql.
4,简单实用.
当然了对于个性化特殊的复杂查询sql,还是使用xml配置文件的方式,作为资源加载,供持久化层调用.这样便于在数据非结构性变化时,优化查询sql,而不用重新部署或者更新我们的系统程序.
----------------------------------------------------------------------
http://www.lenosen.com
联生在线进销存管理信息系统,采用J2EE技术,在自主研发的WEB框架基础上开发的一款
稳定可靠,扩展强,可灵活配置的面向SAAS服务的WEB应用系统.
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
包含了关于枚举类的应用,以及枚举类和接口的组合应用,扩展映射关系。很有用的工具类。
Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类...
NULL 博文链接:https://rensanning.iteye.com/blog/2013734
enum.docx ,详细介绍了enum的用法,枚举用法在c#中比较常见,希望会有帮助哦
在Hibernate中如何使用枚举映射,Hibernate中映射枚举类型
c#遍历枚举(ENUM)类型的方法,简单实用,适合c#初学者
java 通过反射获取枚举类,及枚举类的值,枚举类枚举实例名。本项目为普通java项目
C++中枚举类型(enum)
一、枚举类的使用: 1.枚举类的理解:类的对象只有有限个,确定的。我们称此为枚举类 2.当需要定义一组常量时,强烈建议使用枚举类。 3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。 二、如何定义枚举...
案例简单枚举类定义由于枚举类的“new”方法,将会保证内存中只会存在一个枚举类的实例from enum import Enum这样我们就获得了Month类型的枚
enum枚举类的一些代码demo
Java中的枚举类型Enum示例源代码,详见http://blog.csdn.net/snarlfuture/article/details/18996037
主要介绍了java 中枚举类enum的values()方法的详解的相关资料,希望通过本文大家能够掌握这部分内容,需要的朋友可以参考下
java高级编程 Enum枚举 包括枚举的例子,问题 及一些文档,是复习的好资源
enum枚举的方法
java 枚举(enum) 详解(学习资料); java 枚举(enum) 详解(学习资料); java 枚举(enum) 详解(学习资料); java 枚举(enum) 详解(学习资料);
在C++中,枚举类型分为不限定作用域(enum)和限定作用域(enum class)。 2. enum与enum class的区别? (为什么需要限定作用域?) 答:枚举作用域是指枚举类型成员名字的作用域,起自其声明之处,终止枚举定义...
主要介绍了Java枚举类enum介绍,和其它普通类一样,enum同样可以有成员变量、方法、构造器,也可以实现一个或多个接口,需要的朋友可以参考下
代码中包含枚举类的基本使用,和完整的请求示例。 主要实现了枚举类创建单例后,将结果返回给前端。 看过一些其他人的实现,都比较麻烦。这是结合一些博主的代码,摸索出来的比较方便的方案。 缺点就是 多线程下会...
java枚举类型的定义使用介绍,还有示例。