Spring整合Hibernate.docx

上传人:b****1 文档编号:14703695 上传时间:2023-06-26 格式:DOCX 页数:20 大小:24.51KB
下载 相关 举报
Spring整合Hibernate.docx_第1页
第1页 / 共20页
Spring整合Hibernate.docx_第2页
第2页 / 共20页
Spring整合Hibernate.docx_第3页
第3页 / 共20页
Spring整合Hibernate.docx_第4页
第4页 / 共20页
Spring整合Hibernate.docx_第5页
第5页 / 共20页
Spring整合Hibernate.docx_第6页
第6页 / 共20页
Spring整合Hibernate.docx_第7页
第7页 / 共20页
Spring整合Hibernate.docx_第8页
第8页 / 共20页
Spring整合Hibernate.docx_第9页
第9页 / 共20页
Spring整合Hibernate.docx_第10页
第10页 / 共20页
Spring整合Hibernate.docx_第11页
第11页 / 共20页
Spring整合Hibernate.docx_第12页
第12页 / 共20页
Spring整合Hibernate.docx_第13页
第13页 / 共20页
Spring整合Hibernate.docx_第14页
第14页 / 共20页
Spring整合Hibernate.docx_第15页
第15页 / 共20页
Spring整合Hibernate.docx_第16页
第16页 / 共20页
Spring整合Hibernate.docx_第17页
第17页 / 共20页
Spring整合Hibernate.docx_第18页
第18页 / 共20页
Spring整合Hibernate.docx_第19页
第19页 / 共20页
Spring整合Hibernate.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Spring整合Hibernate.docx

《Spring整合Hibernate.docx》由会员分享,可在线阅读,更多相关《Spring整合Hibernate.docx(20页珍藏版)》请在冰点文库上搜索。

Spring整合Hibernate.docx

Spring整合Hibernate

Spring3整合Hibernate3实现简单的增删改查(XML):

以前我们的代码中是通过hibernate配置文件hibernate.cfg.xml中设置和数据库连接有关的信息:

jdbc....现在可以将这些配置全部放在spring中来进行管理.在我们整合过程之前的hibernate.cfg.xml可以不存在了.

1.Spring中配置数据源的方法:

实例化一个类对象,后面有dao操作有关的代码,可以直接饮用这个dataSource,和连接池有关的参数.

--将四个属性注入到BasicDataSource的对象中去-->

mysql:

//localhost:

3306/spring"/>

以上的写法,value的值都是固定的,硬编码在配置文件中,如果不想修改配置文件.创建一个独立的和数据源配置有关的属性文件.占位符的形式来配置数据源,好处如果数据库有关的配置信息发生改变不需要修改源文件:

PropertyPlaceholderConfigurer

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

--配置文件的位置classpath:

src目录-->

classpath:

jdbc.properties

class="mons.dbcp.BasicDataSource">

--${jdbc.driverClassName}从配置文件jdbc.properties中读取jdbc.driverClassName}对饮的那个value-->

 

2.将其注入到XXDao中:

可通过注解或者是xml形式:

Dao中操作过程中用到数据源,去找谁?

Srping

publicclassUserDaoImplimplementsUserDao{

privateDataSourcedataSource;

publicDataSourcegetDataSource(){returndataSource;}

@Resource(name="dataSource")这里引用datasource是spring中配置好一个bean的信息.

publicvoidsetDataSource(DataSourcedataSource){

this.dataSource=dataSource;}

}

以上是注解的写法,如果改成xml格式?

以上也只是得到一个和连接有关的DataSource而已,.实具体执行的sql代码还是要我们自己写?

正长情况这些东西一定是hibernate帮我们做的.在srping中如何整合hibernate呢?

以前的操作:

1得到一个Configuration=>读取hibernate全局的配置文件

2.得到一个sessionFactory

Spring3整合hibernate3重点就是需要初始化SessionFactory这个bean,需要在Spring的配置文件中进行配置,同时让Spring来管理SessionFactroy,Session,Transaction等,实现实例:

有了上面配置的datasource后就可以将其注入给SessionFactory了:

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

--①定义好的那个datasource注入给LocalSessionFactroyBean的那个属性就可以了->

--②和hibernatemaping有关的信息--->

--在entity中可能有多个映射文件这里提供了一个list-->

com/etc/entity/Users.hbm.xml

<!

-③hibernateProperties主要用来设置数据库方言是否显示sql语句以及ddl--->

org.hibernate.dialect.MySQLDialect

true

true

update

1.新建webProject,增加支持Spring的完整包;

spring-tx-3.2.15.RELEASE.jar

spring-orm-3.2.15.RELEASE.jar

spring-jdbc-3.2.15.RELEASE.jar

spring-expression-3.2.15.RELEASE.jar

spring-core-3.2.15.RELEASE.jar

spring-context-support-3.2.15.RELEASE.jar

spring-context-3.2.15.RELEASE.jar

spring-beans-3.2.15.RELEASE.jar

spring-aop-3.2.15.RELEASE.jar

2.增加Hibernate支持包(参考之前的笔记和项目):

3.其他支持包:

commons-dbcp-1.2.2.jar

commons-pool-1.4.jar

log4j-1.2.17.jar

slf4j-log4j12-1.5.8.jar

mysql-connector-java-5.1.5-bin.jar

增加外部jar支持的原则是,宁可少,根据错误提示增加缺失的包进来;也不要一下子加太多.不能重复添加同名的jar。

4.添加(copy)log4j.properties文件到src目录下:

(可以取少量配置)

###directlogmessagestostdout###

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target=System.out

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE}%5p%c{1}:

%L-%m%n

###directmessagestofilehibernate.log###

#log4j.appender.file=org.apache.log4j.FileAppender

#log4j.appender.file.File=hibernate.log

#log4j.appender.file.layout=org.apache.log4j.PatternLayout

#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE}%5p%c{1}:

%L-%m%n

###setloglevels-formoreverboseloggingchange'info'to'debug'###

log4j.rootLogger=warn,stdout

#log4j.logger.org.hibernate=info

#log4j.logger.org.hibernate=debug

###logHQLqueryparseractivity

#log4j.logger.org.hibernate.hql.ast.AST=debug

###logjusttheSQL

#log4j.logger.org.hibernate.SQL=debug

###logJDBCbindparameters###

#log4j.logger.org.hibernate.type=info

#log4j.logger.org.hibernate.type=debug

###logschemaexport/update###

log4j.logger.org.hibernate.tool.hbm2ddl=debug

###logHQLparsetrees

#log4j.logger.org.hibernate.hql=debug

###logcacheactivity###

#log4j.logger.org.hibernate.cache=debug

###logtransactionactivity

#log4j.logger.org.hibernate.transaction=debug

###logJDBCresourceacquisition

#log4j.logger.org.hibernate.jdbc=debug

###enablethefollowinglineifyouwanttotrackdownconnection###

###leakageswhenusingDriverManagerConnectionProvider###

#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

 

5.新建(copy)jdbc.properties文件,该文件可以在applicationContext.xml中进行读取:

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:

mysql:

//localhost:

3306/testdb

jdbc.username=root

jdbc.password=

 

6.建立实体类:

/**

*实体类

*@authorknowno

*

*/

publicclassUsersimplementsSerializable{

privateintid;

privateStringname;

publicintgetId(){

returnid;

}

publicvoidsetId(intid){

this.id=id;

}

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

}

7.映射文件:

xmlversion="1.0"?

>

DOCTYPEhibernate-mappingPUBLIC

"-//Hibernate/HibernateMappingDTD3.0//EN"

"

--name="属性名"-->

--属性名-->

 

Dao的部分,以后都按照这个标准走,一接口,一对应的实现类;

8.Dao接口:

packagecom.etc.dao;

importjava.util.List;

importcom.etc.entity.Users;

publicinterfaceUserDao{

publicvoidadd(Usersu);

publicvoidupdate(Usersu);

publicListquery();

publicvoiddel(Usersu);

}

9.Dao的实现类:

importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;

在spring的jar中.

在HibernateDaoSupport中有一个HibernateTemplatehibernateTemplate

这个属性去查看他的源码,发现这个类中有很多方法和hibernate中的sessioin接口下的方法非常相似.

在使用hibernateTemplate的时候,要注意需要提供一个SessioNFactory给他.

/**

*Dao实现类

*@authorknowno

*

*/

publicclassUserDaoImplextendsHibernateDaoSupportimplementsUserDao{

publicvoidadd(Usersu){

System.out.println("useradd");

getHibernateTemplate().save(u);

}

publicvoidupdate(Usersu){

System.out.println("userupdate");

super.getHibernateTemplate().update(u);

}

publicListquery(){

System.out.println("userquery");

Queryquery=getSession().createQuery("fromUsers");

returnquery.list();

}

publicvoiddel(Usersu){

System.out.println("userdelete");

super.getHibernateTemplate().delete(u);

}

}

10.简单的实现dao的业务类:

/**

*服务类

*@authorknowno

*

*/

publicclassUserService{

privateUserDaoud;

publicUserDaogetUd(){

returnud;

}

publicvoidsetUd(UserDaoud){

this.ud=ud;

}

publicvoidaddUser(Usersu){

ud.add(u);

}

publicvoidupdateUser(Usersu){

ud.update(u);

}

publicListqueryUser(){

returnud.query();

}

publicvoiddelete(Usersu){

ud.del(u);

}

}

11.增加applicationContext.xml(copy)文件到src目录下:

xmlversion="1.0"encoding="UTF-8"?

>

//www.springframework.org/schema/beans"

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xsi:

schemaLocation="http:

//www.springframework.org/schema/beans

http:

//www.springframework.org/schema/beans/spring-beans-3.0.xsd">

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

classpath:

jdbc.properties

class="mons.dbcp.BasicDataSource">

 

--hibernater的xml方式

再利用hibernateProperties来配置相关属性-->

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

com/etc/entity/Users.hbm.xml

 

org.hibernate.dialect.MySQLDialect

true

true

update

 

 

测试类:

publicclassTestQuery{

publicstaticvoidmain(String[]args){

BeanFactorybf=newClassPathXmlApplicationContext(

"applicationContext.xml");

UserServiceus=(UserService)bf.getBean("us");

/*

*Usersu=newUsers();u.setName("yyyyyy");us.addUser(u);

*/

Listlist=us.queryUser();

for(Usersusers:

list){

System.out.println(users.getId()+","+users.getName());

}

}

}

Spring3整哈Hibernate3事务:

编程式事务管理

Spring的编程式事务管理概述

在Spring出现以前,编程式事务管理对基于POJO的应用来说是唯一选择。

用过Hibernate的人都知道,我们需要在代

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2