当前位置: 首页 > 知识库问答 >
问题:

Spring MVC配置数据源Bean(Spring 3.0、Hibernate、Apache Tomcat、Netbeans)

边永贞
2023-03-14

Netbeans提供了预打包的Spring和Hibernate文件/JARs/Dependecies,这些文件已经设置在正确的目录结构中。

为了在applicationContext中设置数据源bean,我有两个选择

变体#1(使用数据源class=“org.springframework.jdbc.datasource.driverManagerDatasource”,该数据源是用于Spring开发的NetBeans预打包的数据源)

<!-- Declare a datasource that has pooling capabilities-->  
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"    
destroy-method="close"    p:driverClass="com.mysql.jdbc.Driver"    
p:jdbcUrl="jdbc:mysql://localhost:3306/yourmarketnet"   
p:user="root"    
p:password="arya6678"   
p:acquireIncrement="5"    
p:idleConnectionTestPeriod="60"    
p:maxPoolSize="100"    
p:maxStatements="50"    
p:minPoolSize="10" /> 
<!-- Declare the Hibernate SessionFactory for retrieving Hibernate sessions -->   
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">    
<property name="dataSource" ref="dataSource"/>    
<property name="configLocation" ref="classpath:hibernate.cfg.xml"/>    
<property name="packagesToScan" value="com.yourmarketnet.*" />
</bean>

变体2,错误结果:我的应用程序无法运行,Apache Tomcat日志:

变体#2
(使用数据源class=“org.Apache.Commons.dbcp.basicDataSource”)然后我决定下载Apache Commons dbcp jar,并将“commons-dbcp-1.4.jar”添加到我的项目中。

来自ApplicationContext.xml的片段

<!-- Declare a datasource that has pooling capabilities-->  
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"    
destroy-method="close"    p:driverClass="com.mysql.jdbc.Driver"    
p:jdbcUrl="jdbc:mysql://localhost:3306/yourmarketnet"   
p:user="root"    
p:password="arya6678"   
p:acquireIncrement="5"    
p:idleConnectionTestPeriod="60"    
p:maxPoolSize="100"    
p:maxStatements="50"    
p:minPoolSize="10" /> 
<!-- Declare the Hibernate SessionFactory for retrieving Hibernate sessions -->   
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">    
<property name="dataSource" ref="dataSource"/>    
<property name="configLocation" ref="classpath:hibernate.cfg.xml"/>    
<property name="packagesToScan" value="com.yourmarketnet.*" />
</bean>

共有1个答案

韩喜
2023-03-14

p名称空间(p:user,p:password,p:acquireincrement)用于设置java bean的属性。看起来您试图在org.apache.commons.dbcp.basicDataSourceorg.springframework.jdbc.DataSource.DriverManagerDataSource类上设置AcquireIncrement属性。根据这些类的文档(Apache Commons DBCP和Spring的数据源),它们都没有针对该属性的setter方法,这就是您在StackTrace中看到NotWritablePropertyException的原因。

请查看Spring的文档中关于配置的p-名称空间。

如果要选择的话,我会选择Apache的数据库连接池(dbcp)。简单,使用方便。

 类似资料:
  • 我试图创建一个springmvc项目配置与Hibernate使用web.xml 我的问题是,当我运行时,它不会自动创建用户表。 这是我的代码: 文件spring-config.xml 文件web.xml: 文件UserDAO: 文件UserDaoImpl: 文件用户: 这是我的日志:

  • 问题内容: 目前,我正在使用带有@Transactional批注的DriverManagerDataSource来管理事务。但是所有事务都非常非常慢,这可能是因为数据源每次都打开和关闭与db的连接。 我应该使用什么数据源来加快交易速度? 问题答案: 实际上不是连接池,只能用于测试。您应该尝试使用Apache Commons DBCP 。就像是:

  • 配置项说明 schemaName: # 逻辑数据源名称 dataSources: # 数据源配置,可配置多个 <data-source-name> <data-source-name>: # 与 ShardingSphere-JDBC 配置不同,无需配置数据库连接池 url: #数据库 URL 连接 username: # 数据库用户名 password: # 数据库

  • 我正在使用Spring2.x、Spring Data REST、Hibernate5.x、MySQL创建一个服务器REST应用程序。 我按照以下准则配置了多租户:https://dzone.com/articles/spring-boot-hibernate-multitenancy-implementation,唯一的区别是我使用了每个租户一个数据库。 我有一个来创建到DB的连接,还有一个来获取

  • 我在Java应用程序中使用HikariDataSource。我对使用它非常陌生。 这是我的配置: 在这里,我将设置为1。当我运行应用程序时,此连接通常处于空闲状态: 我想弄明白 一秒钟内一个连接可以处理多少个请求。 一个连接是否可以并行接受和处理多个请求,或者其他请求必须等到上一个请求完成? 任何建议都会有所帮助。

  • 本文向大家介绍SpringMVC Mybatis配置多个数据源并切换代码详解,包括了SpringMVC Mybatis配置多个数据源并切换代码详解的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了SpringMVC Mybatis配置多个数据源并切换代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近公司一个项目需要连接两个数据