包括各种struts的 DataSource的配置方式
源代码在线查看: struts_datasource.txt
spring与hibernate3结合,DataSource的配置方式(一)
在我开发过程中主要用过以下几种配置方式,(连接池用c3p0)
1.dataSource 作为spring的一个bean配置
datasource.xml 文件:
"http://www.springframework.org/dtd/spring-beans.dtd">
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
${Oraclejdbc.driverClassName}
${Oraclejdbc.url}
${Oraclejdbc.username}
${Oraclejdbc.password}
1
2
3
600
100
1200
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
com/ce/myceaas/hibernate/mis/pojo/Area.hbm.xml
com/ce/myceaas/hibernate/mis/pojo/Dept.hbm.xml
com/ce/myceaas/hibernate/mis/pojo/Users.hbm.xml
com/ce/myceaas/hibernate/mis/pojo/Employeeinfo.hbm.xml
com/ce/myceaas/hibernate/mis/pojo/AreaDept.hbm.xml
com/ce/myceaas/hibernate/mis/pojo/Roles.hbm.xml
com/ce/myceaas/hibernate/myce/pojo/Application.hbm.xml
com/ce/myceaas/hibernate/myce/pojo/Role.hbm.xml
com/ce/myceaas/hibernate/myce/pojo/User.hbm.xml
com/ce/myceaas/hibernate/myce/pojo/Userrole.hbm.xml
com/ce/myceaas/hibernate/myce/pojo/Roleprim.hbm.xml
${hibernate.generate_statistics}
${Oraclehibernate.dialect}
${hibernate.show_sql}
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
jdbc.properties 文件:
Oraclejdbc.driverClassName=oracle.jdbc.driver.OracleDriver
Oraclejdbc.url=jdbc:oracle:thin:@172.20.57.52:1521:orcl
Oraclejdbc.username=user
Oraclejdbc.password=password
hibernate.generate_statistics=true
# Property that determines the Hibernate dialect
# (only applied with "applicationContext-hibernate.xml")
#hibernate.dialect=net.sf.hibernate.dialect.HSQLDialect
Oraclehibernate.dialect=org.hibernate.dialect.OracleDialect
hibernate.show_sql=true
1.dataSource 作为hibernate的数据源属性配置
datasource.xml 文件:
"http://www.springframework.org/dtd/spring-beans.dtd">
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
com/ce/myceaas/hibernate/myce/pojo/Application.hbm.xml
com/ce/myceaas/hibernate/myce/pojo/Role.hbm.xml
com/ce/myceaas/hibernate/myce/pojo/User.hbm.xml
com/ce/myceaas/hibernate/myce/pojo/Userrole.hbm.xml
com/ce/myceaas/hibernate/myce/pojo/Roleprim.hbm.xml
org.hibernate.connection.C3P0ConnectionProvider
${Oraclejdbc.driverClassName}
${Oraclejdbc.url}
${Oraclejdbc.username}
${Oraclejdbc.password}
${hibernate.c3p0.min_size}
${hibernate.c3p0.max_size}
${hibernate.c3p0.timeout}
${hibernate.c3p0.max_statements}
${hibernate.c3p0.acquire_increment}
${hibernate.c3p0.idle_test_period}
${hibernate.generate_statistics}
${Oraclehibernate.dialect}
${hibernate.show_sql}
true
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
jdbc.properties 文件:
Oraclejdbc.driverClassName=oracle.jdbc.driver.OracleDriver
Oraclejdbc.url=jdbc:oracle:thin:@172.20.57.52:1521:orcl
Oraclejdbc.username=user
Oraclejdbc.password=password
hibernate.generate_statistics=true
# Property that determines the Hibernate dialect
# (only applied with "applicationContext-hibernate.xml")
#hibernate.dialect=net.sf.hibernate.dialect.HSQLDialect
Oraclehibernate.dialect=org.hibernate.dialect.OracleDialect
hibernate.show_sql=true
hibernate.c3p0.min_size=1
hibernate.c3p0.max_size=3
hibernate.c3p0.timeout=1200
hibernate.c3p0.max_statements=30
hibernate.c3p0.acquire_increment=2
hibernate.c3p0.idle_test_period=60
这两种配置方式的区别是:如果所有的事务都在spring配置的匹配方法中没有问题,如果在spring配置的service外直接调用DAO进行insert或update那么第二种配置方式中如果没有将hibernate.connection.autocommit设置为true,那么虽然可以看到sql语句,但是没有提交,所作的插入或更新无效。
在我开发过程中主要用过以下几种配置方式,(连接池用c3p0)
1.dataSource 作为spring的一个bean配置(jndi方式)
服务器利用tomcat5.5
首先配置tomcat数据源连接池 数据库:mysql
tomcat的数据源连接池有2种方式:1、只作为某个应用的数据源。2、作为全局数据源
第一种数据源配置方式(为本应用配置)
在Context.xml文件中配置如下
name="jdbc/myceaas"
driverClass="com.mysql.jdbc.Driver"
jdbcUrl="jdbc:mysql://127.0.0.1:3306/myceaas?useUnicode=true&characterEncoding=GBK"
user="root" password="admin"
maxPoolSize="10"
minPoolSize="1"
acquireIncrement="1"
idleConnectionTestPeriod="60"
preferredTestQuery="select 1"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
/>
应用中的web.xml
DB Connection
jdbc/myceaas
javax.sql.DataSource
Container
第二种配置方式(作为全局数据源)
tomcat的server.xml
在 下配置如下:
name="jdbc/myceaas"
driverClass="com.mysql.jdbc.Driver"
jdbcUrl="jdbc:mysql://127.0.0.1:3306/myceaas?useUnicode=true&characterEncoding=GBK"
user="root" password="admin"
maxPoolSize="10"
minPoolSize="1"
acquireIncrement="1"
idleConnectionTestPeriod="60"
preferredTestQuery="select 1"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
/>
在Context.xml文件中配置如下
name="jdbc/myceaas"
type="javax.sql.DataSource"
global="jdbc/myceaas"/>
应用中的web.xml
DB Connection
jdbc/myceaas
javax.sql.DataSource
Container
下面是spring的配置:
datasource.xml 文件:
"http://www.springframework.org/dtd/spring-beans.dtd">
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
com/ce/myceaas/hibernate/mis/pojo/Area.hbm.xml
com/ce/myceaas/hibernate/mis/pojo/Dept.hbm.xml
com/ce/myceaas/hibernate/mis/pojo/Users.hbm.xml
com/ce/myceaas/hibernate/mis/pojo/Employeeinfo.hbm.xml
com/ce/myceaas/hibernate/mis/pojo/AreaDept.hbm.xml
com/ce/myceaas/hibernate/mis/pojo/Roles.hbm.xml
true
org.hibernate.dialect.MySQLDialect
true
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
1.dataSource 作为hibernate的数据源属性配置
datasource.xml 文件:
"http://www.springframework.org/dtd/spring-beans.dtd">
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
com/ce/myceaas/hibernate/myce/pojo/Application.hbm.xml
com/ce/myceaas/hibernate/myce/pojo/Role.hbm.xml
com/ce/myceaas/hibernate/myce/pojo/User.hbm.xml
com/ce/myceaas/hibernate/myce/pojo/Userrole.hbm.xml
com/ce/myceaas/hibernate/myce/pojo/Roleprim.hbm.xml
org.hibernate.connection.DatasourceConnectionProvider
java:comp/env/jdbc/myceaas
true
org.hibernate.dialect.MySQLDialect
true
true
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
这两种配置方式的区别是:如果所有的事务都在spring配置的匹配方法中没有问题,如果在spring配置的service外直接调用DAO进行insert或update那么第二种配置方式中如果没有将hibernate.connection.autocommit设置为true,那么虽然可以看到sql语句,但是没有提交,所作的插入或更新无效。