Hibernate 整合 Spring

1.新建一个java工程

2.导入相关jar包

hibernate ,spring,mysql驱动,c3p0数据库连接池

 

 

3.实体domain层

User.java

package cn.test.domain;

/**
 * User entity.
 * 
 * @author MyEclipse Persistence Tools
 */

public class User implements java.io.Serializable {

	// Fields

	private Integer id;
	private String name;
	private Integer age;

	// Constructors

	/** default constructor */
	public User() {
	}

	/** minimal constructor */
	public User(String name) {
		this.name = name;
	}

	/** full constructor */
	public User(String name, Integer age) {
		this.name = name;
		this.age = age;
	}

	// Property accessors

	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return this.age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

}

user.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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="cn.test.domain.User" table="user" catalog="hibernatespring">
        <id name="id" type="integer">
            <column name="id" length="32" />
            <generator class="increment" />
        </id>
        <property name="name" type="string">
            <column name="name" length="32" not-null="true" />
        </property>
        <property name="age" type="integer">
            <column name="age" />
        </property>
    </class>
</hibernate-mapping>


 

 

4.dao层

UserDaoImpl.java

package cn.test.dao;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import cn.test.domain.User;

public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
	
	public void saveUser(User user){
		this.getHibernateTemplate().save(user);
	};
	
	public void deleteUser(int id){
		User user = (User) this.getHibernateTemplate().get(User.class, id);
		this.getHibernateTemplate().delete(user);
	};
	
	public void updateUser(User user){
		
		this.getHibernateTemplate().saveOrUpdate(user);
	};

	public User getUser(int id){
		
		User user = (User) this.getHibernateTemplate().get(User.class, id);
		return user;
	};
	
	public List findUserByName(String name){
		String hql = "from User as u where u.name like ?";
		List list  = this.getHibernateTemplate().find(hql, "%"+name+"%");
		return list;
	}
	
	

}

 

UserDao.java

 

package cn.test.dao;

import java.util.List;

import cn.test.domain.User;

public interface UserDao {

	public abstract void saveUser(User user);

	public abstract void deleteUser(int id);

	public abstract void updateUser(User user);

	public abstract User getUser(int id);

	public abstract List findUserByName(String name);

}


 

5.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"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
	
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
		<property name="driverClass" value="com.mysql.jdbc.Driver"/>
		<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/hibernatespring?useUnicode=true&characterEncoding=UTF-8"/>
		<property name="user" value="root"/>
		<property name="password" value="root"/>
		<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
		<property name="initialPoolSize" value="1"/>
		<!--连接池中保留的最小连接数。-->
		<property name="minPoolSize" value="1"/>	
		<!--连接池中保留的最大连接数。Default: 15 -->
		<property name="maxPoolSize" value="300"/>
		<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
		<property name="maxIdleTime" value="60"/>	
		<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
		<property name="acquireIncrement" value="5"/>	
		<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
		<property name="idleConnectionTestPeriod" value="60"/>
	</bean>
	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource"/>
		 <property name="mappingResources">
			    <list>
			      <value>cn/test/domain/user.hbm.xml</value>
			    </list>
		</property>
		 <property name="hibernateProperties">
			 <value>
			      hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
			      hibernate.hbm2ddl.auto=update
			      hibernate.show_sql=true
			      hibernate.format_sql=false
			  </value>
		 </property>
	</bean>
	<bean id="userDao" class="cn.test.dao.UserDaoImpl">
		<property name="sessionFactory">
		<ref local="sessionFactory" />
		</property>
	</bean>
	</beans>


 

6.测试

App.java

 

package cn.test.myTest;

import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

import cn.test.dao.UserDao;
import cn.test.domain.User;

public class App {
	
	@SuppressWarnings("unchecked")
	public static void main(String[] args)
	{
		XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
		
		UserDao dao = (UserDao) factory.getBean("userDao");
		
			/*User user = new User();
			user.setName("aaa");
			user.setAge(20);
			dao.saveUser(user);	*/
			
			
			/*User user = dao.getUser(1);
			System.out.println(user.getName()+"----"+user.getAge());*/
			
		/*@SuppressWarnings("unused")
		List list = dao.findUserByName("b");*/
		
		User user = new User();
		user.setId(1);
		user.setName("ccc");
		user.setAge(200);
		dao.updateUser(user);
			
	}

}

 

目录结构

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值