A. jfinal怎么配置jdbcurl
jfinal本身是带orm映射的,可以用这个框架直接访问数据库,不需要配置jdbc的,你可以网络一下“JFinal学习笔记(一) 在Tomcat下的JFinal环境配置”第一个搜索结果中就详细讲了这个orm映射的配置。如果你一定要用jdbc的话那么就是在你需要链接数据库的地方如controller和jsp中正常配置jdbc就行了,当然你需要引入jdbc的包,这个你也可以网络一下jdbc配置,这个网上文章很多的,很好查的。
B. jfinal如何解决数据库移植的问题
解决方案:
1、HTML静态化
效率最高、消耗最小的就是纯静态化的html页面,所以尽可能使网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,无法全部手动去挨个实现,于是出现了常见的信息发布系统CMS,像常访问的各个门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。
2、图片服务器分离
对于Web服务器来说,不管是Apache、IIS还是其他容器,图片是最消耗资源的,于是有必要将图片与页面进行分离,这是基本上大型网站都会采用的策略,他们都有独立的图片服务器,甚至很多台图片服务器。这样的架构可以降低提供页面访问请求的服务器系统压力,并且可以保证系统不会因为图片问题而崩溃,在应用服务器和图片服务器上,可以进行不同的配置优化,比如apache在配置ContentType的时候可以尽量少支持,尽可能少的LoadMole,保证更高的系统消耗和执行效率。 这一实现起来是比较容易的一现,如果服务器集群操作起来更方便,如果是独立的服务器,新手可能出现上传图片只能在服务器本地的情况下,可以在令一台服务器设置的IIS采用网络路径来实现图片服务器,即不用改变程序,又能提高性能,但对于服务器本身的IO处理性能是没有任何的改变。
C. JFinal中怎么获得当前数据库连接的数据库类型
网页链接
ActiveRecord是作为JFinal的Plugin而存在的,所以使用时需要在JFinalConfig中配置ActiveRecordPlugin。以下是Plugin配置示例代码:
{
publicvoidconfigPlugin(Pluginsme){
DruidPlugindp=newDruidPlugin("jdbc:mysql://localhost/db_name","userName","password");
me.add(dp);
ActiveRecordPluginarp=newActiveRecordPlugin(dp);
me.add(arp);
arp.addMapping("user",User.class);
arp.addMapping("article","article_id",Article.class);
}
}
解析连接地址:如jdbc:mysql://
就知道是mysql
D. 求教JFinal如何连接Informix数据库
打开DbVisualizer软件,点击"Tools"菜单,选择"Connection wizard"选项,进入配置窗口"New Connection Wizard"
在"New Connection Wizard"窗口中,输入一个连接名称,可随意取名,之后点击"Next"
在"Select Database Driver"驱动选择步骤中选择Informix驱动,前提是在DbVisualizer安装目录下的lib目录有ifxjdbc.jar驱动包,没有可在网上下载。点击"Next"
在主设置界面设置数据库信息。从上至下依次为:
Database Userid 数据库连接名,必须设置
Database Passwoed 数据库连接密码,必须设置
Database Server 数据库服务器IP,必须设置
Database Port 数据库服务器端口,必须设置
Database 数据库名,必须设置
Database Server 数据库实例名,必须设置
在上一步的设置窗口中,点击"Ping Server"按钮,测试是否能ping通数据库服务器,测试通过则点击"Finish"完成按钮,失败则检查配置情况
6
配置通过后,在主界面的右侧则会显示出配置的连接,右键选择"Connect"则可连接到配置的数据库
E. jfinal声明式事务怎样配置
5.7 声明式事务
ActiveRecord支持声明式事务,声明式事务需要使用ActiveRecordPlugin提供的拦截器来实现,拦截器的配置方法见Interceptor有关章节。以下代码是声明式事务示例:
//本例仅为示例,并未严格考虑账户状态等业务逻辑
@Before(Tx.class)
publicvoidtrans_demo(){
//获取转账金额
IntegertransAmount=getParaToInt("transAmount");
//获取转出账户id
IntegerfromAccountId=getParaToInt("fromAccountId");
//获取转入账户id
IntegertoAccountId=getParaToInt("toAccountId");
//转出操作
Db.update("updateaccountsetcash=cash-?whereid=?",
transAmount,fromAccountId);
//转入操作
Db.update("updateaccountsetcash=cash+?whereid=?",
transAmount,toAccountId);
}
以上代码中,仅声明了一个Tx拦截器即为action添加了事务支持。除此之外ActiveRecord还配备了TxByActionKeys、TxByActionKeyRegex、TxByMethods、TxByMethodRegex,分别支持actionKeys、actionKey正则、actionMethods、actionMethod正则声明式事务,以下是示例代码:
publicvoidconfigInterceptor(Interceptorsme){
me.add(newTxByMethodRegex("(.*save.*|.*update.*)"));
me.add(newTxByMethods("save","update"));
me.add(newTxByActionKeyRegex("/trans.*"));
me.add(newTxByActionKeys("/tx/save","/tx/update"));
}
上例中的TxByRegex拦截器可通过传入正则表达式对action进行拦截,当actionKey被正则匹配上将开启事务。TxByActionKeys可以对指定的actionKey进行拦截并开启事务,TxByMethods可以对指定的method进行拦截并开启事务。
注意:MySql数据库表必须设置为InnoDB引擎时才支持事务,MyISAM并不支持事务。
网页链接
F. jfinal如何动态加载数据库配置
独立使用ActiveRecord
ActiveRecordPlugin可以独立于java web 环境运行在任何普通的java程序中,使用方式极度简单,相对于web项目只需要手动调用一下其start() 方法即可立即使用。以下是代码示例:
publicclassActiveRecordTest{
publicstaticvoidmain(String[]args){
DruidPlugindp=newDruidPlugin("localhost","userName","password");
ActiveRecordPluginarp=newActiveRecordPlugin(dp);
arp.addMapping("blog",Blog.class);
//与jfinalweb环境唯一的不同是要手动调用一次相关插件的start()方法
dp.start();
arp.start();
//通过上面简单的几行代码,即可立即开始使用
newBlog().set("title","title").set("content","cxttext").save();
Blog..findById(123);
}
}
注意:ActiveRecordPlugin所依赖的其它插件也必须手动调用一下start()方法,如上例中的dp.start()。网页链接
把上面代码写在Controller中,动态请求,进行管理即可:参考代码:网页链接
G. jfinal怎么连接数据库操作
先创建个jdbc.properties在里面写上连接数据库的信息
H. JFinal 如何将操作日志存入到数据库中
操作日志,也分粗细颗粒.
比如常见的 配置JFinal的Handler,配置LogHandler的处理器,Handler可以接管所有web请求,这里可以做粗颗粒的处理,对每一个请求做入库处理,如果访问量大时,入库操作做列队处理就可以了.
细颗粒的,如在JAVA代码中的Loglog = Log.getLog("JAVA类描述或类名");
这个一般做入库的还是少,毕竟已经有很成熟的日志分析查看工具了,可以直接查文件了.
如果业务需要做这个,那也很简单:
1:需要实现一个接口ILogFactory :
/**
*JdkLogFactory.
*/
{
publicLoggetLog(Class<?>clazz){
returnnewDbLog(clazz);
}
publicLoggetLog(Stringname){
returnnewDbLog(name);
}
}
2: DbLog参考jfinal代码中 com.jfinal.log.Log4jLog 把这个类复制一下,在每个方法中增加一个入库的操作,当然量大时,入库操作做列队处理就可以了.
3:在JFinalConfig中:
@Override
publicvoidconfigConstant(Constantsme){
//先启动数据库
ActiveRecordPlugin可以独立于javaweb环境运行在任何普通的java程序中,使用方式极度简单,相对于web项目只需要手动调用一下其start()方法即可立即使用。
//设置为你的工厂DbLogFactory
me.setLogFactory(newDbLogFactory());
}