SSH框架整合 - 03 Spring整合Hibernate5框架

 

 

Spring整合Hibernate5框架有两种方法

  1. 带有hibernate.cfg.xml的配置文件。强调:不能加绑定当前线程的配置
  2. 不带有hibernate.cfg.xml的配置文件

注意在本例使用的是hibernate5 在导入有关hibernate包的时候注意导入5的jar包

 

  • 一、带有hibernate.cfg.xml的配置文件

 

编写bean类与映射文件并在hibernate.cfg.xml中引入

 

customer类

package domain;

public class Customer {
	
	private Long cust_id;
	private String cust_name;
	private Long cust_user_id;
	private Long cust_create_id;
	private String cust_source;
	private String cust_industry;
	private String cust_level;
	private String cust_linkman;
	private String cust_phone;
	private String cust_mobile;
	
	public Long getCust_id() {
		return cust_id;
	}
	public void setCust_id(Long cust_id) {
		this.cust_id = cust_id;
	}
	public String getCust_name() {
		return cust_name;
	}
	public void setCust_name(String cust_name) {
		this.cust_name = cust_name;
	}
	public Long getCust_user_id() {
		return cust_user_id;
	}
	public void setCust_user_id(Long cust_user_id) {
		this.cust_user_id = cust_user_id;
	}
	public Long getCust_create_id() {
		return cust_create_id;
	}
	public void setCust_create_id(Long cust_create_id) {
		this.cust_create_id = cust_create_id;
	}
	public String getCust_source() {
		return cust_source;
	}
	public void setCust_source(String cust_source) {
		this.cust_source = cust_source;
	}
	public String getCust_industry() {
		return cust_industry;
	}
	public void setCust_industry(String cust_industry) {
		this.cust_industry = cust_industry;
	}
	public String getCust_level() {
		return cust_level;
	}
	public void setCust_level(String cust_level) {
		this.cust_level = cust_level;
	}
	public String getCust_linkman() {
		return cust_linkman;
	}
	public void setCust_linkman(String cust_linkman) {
		this.cust_linkman = cust_linkman;
	}
	public String getCust_phone() {
		return cust_phone;
	}
	public void setCust_phone(String cust_phone) {
		this.cust_phone = cust_phone;
	}
	public String getCust_mobile() {
		return cust_mobile;
	}
	public void setCust_mobile(String cust_mobile) {
		this.cust_mobile = cust_mobile;
	}
	@Override
	public String toString() {
		return "Customer [cust_id=" + cust_id + ", cust_name=" + cust_name + ", cust_user_id=" + cust_user_id
				+ ", cust_create_id=" + cust_create_id + ", cust_source=" + cust_source + ", cust_industry="
				+ cust_industry + ", cust_level=" + cust_level + ", cust_linkman=" + cust_linkman + ", cust_phone="
				+ cust_phone + ", cust_mobile=" + cust_mobile + "]";
	}
	
	
}

映射文件



    

	
	
		
			
		
		
		
		
		
		
		
		
		
		
		
		
	
	
    

在hibernate.cfg.xml中引入映射文件

    

 

在dao中继承HibernateDaoSupport类并使用 getHibernateTemplate获得模板操作数据库

daoImpl

package dao;

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

import domain.Customer;

/**
 * 继承HibernateDaoSupport 简化开发操作
 * @author Administrator
 *
 */
public class CustomerDaoImpl extends HibernateDaoSupport implements CustomerDao {

	public void add(Customer cust) {
		System.out.println("dao add");
		//从父类获得hibernate模板保存customer对象
		this.getHibernateTemplate().save(cust);
	}
	
}

 

将dao注入到service中

applicationContext.xml






	

	
	
		
	


	
	
		
	
	
	
	
		
	



	
	
		
	



 

在applicationContext.xml中配置开启事务

在applicationContext.xml中加入




	


 

发送前台请求测试

控制台输出结果

SSH框架整合 - 03 Spring整合Hibernate5框架_第1张图片

 

查看数据库结果

 

SSH框架整合 - 03 Spring整合Hibernate5框架_第2张图片

已经正常加入数据库

 

二、没有hibernate.cfg.xml的配置文件

实现没有hibernate配置文件需要将原hibernate配置文件中的所有属性都配置到spring中

以下是hibernate配置文件中的属性

  • 数据库参数

com.mysql.jdbc.Driver
jdbc:mysql:///hibernate_day04
root
pass
  • C3P0连接池
org.hibernate.dialect.MySQLDialect
  • 数据库方言
org.hibernate.dialect.MySQLDialect
  • 其他配置

true
true
update
  • mapping映射文件

将这些配置到applicationContext.xml中就可以了,具体配置如下:

数据库相关的都配置到C3P0的dataSource bean中

其他设置都配置到sessionFactory bean中






	
	
	
	
	
		
		
		
		
	


	
	
		
	


	
	
		
		
		
		
			
				org.hibernate.dialect.MySQLDialect
				true
				true
				update
			
		
		
		
			
				domain/Customer.hbm.xml
			
		
	
	
	
	
		
	



	
	
		
	

	
	
	
	
				
	
	
	

 

其他实现类与测试类都不变直接测试

 

控制台输出

SSH框架整合 - 03 Spring整合Hibernate5框架_第3张图片

 

查看数据库

 

你可能感兴趣的:(JAVA,练习,SSH,JAVA_WEB)