以下为入门级别代码,高手请务见笑~

我的MyEclipse 上spring最高版是3.* 而hibernate 最高版本是4.*     在做项目时用的都是最高版,于是代码写好之后调试报了个异常,居然说spring 3.*与hibernate 4.* 某个地方不兼容!!推荐使用spring3.*+hibernate3.* 搭配!!于是就只能新建java项目重新贴代码~

由于之前的hibernate 4.* 访问mysql5.* 方言需要设成(org.hibernate.dialect.MySQLInno5DBDialect),换成hibernate3.* 之后方言也需要改成(org.hibernate.dialect.MySQLInnoDBDialect),spring中配置的bean类全名都需要进行相应的调整。

另:项目除了由myEclipse自动添加spring与hibernate引用,还需要单独引用个jar包(hibernate-jpa-2.0-api-1.0.1.Final.jar), http://zhidao.baidu.com/share/d7e7d8f60fc44a127ba702d43e71abec.html

OK,上面己将我记的坑写明了。现在开始贴代码了。

我的项目是参考IBM官网上的Demo改改调调。IBM网页:https://www.ibm.com/developerworks/cn/java/wa-spring2/

我的项目就是拿IBM上面在本地重新搭建,部分配置手工写写,写上自己的理解。

本地工程结构

那些java 基本都是直接拿来用,重点是配置文件的配置。

配置文件分两种,*.hbm.xml与*.xml   *.hbm.xml为数据表映射文件;*.xml为spring 的bean配置核心。

*.hbm.xml就不说了,它是hibernate的基础.多对一,多的一方配置处理了属性另再加个标签<many-to-one>。一的一方,配置处理了属性另再加个标签<set>

来看看我的 applicationContext.xml 吧

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd" xmlns:tx="http://www.springframework.org/schema/tx"> <!-- definition data source -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="url" value="jdbc:mysql:///test"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean> <!-- definition sessionFactory object -->
<bean id="sessionFactoryBean"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>
<prop key="hibernate.query.substitutions">true 'T', false 'F'</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.c3p0.minPoolSize">5</prop>
<prop key="hibernate.c3p0.maxPoolSize">20</prop>
<prop key="hibernate.c3p0.timeout">600</prop>
<prop key="hibernate.c3p0.max_statement">50</prop>
<prop key="hibernate.c3p0.testConnectionOnCheckout">false</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>jackicalHibernate/Customer.hbm.xml</value>
<value>jackicalHibernate/Account.hbm.xml</value>
</list>
</property>
</bean> <!-- definition transaction manager object -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactoryBean" />
</bean> <!-- after this setting is Bean setting by author:jackical Datetime:2015-05-13 -->
<!-- Pass the session factory to our UserDAO -->
<bean id="customerDAOTarget" class="jackicalHibernate.CustomerDAOImpl">
<property name="sessionFactory"><ref local="sessionFactoryBean"/></property>
</bean> <bean id="userDAO"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager"><ref local="transactionManager"/></property>
<property name="target"><ref local="customerDAOTarget"/></property>
<property name="transactionAttributes">
<props>
<prop key="addCustomer">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean> <tx:annotation-driven transaction-manager="transactionManager" /> </beans>

分别来看看:

dataSource:定义数据访问基础信息(你看成数据库链接信息)。

sessionFactoryBean:hibernate打开前需要先申明sessionFactory 对像。

transactionManager:使用申明的sessionFactory 对像,打开事务管理器。

customerDAOTarget:使用Bean申明一个impl对象(数据操作实例)

userDAO:spring中对hibernate的事务的操作是使用aop来做的。见:http://uule.iteye.com/blog/893890

参考资料:

IBM一手资料  https://www.ibm.com/developerworks/cn/java/wa-spring2/

缺失jar包下载  http://zhidao.baidu.com/share/d7e7d8f60fc44a127ba702d43e71abec.html

事务介绍  http://uule.iteye.com/blog/893890

MyEclipse 上使用sping+hibernate+mysql的更多相关文章

  1. JSP+Spring+SpringMVC+Hibernate+Mysql实现的校园失物招领网站

    项目简介 项目来源于:https://github.com/wenlongup/LostAndFound 因原github仓库无数据库文件,经过本人修改,现将该仓库重新上传至个人gitee仓库. ht ...

  2. 如何在MyEclipse上添加更换JRE

    如何在myeclipse上添加更换JRE 由于兼容性的问题,有些WEB项目会依赖jdk的版本.如果需要更换jdk,那么,知道如何更换JRE的方法很有必要. 一种在myeclipse上添加和更换JRE的 ...

  3. 如何在一台服务器上安装两个mysql或者更多

    如何在一台服务器上安装两个mysql 1       前言 上篇写了在一台机器上源码编译安装一个mysql,那么如何在一台机器上源码编译安装两个mysql或者更多呢? 2       环境 mysql ...

  4. (转)如何在Windows上安装多个MySQL

    原文:http://www.blogjava.net/hongjunli/archive/2009/03/01/257216.html 如何在Windows上安装多个MySQL 本文以免安装版的mys ...

  5. 【转载】Myeclipse如何自动创建hibernate

    Myeclipse如何自动创建hibernate:http://jingyan.baidu.com/article/456c463b99f4370a583144a8.html An internal ...

  6. [Linux] Ubuntu Server 12.04 LTS 平台上搭建WordPress(Nginx+MySql+PHP) Part II

    接着上一节继续搭建我们的LNMP平台,接下来我们安装PHP相关的服务 sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5- ...

  7. [Linux] Ubuntu Server 12.04 LTS 平台上搭建WordPress(Nginx+MySQL+PHP) Part IV

    接下来我们去下载 WorePress 用最新的 3.7.1 下载地址是:http://cn.wordpress.org/wordpress-3.7.1-zh_CN.zip 我们先建立一个文件夹 /va ...

  8. 【转】myeclipse 上安装 Maven3

    [转]myeclipse 上安装 Maven3 环境准备: JDK 1.6 Maven 3.0.4 myeclipse 8.6.1 安装 Maven 之前要求先确定你的 JDK 已经安装配置完成.Ma ...

  9. 如何在一台机器上安装两个MYSQL数据库

    1.正常安装第一个mysql(安装步骤省略) 2.在控制面板里停止第一个mysql服务 3.将C:\Program Files\MySQL目录下的所有目录和文件copy到另外一个路径,我这里是copy ...

随机推荐

  1. 把web项目改造为maven项目

    如题,资料网上有一大堆,这里是实践了做个整理. [注意]maven配置 maven要运行在JDK:外部JAVA_HOME指定到JDK,eclipse中runtime指定到JDK 在eclipse中配置 ...

  2. 常用的shell语句 【awk】去重,排列

    目的:从日志access.log中,筛选出IP来,并统计每个IP出现的次数,然后显示出来. 因为:awk = 扒IP  shot = 排序  uniq =  去重 所以:awk '{print $1} ...

  3. 转贴:天然VC的迷局

    天然VC的迷局作者:棱子 http://www.jkzgr.net/jiankangguanli/176.html 维生素C对人类来说是一种必不可少的维生素.我们可以通过正常饮食获取所需的VC.市场上 ...

  4. May 13th 2017 Week 19th Saturday

    Mountains look beautiful from a distance. 远处看山山更美. This gnomic seems to circulate very long, its mor ...

  5. ZT在谷歌上班感受如何?

    在谷歌上班感受如何? 2013-11-05 作者:腾讯科技 出处: 互联网 责编:zlu     在谷歌这家全球最大最有抱负的技术公司工作将是怎样的情景呢?是天堂般的享受,还是地狱般的折磨呢?下面看一 ...

  6. 如何将BSP应用配置成Fiori Launchpad上的一个tile

    当我们通过WebIDE或者Eclipse的插件Team Provider把一个本地开发好的UI5应用部署到了ABAP Netweaver服务器上之后,我们可以将该UI5应用配置成Fiori launc ...

  7. 动态规划(DP),压缩状态,插入字符构成回文字符串

    题目链接:http://poj.org/problem?id=1159 解题报告: 1.LCS的状态转移方程为 if(str[i-1]==str[j-1]) dp[i][j]=dp[i-1][j-1] ...

  8. 动态规划(DP),递推,最大子段和,POJ(2479,2593)

    题目链接:http://poj.org/problem?id=2479 解题报告: 1.再求left[i]的时候,先没有考虑a[i]的正负,先把a[i]放到left[i]中,然后left=max(le ...

  9. [19/03/20-星期三] 常用类_Enum(枚举)类

    一.概念(JDK 1.5之后才有的类) 所有的枚举(英语:enumeration) 类型隐性地继承自 java.lang.Enum.枚举实质上还是类,而每个被枚举的成员实质就是一个枚举类型的实例,他们 ...

  10. HTTP请求方式中8种请求方法(简单介绍)

    简单介绍 HTTP是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范.HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端使用的端口是动态分配的.当我们没有指定端口访问时,浏览器会 ...