一 核心接口类:DbCommon
1.核心方法
(1).
public static Configuration getXMLCon(Object obj,boolean isGetObj,String paramName,String paramValue)
主要完成从数据库中的对应表中取出xml格式(clob)的文本,转存成Configuration对象(org.apache.avalon.framework.configuration.Configuration),并返回。并根据需要,决定是否要持久化该表对应的对象。
(2).
public static void updateXMLCon(Object obj,Configuration conf,String paramName,String paramValue )
主要完成特定表中,某条记录中的xml字段更新的操作。
(3).
public static void insertData(Object obj,Object... objs)
主要完成向某个 传入对象所对应表中插入数据的操作。
2.所涉及的工具方法:
(原先moa中的数据库连接,及大文本字段赋值的公共方法这里不介绍)
(1).
private static String classNameSwitch(String str)
该方法完成java类及其属性的命名到数据库表及其列的命名的单向转换。如 将类名TabMoaPackage 转成 对应的数据库表名 TAB_MOA_PACKAGE ,类属性与数据库列的转换类似。(方法的命名有些不规范,重构时修改);
(2).
private static String tableNameSwitch(String str ,boolean isUpper)
该方法完成数据库表及其列的命名到java类及其属性的命名的单向转换。如 将表名TAB_MOA_PACKAGE转成 对应的类名
TabMoaPackage。 并可通过参数 isUpper决定是否需要转换后的字符串的首字母大写 (列名转成类属性名时,该值多为false,即对应java属性的命名规则)。(方法的命名有些不规范,重构时修改);
(3)
private static String strDeal(String str)
该方法主要做字符串处理,将任意一个字符串的首字母转为大写。(功能有可以合并的空间,重构时修改);
(4)
private static String defaultSeq(String tableName)
该方法针对目前项目所指定的数据库命名规范,根据表名来生成一个符合当前所制定的规则的sequence。如 表TAB_MOA_PACKAGE 对应的默认sequence就是 SEQ_MOA_PACKAGE ; 如果表名是 PACKAGE,则他所对应的sequence默认名为SEQ_PACKAGE
(5).
private static String getSeq(String seqName)
获取一个sequence(下个值),以string类型返回。
二.标注类
目前根据需要定义了三个标注类。
(1).
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Table {
String tableName();
}
标注类table用于表和类关联 ,定义一个标注属性tableName ,用此来标示表名
(2).
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Field {
String columnName();
boolean isPrimaryKey() default false;
boolean isSpecialCol() default false;
}
标注类field用于列和属性字段关联。定义的三个属性,分别用来标示列名,是否主键,是否特殊字段(本项目中用来标示需要业务操作的xml数据)。
(3).
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Seq {
String pkGenType() default "SEQ";
String seqName();
}
用于标示主键生成方式及值的信息。pkGenType用于标示主键的生成方式,默认为sequence,seqName用于标示sequence的名称。(可扩展以对应多种生成方式)
分享到:
相关推荐
在.NET开发环境中,反射框架是一个强大的工具,它允许程序在运行时检查自身并动态操作类、接口、属性、方法等元数据。这个框架是.NET Framework的核心组成部分,为开发者提供了灵活性和扩展性,使得代码能够在不知道...
本案例围绕"android sqlite数据库框架"展开,旨在通过Java注解和反射机制简化数据库的日常操作,提升开发效率。 首先,SQLite在Android中的应用主要是通过SQLiteOpenHelper类来实现的,这个类是Android提供的一个...
在MVC框架中,反射可以用来动态加载实现了特定接口的类,例如在数据工厂中,可以使用反射加载所有实现了`IModel`接口的类,然后根据需求实例化它们。 总结一下,这个"简单MVC框架"利用接口实现了组件间的松耦合,...
标题中的“抽象工厂访问不同的数据库(反射+缓存)”是指在软件设计模式中使用抽象工厂模式来创建和管理数据库连接。...在实际开发中,这样的设计可以提供良好的可扩展性和性能,并且降低系统对特定数据库的耦合度。
在编程领域,反射机制是一种强大的工具,它允许程序在运行时检查自身并操作其内部结构,如类、接口、字段和方法。在Java等面向对象的语言中,反射机制被广泛用于实现动态类型处理、元数据访问以及在未知类型的情况下...
- Hibernate框架在ORM(对象关系映射)中使用反射,动态调用实体类的方法以操作数据库记录。 总之,Java反射是SSH框架底层实现的关键技术之一,它使得框架能够实现高度动态和灵活的编程,提高了代码的可扩展性和可...
本文将深入探讨如何使用C#源码来访问Access数据库,并通过反射技术来执行数据库的清理、优化和压缩操作。首先,让我们理解这些概念。 **C#与Access数据库的交互** C#提供了ADO.NET框架,使得程序员可以方便地连接...
在WF-asp.net实训项目中,你可能需要结合这些知识来开发一个能够动态添加水印到图片的Web应用程序,通过接口定义服务,使用反射动态调用服务,同时利用分层架构来组织代码,提高代码的可读性和可维护性。
通过反射,开发者可以不依赖任何特定的库或者API,直接对Access数据库进行压缩和修复。 数据库压缩的主要目的是减小数据库的存储空间,提高读取速度。在Access中,可以通过多种方式实现,例如,删除不必要的数据、...
反射通常允许程序在运行时检查自身的结构,如类、方法、属性等,并能够根据这些信息进行操作。这对于数据库应用程序尤其有用,因为它可以允许程序在运行时动态地发现和操作数据库表。 动态创建在MFC中通常涉及两种...
在这个场景中,"JAVA通过实体生成数据库表"指的是使用特定的工具或框架,根据预先定义好的Java实体类,自动生成对应的数据库表结构。 首先,我们需要理解什么是实体类。在Java中,实体类通常是对应数据库中的一张表...
然后针对每种数据库(如Oracle、MySQL、SQL Server等)创建具体的工厂类,如OracleDAL、MS_SQLDB、SQLServerDAL,这些类实现了`IDatabaseFactory`接口,提供对特定数据库的操作。这样,通过抽象工厂,我们可以在不...
反射允许程序在运行时检查和修改自身的结构,而工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,隔离了类实例化过程,并允许代码在不指定具体类的情况下调用对象的方法。 首先,我们来详细探讨反射...
然后,针对每种特定的数据库(如MySQLDbOperator、SqlServerDbOperator等),可以继承这个基类并重写特定数据库的连接字符串和命令创建逻辑。 对于不同的数据库,连接字符串的格式会有所不同。例如,MySQL的连接...
本项目旨在模仿Litepal,利用注解和反射技术来构建一个类似的数据框架,使得数据库操作更加便捷、高效。 首先,让我们了解注解(Annotation)和反射(Reflection)的基本概念。注解是Java提供的一种元编程机制,它...
标题中的“学习上可以用的东西”指的是一个用于辅助学习SQL操作的工具,特别是针对数据库表结构的理解和基本SQL语句的生成。这个工具允许用户输入数据库的表名,然后自动生成对应的添加(INSERT)、删除(DELETE)、...
在IT行业中,数据库表实体的生成是开发过程中的一个重要环节,特别是在使用MVC(Model-View-Controller)设计模式的项目中。MVC是一种广泛应用于Web应用开发的设计模式,它将业务逻辑、数据处理和用户界面分离,使得...
6. **注解应用**:在生成的实体类中,可能会使用Java注解(如`@Entity`、`@Table`、`@Column`等)来提供额外的信息,帮助ORM框架更好地理解数据库结构。 7. **自定义配置**:用户可能需要对生成的实体类进行特定的...
这篇博文“利用java反射、注解及泛型模拟ORM实现”旨在探讨如何结合这三种技术来实现对象关系映射(ORM),这是一种将数据库表与Java对象之间进行绑定的技术,简化了数据操作。 首先,我们来理解一下这三个概念: ...