`
qzww5324
  • 浏览: 37376 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

特定项目用数据库反射框架的尝试(基本使用篇)

阅读更多

整个接口的使用分为两部分:

第一部分为和表对应的实体类的定义,下面以表TAB_MOA_PACKAGES为例,sequence以默认的SEQ_MOA_PACKAGES建立。对应的类如下:

@Table(tableName="TAB_MOA_PACKAGES") //可省略
@Seq(seqName="SEQ_MOA_PACKAGES")     //可省略
public class TabMoaPackages {
	@Field(columnName="ID",isPrimaryKey=true)
	private Long id;
	private String packageType;//固顶资源库还是自定义资源库的标识	
	@Field(columnName="PACKAGE_DATA",isSpecialCol=true)
	private String packageData;//xml存储
...
}

 1.因为类的命名规则按照了默认的规则,并且sequence的建立也都按照了默认的命名规则,所以这里@Table和@Seq其实都是可以省略的。类属性packageType也按照了默认命名规则,所以不必用标注标示出该属性对应数据库表字段的命名。

 

 2. 这个类属性 id和packageData两个属性比较特殊;

  id对应的数据库字段是表的主键,所以在这里要用isPrimaryKey来标示出来(考虑是否将主键的属性独立出来,这样在主键的类命名符合默认规则的情况下就不用再定义columnName,目前因为是主键,所以即使是符合了默认命名规则,也得把Field标示出来,代码重构时处理)

  packageData在数据对应得字段中,存放的是一个xml格式的clob数据,也是业务需求的数据,涉及到一些特殊处理,所以这里以isSpecialCol标示出,表示需要特殊处理(在目前项目中,表示要返回该属性的值);同样的,目前存在和主键字段相同的标示重复的问题。

 

 

目前的设计的并不完善,所以该类的建立,基本按照贫血模型来建立,即不能有其他和业务操作紧密关联的其他属性和方法

 

 

第二部分为根据业务的需要分别调用三个不同的方法。

 

1.当需要获取一个封装成Configuration对象的xml数据时,调用 getXmlCon方法。如:

TabMoaPackages packages=new TabMoaPackages();
Configuration conf=DbCommon.getXmlCon(packages,true,"packageType","EXTEND");
Long id=packages.getId();
...

 以上代码 传入了一个TabMoaPackages对象,并且需要持久化这个对象,这样方法执行完后,可以使用该对象。如果没有必要使用该对象第二个参数传入false,可以提高些效率。

 

2.当需要更新某个xml时,可以调用updateXMLCon(Object, Configuration, String, String)方法.如:

TabMoaPackages packages=new TabMoaPackages();
Configuration conf=DbCommon.getXmlCon(packages,true,"packageType","EXTEND");
Long id=packages.getId();

//对conf做了一系列的操作
...

DbCommon.updateXMLCon(packages,conf,"packageType","EXTEND");
...

 

这里先是获取了一个xml,然后做了些操作,并更新回数据库,更新方法的参数和读取方法基本类似。

 

这里有个问题需要注意:如果是直接新new了一个对象,作为参数传入updateXMLCom方法的,后面的查询条件参数对应的是主键及其值,即以主键作为查询条件时,这样不会有任何问题,但是如果查询的条件参数是非主键,这时就需要先在新new的这个对象里,给它的主键属性里赋上值后再作为参数传入;上面的例子里就不是以主键id作为查询条件,所以updateXMLCon方法传入的object里,主键属性需要有值,不能为null;

 

3.当需要插入条数据时,调用insertData方法。

 

TabMoaPackages packages=new TabMoaPackages();

//对packages里除主键属性以外的属性进行赋值
...

DbCommon.insertData(packages);
...

 

同样需要new一个对象,并给需要插入的字段对应的属性赋上值(这里主键id不用赋值),然后传入方法就行了

 

分享到:
评论

相关推荐

    国内首个基于SpringBoot 2的开源管理后台系统,聚焦核心功能,提供健壮内核,支持多个数据库,容易搭建,容易修改.zip

    Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上...

    Java典型模块

    第1篇 Java开发必备基础 第1章 搭建Java开发环境 1.1 Java的过去、现在和未来 1.1.1 Java的历史 1.1.2 Java的语言特点 1.1.3 Java API简介 1.1.4 Java未来发展 1.2 Java程序设计环境 1.2.1 命令行工具——JDK 6.0 ...

    Spring.3.x企业应用开发实战(完整版).part2

    第11章 使用Spring JDBC访问数据库 11.1 使用Spring JDBC 11.1.1 JDBCTemplate小试牛刀 11.1.2 在DAO中使用JDBCTemplate 11.2 基本的数据操作 11.2.1 更改数据 11.2.2 返回数据库的表自增主键值 11.2.3 批量更改数据...

    Spring3.x企业应用开发实战(完整版) part1

    第11章 使用Spring JDBC访问数据库 11.1 使用Spring JDBC 11.1.1 JDBCTemplate小试牛刀 11.1.2 在DAO中使用JDBCTemplate 11.2 基本的数据操作 11.2.1 更改数据 11.2.2 返回数据库的表自增主键值 11.2.3 批量更改数据...

    javaSE代码实例

    第一篇 起步篇 第1章 初识Java 3 1.1 Java简介 3 1.1.1 Java的不同平台 3 1.1.2 Java发展的历程 3 1.1.3 Java的特点 4 1.2 安装开发工具包 5 1.2.1 下载JDK 5 1.2.2 安装JDK 6 1.2.3 安装后Java...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作典型应用和数据库...

    .Net十大必备工具之一

    从2.0版本开始,NUnit进行了重写和重新设计,使用Attributes代替特定的方法和相应的基类。 6. MyGeneration MyGeneration是一个功能很强大的代码生成工具。通过编写各种类型脚本(C#,VB.Net,JScript,VBScript)的...

    .Net十大必备工具之二

    从2.0版本开始,NUnit进行了重写和重新设计,使用Attributes代替特定的方法和相应的基类。 6. MyGeneration MyGeneration是一个功能很强大的代码生成工具。通过编写各种类型脚本(C#,VB.Net,JScript,VBScript)的...

    Spring面试题

    3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2. ...

    JAVA_API1.6文档(中文)

    java.sql 提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。 java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text ...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--aidl之结合反射获取应用缓存大小等空间占用 |--aidl调用系统service未公开的方法挂电话 |--aidl调用系统未公开的方法代码示例2 |--android dp和px之间转换 |--android INSTALL_PARSE_FAILED_MANIFEST_MALFORMED |...

    java api最新7.0

    java.sql 提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。 java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text ...

    Java 1.6 API 中文 New

    java.sql 提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。 java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text ...

    JAVA面试题最全集

    84.dotnet由哪几个基本框架组成? 85.Oracle中SGA是什么? 86.web servers是什么? 87.UNIX中QT是什么意思? 88.在软件开发生命周期中的哪个阶段开始测试? 89.dotnet与J2EE的比较? 90.什么是ActiveX? 91.Java中...

    [Java参考文档].JDK_API 1.6

    java.sql 提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。 java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text ...

Global site tag (gtag.js) - Google Analytics