首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

log4j+JDBC+mySQL 将对象写下数据库

2012-09-21 
log4j+JDBC+mySQL 将对象写入数据库??? 一、写前唠叨????? 最近写了一个关于将对象通过log4j的形式保存到数

log4j+JDBC+mySQL 将对象写入数据库

??? 一、写前唠叨

????? 最近写了一个关于将对象通过log4j的形式保存到数据库的例子,因对这个log4j正在入门,所以做之前查过很多资料,不过网上的信息比较简单,如下:

??? 1.所有信息几乎全部在配置文件中进行获取,如:数据库相关的连接、用户名、密码、sql语句;日志相关的appender、输出、格式化、参数;

??? 2.写到数据库中的仅是一个字符串而不是一个对象,如:将一个对象本身以及它的各个数据作为一条记录存到数据库

??? 3.代码的灵活性较低,如:只能存比较简单的数据类型,如保存一个对象及属性的话,就不太容易做了。

? 当然,网上的这些资料当然是为了最基础的入门而做的,因此简单了些,但也不乏比较深奥的资料,比如穿件连接池,考虑缓存等等。。

?? 二、我的做法

???? 1.通过继承JDBCAppender实现日志的写入的

???? 2.通过JDBC连接数据库(也可通过HIBERNATE)

???? 3.数据库和log4j的基本信息配置到properties中,但数据库可以自由选择多种数据库(在配置文件中配置即可)

???? 4.将对象的属性存到库中

?? 三、项目例子

???? 1.项目结构图:见附件,项目结构图.png

???? 2. 数据库:MYSQL? 库名:LOG4J? 表名:LogMessage/StudentMessage

???????? 表结构请看附件:LogMessage.png/StudentMessage.png

???? 3.代码及说明

???? log4j.properties:分别输出指定为:控制台、文件(log.log)、数据库

?

??? Bean包中的类——HashMapping.java:将属性设置成常量(即键-值对中的键),便于代码中进行键值对的读取。

?

?Dao中的包——StudentsUtil.java/UserUtil.java:对各自的表进行数据库的操作

?

package test;import java.lang.reflect.InvocationTargetException;import org.apache.log4j.Logger;import org.apache.log4j.MDC;import org.apache.log4j.PropertyConfigurator;import org.apache.log4j.jdbc.JDBCAppender;import org.omg.CORBA.Request;import dao.GetObject;import bean.Students;import bean.UserBean;public class Test {public static void main(String[] args) {Test dbt = new Test();dbt.testUser();}public void testUser() {try {GetObject go = new GetObject();UserBean ub = go.insertInfo("EE-YY", "YY-12345");go.getMethod(ub);// Students st = go.insertInfo("YY", 21, 2);// go.getMethod(st);} catch (SecurityException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

?结果见附加:stuM.png/logM.png

?

?

?

热点排行