欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

S2SH整合以及图片上传(2)之hibernate搭建(1)

程序员文章站 2022-07-14 23:42:23
...

    接下来,我们对原来的项目进行hibernate框架的添加。

    由于此时,我们用的S2SH,所以,hibernate就被spring给接管了,只需在spring配置文件applicationContext.xml中进行配置即可。

    话不多说,具体流程操作如下。

    第一步,在新建的web项目的/TestUpload/WebRoot/WEB-INF/lib目录中,粘贴如下图所示的hibernate的开发jar包:

    S2SH整合以及图片上传(2)之hibernate搭建(1)

    当然了,有对数据库的操作,自然少不了mysql连接包啦。

    在新建的web项目的/TestUpload/WebRoot/WEB-INF/lib目录中,粘贴如下图所示的mysql的开发jar包:

    S2SH整合以及图片上传(2)之hibernate搭建(1)

    第二步,在spring配置文件applicationContext.xml中配置数据源:  

<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
	    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
	    <property name="url" value="jdbc:mysql://127.0.0.1:3306/bbs?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true"/>
	    <property name="username" value="root"/>
	    <property name="password" value="1025"/>
	     <!-- 连接池启动时的初始值 -->
		<property name="initialSize" value="30"/>
	 	<!-- 连接池的最大值 -->
	 	<property name="maxActive" value="500"/> 
 		<!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
		<property name="maxIdle" value="2"/>
		<!--  最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
		<property name="minIdle" value="1"/>
</bean>

    第三步,在spring配置文件applicationContext.xml中配置会话工厂: 

<!-- 配置会话工厂 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
	<!-- 设置数据源 -->
	<property name="dataSource" ref="dataSource"/>
	<!-- 接管了hibernate中的对象映射文件 -->
	<property name="mappingResources">
		<list>
			<value>com/ssh/po/Person.hbm.xml</value>
		</list>
	</property>
	<property name="hibernateProperties">
		<value>
			hibernate.dialect=org.hibernate.dialect.MySQLDialect
			hibernate.hbm2ddl.auto=update
			hibernate.show_sql=false
			hibernate.format_sql=false
			<!-- 由于javax.persistence.validation.mode的属性值默认是auto-->
			<!-- 此处设为none,可避免出现Error applying BeanValidation relational constraints -->
			javax.persistence.validation.mode=none

		</value>
	</property>
</bean>

    第四步,配置pojo对象,以及映射文件Person.hbm.xml,如下所示:

S2SH整合以及图片上传(2)之hibernate搭建(1)

    Person对象的内容如下:

package com.ssh.po;

public class Person {

	private Integer id;
	private String name;
	private String imgurl;
	
	//实体对象必须有一个无参的构造器
	public Person() {
		super();
	}
	
	//此处使用构造器,是为了方便测试hibernate
	public Person(String name, String imgurl) {
		super();
		this.name = name;
		this.imgurl = imgurl;
	}

	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getImgurl() {
		return imgurl;
	}
	public void setImgurl(String imgurl) {
		this.imgurl = imgurl;
	}
}

    Person.hbm.xml映射文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.ssh.po">
	<class name="Person" table="_person">
		<!-- 主键生成策略 -->
		<id name="id" type="java.lang.Integer">
			<column name="id" />
			<generator class="native" />
		</id>
		<property name="name" type="java.lang.String">
			<column name="name" length="20" not-null="true" />
		</property>
		<property name="imgurl" type="java.lang.String">
			<column name="imgurl" length="20" not-null="true" />
		</property>
	</class>
</hibernate-mapping>
    

S2SH整合以及图片上传(3)之hibernate搭建(2)