NW.ORM框架使用指南

在开发需要数据库支持的软件时,Java开发者通常会面临一系列重复性的工作,如添加Hibernate依赖、创建实体、配置映射等。NW.ORM框架旨在简化数据库访问,提供一个统一且可重用的实现方法,让开发者能够专注于项目本身。

NW.ORM框架概述

NW.ORM框架使用Hibernate库来处理数据库事务,提供了单一的数据库事务接口,无需多个数据访问对象。它支持在同一个应用中同时操作多个数据库,支持使用Hibernate Criteria、HQL或SQL进行查询,支持基于JPA和HBM文件的配置,并能够返回适当的类对象而无需强制类型转换。

如何使用NW.ORM

要使用NW.ORM框架,首先需要从获取最新版本,并将其依赖添加到项目中。

NW.ORM框架依赖于以下库:

  • Hibernate Framework
  • Neemworks Commons
  • Slf4j Logger

Hibernate和Slf4j的依赖可以从官方网站下载,而Neemworks Commons可以在NW.ORM的SourceForge文件目录中找到。

将NW.ORM的jar文件及其依赖添加到项目的类路径中。设置好类路径后,就可以开始实际使用了。通常,与数据库工作开始于创建必要的实体对象。可以通过扩展REntityIEntity来创建实体,而不是从头开始。

所有实体都必须在Hibernate配置文件中进行映射。如果需要访问多个数据库,可以允许多个配置。下面是一个使用PostgreSQL数据库并映射了4个实体的示例配置文件:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.show_sql">false</property> <property name="hibernate.format_sql">false</property> <property name="use_sql_comments">false</property> <property name="hbm2ddl.auto">update</property> <property name="show_sql">false</property> <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property> <property name="hibernate.connection.driver_class">org.postgresql.Driver</property> <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/**db</property> <property name="hibernate.connection.username">**d**</property> <property name="hibernate.connection.password">*minds</property> <property name="hibernate.c3p0.min_size">5</property> <property name="hibernate.c3p0.max_size">30</property> <property name="hibernate.c3p0.timeout">1800</property> <property name="hibernate.c3p0.max_statements">50</property> <mapping class="com.nw.napi.model.NUser"/> <mapping class="com.nw.napi.model.NimblarClient"/> <mapping class="com.nw.napi.model.AccessToken"/> <mapping class="com.nw.napi.model.ReleaseNotificationRequest"/> </session-factory> </hibernate-configuration>

初始化特定数据库的服务层,需要一个配置文件名,例如hibernate.cfg.xml。需要创建一个REntityManager的实例,如下所示:

REntityManager rm = REntityManager.getInstance("hibernate.cfg.xml");

如果需要多个数据库配置,可以重复上述步骤。以下是使用另一个配置文件text.cfg.xml的代码片段:

REntityManager rmText = REntityManager.getInstance("text.cfg.xml");

REntityManager为所有实体提供了基本的CRUD操作:

RAudit ra = new RAudit(); ra.setSourceMachine("mac"); rm.create(ra); rm.update(ra); rm.remove(ra);

以下是查询数据库的示例方法:

RAudit audit = rm.getByCriteria(RAudit.class, Restrictions.eq("sourceMachine", "mac")); System.out.println(audit.getSourceMachine());

使用HQL查询:

Map parameters = new HashMap(); parameters.put("sa", "mac"); RAudit audit2 = rm.getByHQL("FROM RAudit r where r.sourceAddress = :sa", parameters, RAudit.class); System.out.println(audit2.getSourceMachine());

使用getListxxxxxx方法可以返回列表:

List laudits = rm.getListByCriteria(RAudit.class); List lauditsc = rm.getListByCriteria(RAudit.class, Restrictions.eq("sourceMachine", "mac"), Restrictions.eq("sourceMachinePublic", "mac"));

通过Criteria构建各种查询条件,并将它们传递给get by criteria查询方法。这个方法可以接收任意数量的限制条件:

RAudit audit = rm.getByCriteria(RAudit.class, Restrictions.eq("sourceMachine", "mac"), Restrictions.eq("sourceMachineId", "23-A")); System.out.println(audit.getSourceMachine()); Map parameters = new HashMap(); parameters.put("sa", "mac"); RAudit audit2 = rm.getByHQL("FROM RAudit r where r.sourceAddress = :sa", parameters, RAudit.class); System.out.println(audit2.getSourceMachine());
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485