怎样单独使用JFinal的activeRecord进行数据库 *** 作

怎样单独使用JFinal的activeRecord进行数据库 *** 作,第1张

public static void main(String[] args) throws Exception {

C3p0Plugin c3p0Plugin = new C3p0Plugin(

"jdbc:oracle:thin:@192.168.1.89:1521:orcl", "test", "test")

c3p0Plugin.setDriverClass("oracle.jdbc.driver.OracleDriver")

Record record = new Record()

record.set("id", "111111")

Db.save(c3p0Plugin.getDataSource(), "tb_test", record)

}

比如这段代码,运行有报错.

Exception in thread "main" com.jfinal.plugin.activerecord.ActiveRecordException: java.lang.NullPointerException

at com.jfinal.plugin.activerecord.Db.save(Db.java:655)

at com.jfinal.plugin.activerecord.Db.save(Db.java:665)

at com.hzjrd.writerDb.JFinalTest.main(JFinalTest.java:20)

Caused by: java.lang.NullPointerException

at com.jfinal.plugin.activerecord.Db.save(Db.java:652)

*** 作日志, 也分粗细颗粒.

比如常见的 配置JFinal的Handler, 配置LogHandler的处理器,Handler可以接管所有web请求, 这里可以做粗颗粒的处理, 对每一个请求做入库处理, 如果访问量大时, 入库 *** 作做列队处理就可以了.

细颗粒的, 如在JAVA代码中的 Log log = Log.getLog("JAVA类描述或类名")

这个一般做入库的还是少, 毕竟已经有很成熟的日志分析查看工具了, 可以直接查文件了. 

如果业务需要做这个, 那也很简单:

1: 需要实现一个接口ILogFactory :

/**

 * JdkLogFactory.

 */

public class DbLogFactory implements ILogFactory {

public Log getLog(Class<?> clazz) {

return new DbLog(clazz)

}

public Log getLog(String name) {

return new DbLog(name)

}

}

2: DbLog 参考jfinal代码中 com.jfinal.log.Log4jLog  把这个类复制一下, 在每个方法中增加一个入库的 *** 作, 当然量大时, 入库 *** 作做列队处理就可以了.

3: 在JFinalConfig中:

@Override

public void configConstant(Constants me) {

        //先启动数据库

        ActiveRecordPlugin可以独立于java web 环境运行在任何普通的java程序中,使用方式极度简单,相对于web项目只需要手动调用一下其start() 方法即可立即使用。

        

        //设置为你的工厂 DbLogFactory

me.setLogFactory(new DbLogFactory())

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6631808.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存