×
JFinal 摘要

第0章 极速体验Model与Bean

0.1 极速体验 Generator0.2 JFinal相关生成文件0.3 Model 与 Bean 合体

第一章 快速上手

1.1 JFinal创建项目1.2 放入 JFinal 库文件1.3 修改 web.xml1.4 添加 java 文件1.5 JFinal启动项目1.6 开启浏览器看效果1.7 Maven 下开发

第二章 JFinalConfig

2.1 概述2.2 configConstant(Constants me)2.3 configRoute(Routes me)2.4 configPlugin (Plugins me)2.5 configInterceptor (Interceptors me)2.6 configHandler (Handlers me)2.7 afterJFinalStart()与 beforeJFinalStop()2.8 PropKit

第三章 Controller

3.1 概述3.2 Action3.3 getPara 系列方法3.4 getModel 与 getBean 系列方法3.5 setAttr 方法3.6 getFile 文件上传3.7 renderFile 文件下载3.8 session 操作方法3.9 render 系列方法

第四章 AOP

4.1 概述4.2 Interceptor4.3 Before4.4 Clear4.5 Interceptor 的触发4.6 Duang、Enhancer4.7 Inject 拦截器

第五章 ActiveRecord

5.1 概述5.2 ActiveRecordPlugin5.3 Model5.4 JavaBean 与 Model 合体5.5 JFinal 独创 Db + Record 模式5.6 声明式事务5.7 Cache5.8 Dialect 多数据库支持5.9 表关联操作5.10 复合主键5.11 Oracle 支持5.12 多数据源支持5.13 非 web 环境下使用 ActiveRecord

第六章 EhCachePlugin

6.1 概述6.2 EhCachePlugin6.3 CacheInterceptor6.4 EvictInterceptor6.5 CacheKit6.6 ehcache.xml 简介

第七章 RedisPlugin

7.1 概述7.2 RedisPlugin7.3 Redis 与 Cache7.4 非 web 环境使用 RedisPlugin第八章 Validator第九章 国际化第十章 FreeMarker 基础第十一章 JFinal 架构及扩展

5.11 Oracle 支持


Oracle 数据库具有一定的特殊性,JFinal 针对这些特殊性进行了一些额外的支持以方便广 大的 Oracle 使用者。以下是一个完整的 Oracle 配置示例:

public class DemoConfig extends JFinalConfig {
public void configPlugin(Plugins me) { C3p0Plugin cp = new C3p0Plugin(……);
//配置Oracle驱动
cp. setDriverClass("oracle.jdbc.driver.OracleDriver"); me.add(cp);
ActiveRecordPlugin arp = new ActiveRecordPlugin(cp); me.add(arp);
// 配置Oracle方言
arp.setDialect(new OracleDialect());
//  配置属性名(字段名)大小写不敏感容器工厂 arp.setContainerFactory(new CaseInsensitiveContainerFactory()); arp.addMapping("user", "user_id", User.class);
}

由于 Oracle 数据库会自动将属性名(字段名)转换成大写,所以需要手动指定主键名为大写, 如:arp.addMaping(“user”, “ID”, User.class)。如果想让 ActiveRecord 对属性名(字段名)的大 小 写 不 敏 感 可 以 通 过 设 置 CaseInsensitiveContainerFactory 来达到 , 有 了 这 个 设 置 , 则 arp.addMaping(“user”, “ID”, User.class)不再需要了。


另外,Oracle 并未直接支持自增主键,JFinal 为此提供了便捷的解决方案。要让 Oracle 支 持自动主键主要分为两步:一是创建序列,二是在 model 中使用这个序列,具体办法如下:

1:通过如下办法创建序列,本例中序列名为:MY_SEQ

CREATE SEQUENCE MY_SEQ INCREMENT BY 1
MINVALUE 1
MAXVALUE 9999999999999999
START WITH 1
CACHE 20;

2:在 YourModel.set(…)中使用上面创建的序列

// 创建User并使用序列
User user = new User().set("id", "MY_SEQ.nextval").set("age", 18); user.save();
// 获取id值
Integer id = user.get("id");

序列的使用很简单,只需要 yourModel.set(主键名,  序列名 + “.nextval”)就可以了。特别注意这里的  “.nextval”  后缀一定要是小写,OracleDialect 对该值的大小写敏感。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)