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

我的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. Python——追加学习笔记(一)

    映射.字典 ## 映射类型内建函数 * dict Error: Python核心编程(第二版)p170 >>> dict([['x', 1], ['y', 2]]) {'y': 2, ...

  2. 3.GlusterFS 企业分布式存储的搭建

    3.1 硬件要求 一般选择 2U 机型,磁盘 SATA 盘 4TB,如果 IO 要求比较高,可以采购 SSD 固态硬盘.为了充分保证系统的稳定性和性能,要求所有 glusterfs 服务器硬件配置尽量 ...

  3. June 14th 2017 Week 24th Wednesday

    Love looks not with the eyes, but with the mind. 爱,不在眼里,而在心中. Staring in her eyes and you will find ...

  4. Android进阶笔记13:ListView篇之ListView刷新显示(全局 和 局部)

    一.ListView内容变化后,动态刷新的步骤(全局刷新): (1)更新适配器Adapter数据源:(不要使用匿名内部类) (2)调用适配器Adapter的刷新方法notifyDataSetChang ...

  5. 【转】Activity、Window、View的关系

    1.先看一个现象 1 2 3 4 5 6 7 8 9 10 11 public class MainActivity extends Activity {       @Override     pr ...

  6. Android学习笔记_11_ListView控件使用

    一.界面设计: 1.activity_main.xml文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk ...

  7. An Algorithm for Surface Encoding and Reconstruction From 3D Point Cloud Data

    An Algorithm for Surface Encoding and Reconstruction From 3D Point Cloud Data https://www.youtube.co ...

  8. Java 依赖、关联、聚合和组合

    必须转一个,写的太好了! https://blog.csdn.net/zhengzhb/article/details/7190158

  9. multimap的使用

    multimap由于允许有重复的元素,所以元素插入.删除.查找都与map不同. 插入insert(pair<a,b>(value1,value2)) #include <iostre ...

  10. 小a和uim之大逃离(dp)

    题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...