当前位置:编程学习 > JAVA >>

用Hibernate实现的JPA如何配置DB2的clientProgramName属性

我现在开发的项目用的是Struts2+Spring+JPA(Hibernate实现)的框架,数据库用的是DB2,本来配置的是com.ibm.db2.jcc.DB2Driver驱动包,后来说是要配置一个clientProgramName属性,我现在换成了com.ibm.db2.jcc.DB2DataSource驱动包,但是我一直不知道怎么用这个框架配置clientProgramName属性,Hibernate默认配置里也没有,求高手指点。下面贴上我的配置文件:
先是persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
version="1.0">

  <persistence-unit name="casdata" transaction-type="RESOURCE_LOCAL">
  
   <provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>

<property name="hibernate.connection.clientProgramName" value="DW_REPORT"/>

<property name="hibernate.dialect" value="org.hibernate.dialect.DB2Dialect"/>
        <!--
<property name="hibernate.connection.driver_class" value="org.gjt.mm.mysql.Driver"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="123456"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/SSJ2?useUnicode=true&characterEncoding=UTF-8"/>
//db2方言
<property name="hibernate.dialect" value="org.hibernate.dialect.DB2Dialect"/>update
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>create
--> 
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="false"/>  
  <property name="hibernate.format_sql" value="false"/>       
  <property name="hibernate.jdbc.fetch_size" value="18"/>
  <property name="hibernate.jdbc.batch_size" value="10"/>
  <property name="hibernate.max_fetch_depth" value="3"/>
 
 
      </properties>
      
  </persistence-unit>
  
</persistence>


对了,persistence.xml文件里的<property name="hibernate.connection.clientProgramName" value="DW_REPORT"/>配置没起作用......


接下来是spring的配置文件bean.xml,其中也有关于数据库的配置:


    <context:property-placeholder location="classpath:jdbc.properties"/>
    
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${driverClassName}"/>
    <property name="url" value="${url}"/>
    <property name="username" value="${username}"/>
    <property name="password" value="${password}"/>
    <property name="initialSize" value="${initialSize}"/>    
    <property name="maxActive" value="${maxActive}"/>      
    <property name="maxIdle" value="${maxIdle}"/>
    <property name="minIdle" value="${minIdle}"/>
   </bean>


最后是jdbc.properties文件用于给bean.xml中${url},${username}等变量赋值:

driverClassName=com.ibm.db2.jcc.DB2DataSource
url=jdbc:db2://192.168.0.122:60000/mfcb
username=mfcb
password=mfcb
initialSize=1
maxActive=100
maxIdle=8
minIdle=1


另外还有个问题,我们的日志记录用的是log4j,工程里有个log4j.properties的文件配置一下就能自动将日志记录到数据库里了(还配置了相应的实体类和表),那个也要加上clientProgramName属性,我也没办法配置成功,求指导。现将log4j.properties的文件内容显示如下:

log4j.appender.JDBC=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.JDBC.driver=com.ibm.db2.jcc.DB2Driver
log4j.appender.JDBC.URL=jdbc:db2://192.168.0.122:60000/mfcb
log4j.appender.JDBC.user=mfcb
log4j.appender.JDBC.password=mfcb
log4j.appender.JDBC.sql=INSERT INTO Log4j (userName,level,message,updateTime) VALUES ('%X{userName}','%p','%m','%d{yyyy-MM-dd HH:mm:ss}')
log4j.appender.JDBC.layout=org.apache.log4j.PatternLayout

hibernate jpa db2 spring log4j
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,