12 数据库 00 相关 Java 类介绍
作者:谎言诞行    发布时间:2024年11月18日

1、简要说明

        从这章开始,我们就要介绍工具包(pdc-common-tool)中关于数据库的处理。由于数据库相关内容比较多,所以我们这里先介绍关于数据库处理的一些Java类。这些Java类在后面的文章中,将会逐步讲解使用。现在我们先大致了解下它们具体有哪些内容。按照功能上区分,主要有以下几大类:数据注解、数据模型、数据操作工具、数据处理工具。

2、数据注解

        在工具包中,Java 注解暂时有7个,分别为:

        MyTableOrView 用于标记java类映射到哪个数据库表或者视图。

        MyVirtualEntity 用于标记一种虚拟的数据库到java类的映射。当需要把一些临时性的sql语句查询结果,映射到一个对象时,就可以用这个注解。

        MyIdGroup 这个注解用于标记表或者视图的唯一字段组(可以是一个字段,也可以是多个字段)。如果要标记多个字段,在每个字段对应的属性上面,添加这个注解即可。

        MyAutoIncrement 用于标记java类中,哪个属性对应的字段是自增长的。自增长的字段,在构造insert sql语句时,会忽略掉。

        MyColumn 用于标记java类中,属性映射到哪个数据库表或者视图的哪个字段。

        MyColumnIgnore 这个注解用于忽略某些类的属性,因为有些类的属性可能不属于数据库,数据库语句并没有这内容。

        MyColumnReadOnly 这个注解用于标记哪些列是只读的。因为,有些数据库列不能通过insert、update语句 设置值,数据库默认会设置这些值。比如:sql server 的 timestamp类型的列,直接设置值会报错,只能由数据库自己处理。这个注解要区别于:MyAutoIncrement 和 MyColumnIgnore。

        这些注解主要功能在于,标记实体类和数据库表、视图的一种依赖关系。在Java程序与数据库交互时,实体类和数据库表进行ORM映射转换会需要注解上的某些信息。

2.1、注解使用举例

        在实际开发中,实体映射一般都是通过工具生成的,大家了解每个注解的意思即可。下面我们看看一个具体的实体使用举例:

image.png

3、数据模型

        数据模型的划分上,主要分为3类:通用对象模型、事务处理模型、查询模型。下面我们简单介绍下:

3.1、通用对象模型

        DatabasePoolManager 一个数据库连接池管理类,通常用于管理多个数据连接池的创建、销毁等工作。该类是整个数据库处理的基础。在首次调用时,会遍历所有可用配置文件,然后按照配置文件创建不同的数据库连接池。

        SimpleDBData 一个简单的数据库查询结果对象。它主要用于接收数据库语句执行后的返回结果。它内部封装了一些属性,用于接收数据库返回的元数据(metadata)信息。另外,它还封装了2个消息对象,用于接收数据库返回的异常信息。

3.2、事务处理模型

        DBTrans 数据库事务处理接口,用于规范事务处理的业务代码;接口只有一个run函数 作为 程序入口。

        DBTransAction 数据库事务相关的操作抽象类,它实现了 DBTrans 接口 。建议具体的数据库业务处理类,使用这个类作为父类。

        在数据库事务的处理上,为了统一处理方式,工具包中定义了一个Java接口 DBTrans 。由于事务处理的逻辑大体上一致,所以我封装了一个 Java 的抽象类 DBTransAction 来简化操作。在处理数据库事务上,业务类继承这个抽象类,并实现类中的抽象方法 doTrans 即可。

3.3、查询模型

        CondiParam 查询对象类,用于构造查询字段sql语句。查询对象一般是针对单个字段处理的。创建 CondiParam 对象后,放入 CondiParamList 中等待查询调用。

        CondiParamList 一个关于查询条件的列表(如果不指定数据库类型,默认为 MySQL)。

        OrderParam 排序对象,用于构造排序字段sql语句。排序对象一般是针对单个字段处理的。创建 OrderParam 对象后,放入 OrderParamList 中等待查询调用。

        OrderParamList 排序对象列表,用于构造排序字段sql语句。

        PageInfo 分页查询数据时的分页对象类。pageNum 和 pageSize 有默认值。

        ProcParam 存储过程执行的参数类。

        ProcParamList 存储过程执行的参数列表。

        以上这些Java工具类,都是在Java对象和数据库做ORM映射时使用的。在后面的章节,介绍存储过程调用、以及 ORM 查询时会有更详细的使用说明。

4、数据操作工具

        DBStaticUtil 数据库操作的静态工具类。它是整个数据库处理的关键类。所有数据库操作皆由其封装。调用时,需要外部传入一个数据库连接对象(java.sql.Connection)。在使用带有事务处理的逻辑时,需要调用这个静态类来完成数据库操作。事务的提交与回滚交给外部的连接对象。

        DBOperator 一个数据库操作工具类,包括简单的增、删、改、查操作 和 存储过程、函数 的调用操作。它内部的是使用 DBStaticUtil 类封装实现的。类内部每一个调用方法,都是事务独立的(单独提交或者回滚)。

        以上2个类,在后续的文章中会有详细演示说明。

5、数据处理工具

        DBSQLInjectionUtil 数据库Sql语句防注入处理工具类。主要负责查询语句的注入防护。

        DBStrUtil 一个与数据库相关的字符串工具类。它主要处理实体类中,数据库字段、表、视图名 到 Java属性、类名的字符转换处理。对于这个工具类,目前只能处理一般的命名方式比如字母、数字这些。如果有些特殊的命名,比如名字以下划线开头或者其它特殊字符,这个类是处理不了的。

        DBValidUtil 数据库操作中的参数校验类。用于数据库操作在执行之前的信息校验。

        

        本章节完结

填写一种颜色的字符(不区分大小写),1分钟有效,点击图片刷新