`
kim_miao
  • 浏览: 190663 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用Hibernate与MySQL时遇到的一个问题,记录下来.

    博客分类:
  • ORM
阅读更多
1.错误描述:
警告: SQL Error: 0, SQLState: 08S01
2009-4-13 16:21:23 org.hibernate.util.JDBCExceptionReporter logExceptions
严重: The driver was unable to create a connection due to an inability to establish the client portion of a socket.
This is usually caused by a limit on the number of sockets imposed by the operating system. This limit is usually configurable.
For Unix-based platforms, see the manual page for the 'ulimit' command. Kernel or system reconfiguration may also be required.
For Windows-based platforms, see Microsoft Knowledge Base Article 196271 (Q196271).
2009-4-13 16:21:23 org.hibernate.util.JDBCExceptionReporter logExceptions

2.解决方案:
上述问题是在大批量插入数据的情况下出现的,使用的数据源配置如下:
<bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName">
			<value>com.mysql.jdbc.Driver</value>
		</property>
		<property name="url">
			<value>jdbc:mysql://localhost:3306/test</value>
		</property>
		<property name="username">
			<value>username</value>
		</property>
		<property name="password">
			<value>password</value>
		</property>
</bean>

通过错误信息初步判断是数据库的连接数不够用的,试着换了一下连接池,问题解决:
<bean id="dataSource"
		class="com.mchange.v2.c3p0.ComboPooledDataSource"
		destroy-method="close">
		<property name="driverClass">
			<value>com.mysql.jdbc.Driver</value>
		</property>
		<property name="jdbcUrl">
			<value>jdbc:mysql://localhost:3306/test</value>
		</property>
		<property name="properties">
			<props>
				<prop key="c3p0.minPoolSize">2</prop>
				<prop key="c3p0.maxPoolSize">50</prop>
				<prop key="c3p0.timeout">5000</prop>
				<prop key="c3p0.max_statement">100</prop>
				<prop key="c3p0.testConnectionOnCheckout">true</prop>
				<prop key="user">root</prop>
				<prop key="password">123456</prop>
			</props>
		</property>
	</bean>

至于更深层的原因,有时间继续研究,有新的结果再继续和大家讨论.
分享到:
评论
2 楼 kim_miao 2009-04-14  
魔力猫咪 写道

很正常。因为“DriverManagerDataSource并没有提供连接池的功能,只能作简单的连接测试”。也就是说其实它就是一个JDBC连接,但是表现成一个数据源让你用来测试的。记住下次选Spring组件的时候多看一下说明书。

多谢指导!
1 楼 魔力猫咪 2009-04-13  
很正常。因为“DriverManagerDataSource并没有提供连接池的功能,只能作简单的连接测试”。也就是说其实它就是一个JDBC连接,但是表现成一个数据源让你用来测试的。记住下次选Spring组件的时候多看一下说明书。

相关推荐

    纯净的spring+hibernate+mysql

    【纯净的Spring+Hibernate+MySQL】项目是一个典型的Java Web应用示例,它将Spring MVC、Hibernate ORM框架与MySQL数据库相结合,以实现用户登录、注册等基础功能。在本项目中,Spring MVC作为控制层,负责处理HTTP...

    Spring+Hibernate+MySql的应用实例

    总之,"Spring+Hibernate+MySql的应用实例"是一个典型的Java Web开发示例,涵盖了从数据持久化到业务逻辑处理再到Web展示的完整流程。通过学习和实践这个实例,开发者可以深入了解这些技术的集成使用,提升自己的...

    hibernate下的mysql方面源代码.zip

    在使用Hibernate和MySQL时,可能会遇到如连接异常、查询异常等问题。了解和处理这些异常,是确保程序稳定运行的关键。例如,对SQLException进行捕获并转化为自定义异常,提供友好的错误信息。 9. 实战案例 通过一...

    struts2+hibernate+Mysql开发图书管理系统

    在实际开发过程中,可能会遇到一些小问题,比如SQL语句的优化、Struts2拦截器的配置、Hibernate的懒加载问题等,但这些问题通常不会影响系统的正常运行,通过调试和查阅文档,都可以得到解决。 总的来说,"Struts2+...

    毕业设计论文-IT计算机-网上书城系统(Struts+Hibernate+Mysql)-源码.zip

    4. 测试与调试:描述了对系统进行的功能测试、性能测试,以及在遇到问题时的解决方法。 5. 性能优化:可能涉及了数据库查询优化、页面加载速度提升等方面的技术措施。 6. 系统评价:总结了系统的优势、不足,以及...

    hibernate的所有必备jar包

    这个压缩包的目的是为了方便开发者快速集成Hibernate,避免因缺少依赖而遇到问题。开发者只需要将这些jar包添加到项目的类路径中,就可以开始使用Hibernate进行数据库操作了。对于初学者或需要快速搭建项目的人来说...

    JAVA 开发网上书店(struts+hibernate+css+mysql).zip

    【标题】"JAVA 开发网上书店(struts+hibernate+css+mysql)" 提供的是一种基于Java技术栈实现的在线图书销售平台的项目。这个项目涵盖了多种关键技术和框架,包括Struts作为MVC(模型-视图-控制器)框架、Hibernate...

    MYSQL安装问题&使用大收集

    这篇“MYSQL安装问题&使用大收集”博文中,博主可能详细记录了安装MySQL时遇到的问题及解决方案,以及MySQL的日常使用技巧。由于描述为空,我们只能依据标题和标签来推测可能涵盖的内容。 首先,关于MySQL的安装,...

    hibernate-5.2.10最新jar包

    提供在使用Hibernate过程中可能遇到的问题和解决方法,以及提高开发效率和代码质量的最佳实践。 10. Hibernate与Spring整合: Hibernate常与Spring框架结合使用,Spring的声明式事务管理和DI(依赖注入)可以...

    SSH项目原本使用的sqlserver2005数据库现在改用MySql配置问题修改

    这个异常是Spring框架抛出的,表明在执行数据操作时遇到了资源使用错误,可能是由于SQL语法错误、配置不正确或者数据库连接问题导致。 在这个场景中,异常的根因是嵌套的“org.hibernate.exception....

    个人网上银行系统 jsp+hibernate+struts2+mysql

    个人网上银行系统的开发是一项涉及多技术栈的重要任务,本系统采用jsp、hibernate、struts2和mysql等核心技术构建,旨在提供一个安全、高效、易用的在线金融服务平台。以下将对这些关键技术进行深入解析。 **1. JSP...

    hibernate基础jar包

    7. 异常处理:Hibernate提供了一套自己的异常体系,如HibernateException、ConstraintViolationException等,这些都是在处理数据库操作时可能会遇到的问题。 8. 缓存支持:Hibernate支持二级缓存,可能会包含...

    夏昕.深入浅出Hibernate.zip

    8. 异常处理:在使用Hibernate时,可能会遇到如HibernateException、ConstraintViolationException等异常,了解这些异常的含义及处理方法对于排查问题至关重要。 9. 实战应用:书中通过实际的项目案例,详细展示了...

    SSH中Hibernate所需基本jar包

    SSH(Struts2、Spring、Hibernate)...因此,当遇到与数据库相关的异常或错误时,检查和确认jar包是否完整和正确配置是第一步。通过深入学习这些jar包的功能和作用,开发者可以更好地理解和优化SSH框架下的数据访问层。

    Hibernate Annotation入门

    接下来,我们将逐步创建一个简单的Hibernate Annotation应用。首先,定义一个实体类,比如`User`: ```java @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType...

    Hibernate课程的总结

    Hibernate作为一个强大的对象关系映射(ORM)工具,它简化了数据库与Java对象之间的交互,消除了大量的JDBC代码,提高了开发效率。本总结将围绕Hibernate的核心概念、关键功能和常见用法进行详细阐述。 **一、...

    Struts2+Spring4+Hibernate4框架整合小项目,包含ssh源码及SQL文件(MySQL)

    在实际运行项目时,通常会遇到配置问题,例如类路径错误、数据库连接问题等。解决这些问题需要对Java、Spring、Hibernate和Struts有一定的了解。通过这个项目,初学者可以了解SSH框架的集成过程,学习如何设计和组织...

    struts2+hibernate小项目

    Hibernate是一个持久化框架,它允许开发者使用Java对象来表示数据库中的表,通过ORM将Java对象与SQL语句进行映射。这大大减少了直接编写SQL语句的工作量,使得数据库操作更加直观和简单。Hibernate支持多种数据库,...

    毕业设计论文-IT计算机-项目申报系统(Struts2+Spring+Hibernate+Jsp+Mysql5)-源码.zip

    这篇毕业设计论文主要探讨的是基于Java技术栈的项目申报系统,使用了Struts2、Spring、Hibernate、JSP以及MySQL5这些核心组件。这个系统是一个典型的三层架构应用,包括表现层、业务逻辑层和数据访问层,展示了Java ...

    hibernate in action.pdf

    - **非侵入性**:Hibernate的非侵入性意味着在编写业务逻辑和持久性类时,不必严格遵循Hibernate特定的规则和设计模式,因此可以轻松地与现有和新的应用程序集成,减少对应用其他部分的侵扰。 - **全面的解决方案**...

Global site tag (gtag.js) - Google Analytics