二 SSH整合:Spring整合Hibernate,无障碍整合&无核心配置整合,Hibernate模版常用方法,

时间:2023-03-10 01:07:27
二 SSH整合:Spring整合Hibernate,无障碍整合&无核心配置整合,Hibernate模版常用方法,

重建SSH项目

java项目可以直接复制,但是web项目除了改名字还要该配置,如下:

二 SSH整合:Spring整合Hibernate,无障碍整合&无核心配置整合,Hibernate模版常用方法,

方式一:无障碍整合:带Hibernate配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- Spring整合Hibernate -->
<!-- 引入Hibernate配置信息===== -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<!-- 引入Hibernate配置文件 -->
<property name="configLocation" value="classpath:hibernate.cfg.xml"/>
</bean> <!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean> <!-- 开启注解事务,在业务层使用注解@Transactional -->
<tx:annotation-driven transaction-manager="transactionManager"/> <!-- 通过context标签引入jdbc.properties,在Hibernate核心配置文件里,免去 --> <!-- 配置C3P0连接池,在Hibernate核心配置文件里面,免去 --> <!-- 配置Action -->
<bean id="customerAction" class="com.ssh.web.action.CustomerAction" scope="prototype">
<property name="customerService" ref="customerService"/>
</bean> <!-- 注入CustomerService -->
<bean id="customerService" class="com.ssh.service.impl.CustomerServiceImpl">
<property name="customerDao" ref="customerDao"/>
</bean> <!--
注入Dao
CustomerDaoImpl继承HibernateDaoSupport,在Dao注入SessionFactory,创建HibernateTemplate模版
-->
<bean id="customerDao" class="com.ssh.dao.impl.CustomerDaoImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean> </beans>

方式二:不带Hibernate核心配置文件,将核心配置文件给Spring管理

Hibernate配置文件:

  • 数据库连接的配置
  • Hibernate属性的配置:方言,显示sql,格式化sql。。。。
  • C3P0连接池
  • 映射

将Hibernate的核心配置交给Spring:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd"> <!--通过context标签引入jdbc.properties -->
<context:property-placeholder location="classpath:jdbc.properties"/> <!-- 配置C3P0连接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</bean> <!-- Spring整合Hibernate -->
<!-- 方式二:不带Hibernate核心文件配置===== -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<!-- 注入连接池 -->
<property name="dataSource" ref="dataSource" /> <!-- 配置Hibernate相关属性 -->
<property name="hibernateProperties"> <props>
<!-- 配置方言,打印语句,格式化sql,自动建表 -->
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property> <!-- 设置映射 -->
<property name="mappingResources">
<list>
<value>com/ssh/domain/Customer.hbm.xml</value>
</list> </property> </bean> <!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean> <!-- 开启注解事务,在业务层使用注解@Transactional -->
<tx:annotation-driven transaction-manager="transactionManager"/> <!-- 配置Action -->
<bean id="customerAction" class="com.ssh.web.action.CustomerAction" scope="prototype">
<property name="customerService" ref="customerService"/>
</bean> <!-- 注入CustomerService -->
<bean id="customerService" class="com.ssh.service.impl.CustomerServiceImpl">
<property name="customerDao" ref="customerDao"/>
</bean> <!--
注入Dao
CustomerDaoImpl继承HibernateDaoSupport,在Dao注入SessionFactory,创建HibernateTemplate模版
-->
<bean id="customerDao" class="com.ssh.dao.impl.CustomerDaoImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean> </beans>

测试:

aaarticlea/png;base64,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" alt="" />

Hibernate模版常用方法:

  • 查 一个: get(Class c , Serializable id)   load(Class c , Serializable id)
  • 查多个:list find(String hql,Object...args)   list findByCriteria(DetachedCriteria dc)
  • 分页:list findByCriteria(DetachedCriteria dc,int firstResult,int maxResult)
  • 命名查询(了解)

Dao层:

package com.itheima.ssh.dao.impl;
import java.util.List;
import org.hibernate.criterion.DetachedCriteria;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
import com.itheima.ssh.dao.CustomerDao;
import com.itheima.ssh.domain.Customer;
public class CustomerDaoImpl extends HibernateDaoSupport implements CustomerDao {
@Override
public void save(Customer customer) {
System.out.println("Dao的save方法执行了");
this.getHibernateTemplate().save(customer);
} @Override
public void update(Customer customer) {
this.getHibernateTemplate().update(customer);
} @Override
public void delete(Customer customer) {
this.getHibernateTemplate().delete(customer);
} @Override
public Customer findById(Long cust_id) {
return this.getHibernateTemplate().get(Customer.class, cust_id);
} @Override
public List<Customer> findAllByHQL() {
List<Customer> list = (List<Customer>) this.getHibernateTemplate().find("from Customer");
return list;
} @Override
public List<Customer> findAllByQBC() {
DetachedCriteria criteria = DetachedCriteria.forClass(Customer.class);
List<Customer> list = (List<Customer>) this.getHibernateTemplate().findByCriteria(criteria);
return list;
} @Override
public List<Customer> findByNamedQuery() { return (List<Customer>) this.getHibernateTemplate().findByNamedQuery("queryAll");
}
}

Service层:

package com.itheima.ssh.service.impl;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.itheima.ssh.dao.CustomerDao;
import com.itheima.ssh.domain.Customer;
import com.itheima.ssh.service.CustomerService;
/**
* 客户端的业务层的实现类
*/
@Transactional
public class CustomerServiceImpl implements CustomerService {
//注入Dao
private CustomerDao customerDao;
public void setCustomerDao(CustomerDao customerDao) {
this.customerDao = customerDao;
} @Override
public void save(Customer customer) {
System.out.println("service中的save方法执行了");
customerDao.save(customer);
} @Override
public void update(Customer customer) {
customerDao.update(customer);
} @Override
public void delete(Customer customer) {
customerDao.delete(customer);
} @Override
public Customer findById(Long cust_id) {
return customerDao.findById(cust_id);
} @Override
public List<Customer> findAllByHQL() {
return customerDao.findAllByHQL();
} @Override
public List<Customer> findAllByQBC() {
return customerDao.findAllByQBC();
} @Override
public List<Customer> findByNamedQuery() {
return customerDao.findByNamedQuery();
} }

测试类:

package com.ssh.testdemo;

import java.util.List;

import javax.annotation.Resource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.ssh.domain.Customer;
import com.ssh.service.CustomerService; @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class demo1 {
// Spring注入Service
@Resource(name = "customerService")
private CustomerService customerService; // public void setCustomerService(CustomerService customerService) {
// this.customerService = customerService;
// } @Test
public void test1() { customerService.save(new Customer());
} @Test
// 修改
public void test2() {
Customer customer = customerService.findById(1l);
customer.setCust_name("修改测试");
customerService.Update(customer);
} @Test
// 删除
public void test3() {
Customer customer = customerService.findById(2l);
customer.setCust_name("删除测试");
customerService.delete(customer);
} @Test
// 查询所有
public void test4() {
List<Customer> list = customerService.findAllByHQL();
for (Customer customer : list) {
System.out.println(customer);
}
} @Test
// 查询所有
public void test5() {
List<Customer> list = customerService.findAllByQBC();
for (Customer customer : list) {
System.out.println(customer);
}
} }