Spring整合Hibernate(基础配置)【Lee-Day12-9】

Spring整合Hibernate的优势

通用的资源管理,直接管理Hibernate底层的DataSourceSessionFactory

有效的Session管理

声明式的事务管理。

异常包装。Spring把所有checked异常包装成runtime异常。

(1)导包:如果已经有javassist包会冲突,删掉项目中低版本的javassist包

C3P0的两个jar包

数据库驱动(可以是MySql也可以是Oracle)

(2)在Spring的xml文件里配置Hibernate的数据源(要加载db.properties文件,所以这个文件要放在类路径下)

<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		p:url="${jdbc.url}"
		p:driverClass="${jdbc.driverClass}"
		p:username="${jdbc.username}"
		p:password="${jdbc.password}"
	/>
	<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"
		p:configLocation="classpath:hibernate.cfg.xml"
		p:dataSource-ref="dataSource"/>

sessionFactory底层封装了dataSource,而且hibernate一些相关的信息放在hibernate.cfg.xml中配置

hibernate.cfg.xml文件配置如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
		"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
		"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property><!-- 自动建表 -->
        <mapping class="com.ssh.commons.po.Userpo"/>
    </session-factory>
</hibernate-configuration>

hibernate.cfg.xml文件配置完实体类的映射之后,去实体类中添加注解

@Entity

@Table(name="table_name")

@Id

@Column(name="column_name")

@GeneratedValue(strategy=GenerationType.IDENTITY)[主键自增策略]等

此时,Web应用一启动就会创建Spring容器,创建Spring容器就会执行applicationContext.xml文件里的bean(dataSource和SessionFactory等),在初始化SessionFactory时就会加载hibernate.cfg.xml,就会在hibernate.cfg.xml文件中加载对应的持久化类(反射创建类对象)

如果hibernate.cfg.xml文件中配置的了

<property name="hibernate.hbm2ddl.auto">update</property>就会在数据库创建对应的表(如果不存在此表)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值