`

spring_hibernate_Template4

 
阅读更多
一。测试
public class UserServiceTest {
	public static void main(String[] args) {
		ApplicationContext ac =  new ClassPathXmlApplicationContext("applicationContext.xml");
		UserService service = (UserService)ac.getBean("userService");
		User u = new User();
		u.setName("haha success!!");
		service.add(u);
	}
}


二。service服务层
@Component
public class UserService {
	
	private UserDAO userDAO;
	private LogDAO logDAO;
	
	//@Transactional
	public void add(User u){
		this.userDAO.save(u);
		Log log = new Log();
		log.setMessage("a object saved!");
		this.logDAO.save(log);
	}

	@Resource(name="userDAOImpl")
	public void setUserDAO(UserDAO userDAO) {
		this.userDAO = userDAO;
	}
	@Resource(name="logDAOImpl")
	public void setLogDAO(LogDAO logDAO) {
		this.logDAO = logDAO;
	}
	
	public UserDAO getUserDAO() {
		return userDAO;
	}
	public LogDAO getLogDAO() {
		return logDAO;
	}
}


三。dao接口
public interface LogDAO {
	public void save(Log log);
}


public interface UserDAO {
	public void save(User u);
}


四。dao实现
//直接将hibernateTemplate组件,通过@Resource注入
@Component
public class LogDAOImpl implements LogDAO{
	
	private HibernateTemplate hibernateTemplate;
	
	public void save(Log log){
		hibernateTemplate.save(log);
	}

	public HibernateTemplate getHibernateTemplate() {
		return hibernateTemplate;
	}
	@Resource(name="hibernateTemplate")
	public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
		this.hibernateTemplate = hibernateTemplate;
	}
}


//调用继承父类获得Template,可以继承以下三种父类Template
@Component
public class UserDAOImpl extends SuperDAO2 implements UserDAO{
	public void save(User u) {
		this.getHibernateTemplate().save(u);
	}
}



五。三种父类
@Component
public class SuperDAO {
	private HibernateTemplate hibernateTemplate;

	public HibernateTemplate getHibernateTemplate() {
		return hibernateTemplate;
	}
	
	@Resource
	public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
		this.hibernateTemplate = hibernateTemplate;
	}

}
//直接将hibernateTemplate组件,通过@Resource注入父类,不继承何类

@Component
public class SuperDAO2 extends HibernateDaoSupport{
	
	@Resource
	public void setSuperHibernateTemplate(HibernateTemplate hibernateTemplate) {
		super.setHibernateTemplate(hibernateTemplate);
	}
}
//直接将hibernateTemplate组件,设置成HibernateDaoSupport的hibernateTemplate属性

@Component
public class SuperDAO3 extends HibernateDaoSupport{
	
	@Resource
	public void setSuperSessionFactory(SessionFactory sessionFactory){
		super.setSessionFactory(sessionFactory);
	}

}
//直接将sessionFactory,设置成HibernateDaoSupport的sessionFactory属性



六。spring的application.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"
    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/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop.xsd">
	<!-- 配置自动装配 AutowiredAnnotationBeanPostProcessor等接口,实现所有注入等功能 -->
	<context:annotation-config/>
	<!-- 配置扫描包路径,将包下所有组件实例化 -->
	<context:component-scan base-package="com.job"/>
	
	<!-- 在spring容器中,创建数据库连接Bean -->
    <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://localhost/test?useUnicode=true&amp;characterEncoding=utf8"/>
        <property name="username" value="root"/>
        <property name="password" value="admin"/>
    </bean>
    
	<!-- 创建hibernate的sessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    	<!-- 将spring容器中存在的数据库连接Bean,配置到sessionFactory中 -->
        <property name="dataSource" ref="DataSource"/>
        
        <!-- 配置hibernate映射实体对象到表的文件(一) -->
         <property name="packagesToScan">
            <list>
                <value>com.job.model</value>
            </list>
        </property>
  
        <!-- 配置hibernate属性,方言,显示sql,是否创建数据表 -->
        <property name="hibernateProperties">
        	<props>
        		<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
        		<prop key="hibernate.show_sql">true</prop>
        		<prop key="hibernate.hbm2ddl.auto">update</prop>
        	</props>
        </property>
    </bean>
    
    <!-- 注入sessionFactory,获得spring的HibernateTemplate -->
    <!--设置成HibernateDaoSupport的sessionFactory属性不需要HibernateTemplate -->
    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate">
    	 <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
   
</beans>


七。实体类

@Entity 
@Table(name="log")
public class Log {
	private int id;
	private String message;
	

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}
	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}

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

@Entity 
@Table(name="Users")
public class User {
	private int id;
	private String name;
	
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	@Id
	@GeneratedValue
	@Column(name="USER_ID")
	public int getId() {
		return id;
	}

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

分享到:
评论

相关推荐

    spring_hibernate整合实例

    3. **Hibernate Template或JPA**:Spring提供了HibernateTemplate,这是一个简化Hibernate操作的工具类。然而,随着Spring Data JPA的出现,现在更多地推荐使用JPA,它提供了一种基于标准的、与ORM供应商无关的方式...

    spring,hibernate,struts

    4. `spring_integration_hibernate3_template`:这部分可能是使用Spring的HibernateTemplate或HibernateDaoSupport的示例,这些模板类可以帮助简化与Hibernate的交互,避免了手动管理Session。 整合这三个框架,...

    spring java

    通过`spring_integration_hibernate3_template`文件,我们可以学习如何配置HibernateTemplate,以及如何在业务逻辑中调用其方法来执行SQL操作,如查询、插入、更新和删除等。 五、Spring AOP的XML配置 除了注解...

    第25,26讲 --搭建和配置Spring与Hibernate整合的环境

    在Spring的配置文件中,我们可以使用Hibernate的Template或DAO来处理数据库操作。例如,创建一个HibernateTemplate Bean: ```xml &lt;bean id="hibernateTemplate" class="org.springframework.orm.hibernate5....

    JSF+Spring+Hibernate(框架整合)详细过程

    4. **数据访问层**:在Spring中定义数据访问接口,使用Hibernate的Template或者JPA的Repository来实现这些接口。这样,业务层可以依赖这些接口,而不是直接依赖Hibernate,实现了数据访问层的解耦。 5. **业务逻辑...

    strut2与spring4与hibernate4整合

    5. **整合Spring和Hibernate**:在Spring配置文件中定义SessionFactory Bean,使用Hibernate的Template或SessionFactory来操作数据库。 6. **测试与调试**:编写JUnit测试用例,确保各个层次的交互正常工作,无异常...

    Spring/泛型Hibernate的实现

    -- Hibernate Template --&gt; &lt;bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate"&gt; &lt;!-- AOP事务管理 --&gt; &lt;bean id="transactionManager" class="org.spring...

    springmvc+spring+hibernate+json文件

    在Spring框架中,Hibernate可以通过Spring Data JPA或Hibernate Template进行集成,进一步简化数据库操作。 **JSON (JavaScript Object Notation)** 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器...

    spring+hibernate集成

    4. **DAO(Data Access Object)抽象**:Spring提供Template类,如`HibernateTemplate`或`HibernateDaoSupport`,来简化Hibernate的使用。不过,更推荐使用Spring Data JPA或Spring Data JDBC,它们提供了更高级别的...

    最完整易懂的Struts+Spring+Hibernate框架搭建指南

    【Struts+Spring+Hibernate框架】是企业级Java应用中常用的三大开源框架组合,用于构建高效、可扩展的Web应用程序。本指南将详细介绍如何在指定环境下(Windows XP、JDK 1.5、MyEclipse5.5、Struts1.2、Hibernate3、...

    spring+hibernate

    4. **Query构建**:Spring Data JPA或Spring JDBC的Template类可以简化查询构建,减少对Hibernate Query Language (HQL) 的依赖。 在"springupgrade"这个文件名中,我们可以推测这可能是一个关于Spring框架升级的...

    Spring4+hibernate4+struts2整合框架

    这得益于Spring的AOP和Hibernate的Template模式。例如,Spring的HibernateTemplate或JpaTemplate可以提供通用的CRUD操作,而自定义的Dao只需定义特定的查询方法即可。这种设计模式提高了代码的复用性和可维护性。 ...

    springMVC+hibernate3整合

    Spring MVC 和 Hibernate 是两个在Java Web开发中广泛使用的框架,它们分别处理模型-视图-控制器(MVC)架构中的不同部分以及数据持久化。Spring MVC 提供了强大的请求处理和视图管理功能,而 Hibernate 则是 ORM...

    Struts2,Spring,Hibernate 开发入行真功夫源码

    在Spring框架中,可以通过Spring Data JPA或Hibernate Template来集成和管理Hibernate,实现更高级的事务管理和数据访问控制。 学习和掌握这三个框架,你需要理解以下知识点: 1. **MVC设计模式**:理解模型、视图...

    spring集成Struts与Hibernate

    ### Spring集成Struts与Hibernate详解 #### Spring集成Struts **背景介绍** 随着Java技术的发展,Struts作为最早的MVC框架之一,在Java EE领域中占据了重要地位。虽然随着时间的推移,新的框架和技术不断涌现,但...

    Struts、Spring、Hibernate三大框架的原理和优点

    ### Struts、Spring、Hibernate三大框架的原理和优点 #### 1. Struts框架的原理与优点 **Struts** 是一种基于MVC(Model-View-Controller)设计模式的Web应用框架,它广泛应用于Java Web开发中。下面详细介绍...

    手动创建 SpringMvc +SpringDataJpa+Hibernate+ freemarker mavenProject+ 环境切换 webDemo

    4. 数据库实体类:使用Hibernate注解,如@Entity、@Table等,与数据库表进行映射。 5. JpaRepository接口:定义数据库操作,Spring Data JPA会自动生成实现。 6. Service层接口及实现:业务逻辑处理,调用Jpa...

    spring4:Spring4+Hibernate3.6配置

    2. **DAO(Data Access Object)**:Spring4的Template类(如HibernateTemplate)简化了DAO层的实现,降低了代码复杂性。 3. **Spring JDBC与Hibernate集成**:Spring4可以与Hibernate无缝集成,统一数据访问策略。 ...

    Spring3.07+Hibernate+sturts1.3测试

    4. **数据持久化**:Hibernate负责将Java对象与数据库表进行映射,实现数据的持久化操作。 5. **返回响应**:处理完请求后,Action类通过Struts框架将结果转发到特定的JSP或FreeMarker模板进行渲染,然后返回给...

Global site tag (gtag.js) - Google Analytics