先创建jdbcproperties 面写连接数据库信息 图" class="ikqb_img_alink"> 通PropKitget("xxxx")取 图" class="ikqb_img_alink"> 写jdbcproperties 直接连接数据库所需参数写进
先说jfinal 有哪些事务处理方式:
1、声明式事务
ActiveRecord支持声明式事务,声明式事务需要使用ActiveRecordPlugin提供的拦截器来实现,拦截器的配置方法见Interceptor有关章节。仅声明了一个Tx拦截器即为action添加了事务支持。除此之外ActiveRecord还配备了TxByActionKeys、TxByActionKeyRegex、TxByMethods、TxByMethodRegex,分别支持actionKeys、actionKey正则、actionMethods、actionMethod正则声明式事务,TxByRegex拦截器可通过传入正则表达式对action进行拦截,当actionKey被正则匹配上将开启事务。TxByActionKeys可以对指定的actionKey进行拦截并开启事务,TxByMethods可以对指定的method进行拦截并开启事务。特别注意:声明式事务默认只针对主数据源进行回滚,如果希望针对 “非主数据源” 进行回滚,需要使用注解进行配置
2、Dbtx 事务
除了声明式事务以外,还可以直接使用代码来为一段代码添加事务,以下是示例代码:
Dbtx(new IAtom() {public boolean run() throws SQLException {
Dbupdate("update t1 set f1 = ", 123);
Dbupdate("update t2 set f2 = ", 456);
return true;
}
});
以上代码中的两个 Dbupdate 数据库 *** 作将开启事务。Dbtx 做事务的好处是控制粒度更细,并且可以通过 return false 进行回滚,也即不必抛出异常即可回滚。
与声明式事务一样,Dbtx 方法默认针对主数据源进行事务处理,如果希望对其它数据源开启事务,使用 Dbuse(configName)tx() 即可。
注意:MySql数据库表必须设置为InnoDB引擎时才支持事务,MyISAM并不支持事务。
也就是说如果你需要使用Db等工具 *** 作数据库, 那么jfinal 自己的事务处理已经满足需要
如果使用的是Spring系数据库 *** 作工具, 那么就直接使用spring事务就可以了, 不存在引入一说了 如果说的是项目启动时需要启动相应工具的话:
在 JFinalConfig 继承类中可以添加 afterJFinalStart() 与 beforeJFinalStop(),JFinal 会在系统启动完成之后以及系统关闭之前分别回调这两个方法, 或者在configPlugin()此方法用来配置JFinal的Plugin
jfinal 项目定位于 MVC + ORM 框架,所以暂时没有添加 dump 之类的功能,否则 jfinal 自身会越来越膨胀,建议大家以扩展的方式完善周边工具,形成一个生态系统
在
jfinal 基础之上开发数据库备份工具也很容易的,jfinal 提供了便利的 Db + Record 模式可以很容易地得到数据,然后
Dbuse() 即可切换数据源,最后再 Dbuse()save(record) 即可备份到新的数据源
如果是 dump 到外部文件,也可以通过 Db + Record 很容易地实现,如果你扩展出这样的工具,希望能分享给社区其他朋友
你是想实现如net中的过滤器的效果吗,用Interceptor接口可以实现,具体可以百度一下“JFinal学习笔记(三) 过滤器实现用户登录验证”,检索的第一条结果就是,里面详细讲述了过滤器实现的方法。
按照jfinal手册配置redis插件猛报错,是依赖那些jar包
@Overrideprotected void onHandleIntent(Intent intent) {
// 经测试,IntentService里面是可以进行耗时的 *** 作的
//IntentService使用队列的方式将请求的Intent加入队列,然后开启一个worker thread(线程)来处理队列中的Intent
//对于异步的startService请求,IntentService会处理完成一个之后再处理第二个
Systemoutprintln("onStart");
try {
Threadsleep(20000);
} catch (InterruptedException e) {
eprintStackTrace();
}
Systemoutprintln("睡眠结束");
}
}
现在常用的开源数据库连接池主要有c3p0、dbcp、proxool三种,其中:
Spring 推荐使用dbcp;
Hibernate 推荐使用c3p0和proxool;
1、 DBCP:apache
DBCP(DataBase connection pool)数据库连接池。是apache上的一个 java连接池项目,也是 tomcat使用的连接池组件。单独使用dbcp需要3个包:common-dbcpjar,common-pooljar,common-collectionsjar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。dbcp没有自动的去回收空闲连接的功能。
2、 C3P0:
C3P0是一个开源的jdbc连接池,它实现了数据源和jndi绑定,支持jdbc3规范和jdbc2的标准扩展。c3p0是异步 *** 作的,缓慢的jdbc *** 作通过帮助进程完成。扩展这些 *** 作可以有效的提升性能。目前使用它的开源项目有Hibernate,Spring等。c3p0有自动回收空闲连接功能。
3、 Proxool:Sourceforge
Proxool是一种Java数据库连接池技术。是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。
对比:
1> 相同时间内同等量的线程数和循环次数下:通过对三个连接池的三个标志性性能测试参数(Average,median,90%Line)进行比较发现:性能dbcp<=c3p0<proxool;
2> 不同情况下的同一数据库连接池测试:通过观察 Average,median,90%Line三个参数发
现三个连接池的稳定性(三种连接池的三个测试参数的变化情况)依次:稳定性dbcp>=c3p0>proxool。
结论:
通过对三种数据库连接池的性能测试发现,proxool和 c3p0能够更好的支持高并发,但是在稳定性方面略逊于 dpcp;
jfinal 对 druid 的登录与权限支持,不用修改 webxml,直接在 YourJFinalConfig 的
configHandler 中添加DruidStatViewHandler,并为其指定IDruidStatViewAuth 实现类即可:
public void configHandler(Handlers me) {
DruidStatViewHandler dsvh = new DruidStatViewHandler("visitPath",
new IDruidStatViewAuth(){
public boolean isPermitted(>
以上就是关于jfinal怎么样去连接远程mysql数据库全部的内容,包括:jfinal怎么样去连接远程mysql数据库、你使用jfinal怎么引入spring事务、JFinal中有没有提供数据库备份工具类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)