spring_150901_hibernate_transaction_xml
实体类:
- package com.spring.model;
- import javax.persistence.Entity;
- import javax.persistence.Id;
- import javax.persistence.Table;
- @Entity
- @Table(name="t_dog")
- public class DogPet {
- private int id;
- private String name;
- private int age;
- private String kind;
- private String sex;
- private String health;
- @Id
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public String getKind() {
- return kind;
- }
- public void setKind(String kind) {
- this.kind = kind;
- }
- public String getSex() {
- return sex;
- }
- public void setSex(String sex) {
- this.sex = sex;
- }
- public String getHealth() {
- return health;
- }
- public void setHealth(String health) {
- this.health = health;
- }
- public String toString()
- {
- return id+"--"+name+"--"+kind+"--"+age+"--"+health;
- }
- }
接口Service:
- package com.spring.service;
- public interface DogPetService {
- public void queryAllDogPets();
- public void saveDogPetByDataSource();
- public void saveDogPetByHibernate();
- }
实现类ServiceImpl:
- package com.spring.service.impl;
- import java.util.List;
- import java.util.Random;
- import javax.annotation.Resource;
- import org.springframework.stereotype.Controller;
- import com.spring.service.DogPetService;
- import com.spring.dao.DogPetDAO;
- import com.spring.model.DogPet;
- @Controller(value="DogPetService")
- public class DogPetServiceImpl implements DogPetService{
- private DogPetDAO dogPetDAO;
- public DogPetDAO getDogPetDAO() {
- return dogPetDAO;
- }
- @Resource(name="dogPetDAO")
- public void setDogPetDAO(DogPetDAO dogPetDAO) {
- this.dogPetDAO = dogPetDAO;
- }
- @Override
- public void queryAllDogPets() {
- List<DogPet> list = dogPetDAO.queryAllDogPets();
- if(list != null)
- {
- for(DogPet d:list)
- {
- System.out.println(d.toString());
- }
- }
- }
- public void saveDogPetByDataSource()
- {
- DogPet d1 = new DogPet();
- d1.setId(new Random().nextInt(1000));
- d1.setName("dog1");
- d1.setAge(4);
- d1.setKind("buladuo");
- d1.setSex("B");
- d1.setHealth("good");
- dogPetDAO.saveDogPetByDataSource(d1);
- }
- public void saveDogPetByHibernate()
- {
- DogPet d1 = new DogPet();
- d1.setId(new Random().nextInt(1000));
- d1.setName("dog1");
- d1.setAge(4);
- d1.setKind("buladuo");
- d1.setSex("B");
- d1.setHealth("good");
- dogPetDAO.saveDogPetByHibernate(d1);
- }
- }
Service调用的DAO:
- package com.spring.dao;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.List;
- import javax.annotation.Resource;
- import javax.sql.DataSource;
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.springframework.stereotype.Service;
- import com.spring.model.DogPet;
- @Service(value="dogPetDAO")
- public class DogPetDAO {
- private DataSource dataSource;
- private SessionFactory sessionFactory;
- public List<DogPet> queryAllDogPets()
- {
- List<DogPet> list = new ArrayList<DogPet>();
- DogPet d1 = new DogPet();
- d1.setId(1111);
- d1.setName("dog1");
- d1.setAge(4);
- d1.setKind("buladuo");
- d1.setSex("B");
- d1.setHealth("good");
- DogPet d2 = new DogPet();
- d2.setId(2222);
- d2.setName("dog2");
- d2.setAge(3);
- d2.setKind("buladuo");
- d2.setSex("G");
- d2.setHealth("good");
- list.add(d1);
- list.add(d2);
- return list;
- }
- public void saveDogPetByDataSource(DogPet dog)
- {
- Connection connection = null;
- try
- {
- connection = dataSource.getConnection() ;
- PreparedStatement pstmt = connection.prepareStatement("insert into t_dog values(?,?,?,?,?,?)");
- pstmt.setInt(1, dog.getId());
- pstmt.setString(2, dog.getName());
- pstmt.setInt(3, dog.getAge());
- pstmt.setString(4, dog.getKind());
- pstmt.setString(5, dog.getSex());
- pstmt.setString(6, dog.getHealth());
- pstmt.execute();
- }
- catch (SQLException e)
- {
- e.printStackTrace();
- }
- finally
- {
- try
- {
- connection.close();
- }
- catch (SQLException e)
- {
- e.printStackTrace();
- }
- }
- }
- /*public void saveDogPetByHibernate(DogPet dog)
- {
- Session session = null;
- try
- {
- session = sessionFactory.openSession();
- session.beginTransaction();
- session.save(dog);
- session.getTransaction().commit();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- finally
- {
- session.close();
- }
- }*/
- public void saveDogPetByHibernate(DogPet dog)
- {
- Session session = sessionFactory.getCurrentSession();
- session.save(dog);
- }
- public DataSource getDataSource() {
- return dataSource;
- }
- @Resource
- public void setDataSource(DataSource dataSource) {
- this.dataSource = dataSource;
- }
- public SessionFactory getSessionFactory() {
- return sessionFactory;
- }
- @Resource
- public void setSessionFactory(SessionFactory sessionFactory) {
- this.sessionFactory = sessionFactory;
- }
- }
配置文件beans.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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
- xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
- http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
- <context:annotation-config/>
- <context:component-scan base-package="com.spring"></context:component-scan>
- </beans>
配置文件dao.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:p="http://www.springframework.org/schema/p"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
- http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
- <!-- 利用xml配置声明式事物管理 begin-->
- <bean
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="locations">
- <value>classpath:jdbc.properties</value>
- </property>
- </bean>
- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
- destroy-method="close">
- <property name="driverClassName" value="${driver}" />
- <property name="url" value="${url}" />
- <property name="username" value="${user}" />
- <property name="password" value="${password}" />
- </bean>
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <property name="annotatedClasses">
- <list>
- <value>com.spring.model.DogPet</value>
- </list>
- </property>
- <property name="hibernateProperties">
- <value>
- hibernate.dialect=org.hibernate.dialect.MySQLDialect
- </value>
- </property>
- </bean>
- <bean id="txManager"
- class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory" ref="sessionFactory" />
- </bean>
- <tx:advice id="txAdvice" transaction-manager="txManager">
- <tx:attributes>
- <tx:method name="query*" read-only="true" />
- <tx:method name="*" />
- </tx:attributes>
- </tx:advice>
- <aop:config>
- <aop:pointcut id="dogPetServiceOperation"
- expression="execution(* com.spring..*(..))" />
- <aop:advisor advice-ref="txAdvice" pointcut-ref="dogPetServiceOperation" />
- </aop:config>
- <!-- 利用xml配置声明式事物管理 end-->
- </beans>
test类:
- package com.spring.test;
- import org.junit.Test;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import com.spring.service.DogPetService;
- public class ServiceTest {
- @Test
- public void saveDogPetByHibernate()
- {
- ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"beans.xml","dao.xml"});
- DogPetService dogPetService = (DogPetService)ctx.getBean("DogPetService");
- dogPetService.saveDogPetByHibernate();
- }
- }
spring_150901_hibernate_transaction_xml的更多相关文章
随机推荐
- signal和sigaction 分析
1:signal 函数 原型: sighandler_t signal(int signum, sighandler_t handler) typedef void (*sighandler ...
- ZABBIX 3.0 配置监控MYSQL性能【OK】
Zabbix3.0自带了MySQL插件来监控mysql数据库的模板,只需要配置好agent客户端,然后在web端给主机增加模板就行了. 参考:http://www.cnblogs.com/keving ...
- 算法专题-STL篇
这篇文章着重记录c++中STL的用法.主要粗略的介绍其用法,以知识点的形式呈现其功能,不会深入源码分析其工作原理. 排序和检索. sort(a,a+n),对a[0]往后的n个元素(包括a[0])进行排 ...
- HTML入门(三)后台系统显示页面_框架标签
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- C11工具类:字符转换
1.数值类型和字符串转换 1.1 数值转换为字符 std::string to_string(int value); std::string to_string(long value); std::s ...
- Counting Pair
Counting Pair Time Limit: 1000 ms Memory Limit: 65535 kB Solved: 112 Tried: 1209 Submit Status Best ...
- 超酷动态图片展示墙JS特效制作方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- rxjs自定义operator
rxjs自定义operator
- 【BZOJ】1040: [ZJOI2008]骑士 环套树DP
[题意]给定n个人的ai和bi,表示第i个人能力值为ai且不能和bi同时选择,求能力值和最大的选择方案.n<=10^6. [算法]环套树DP(基环树) [题解]n个点n条边——基环森林(若干环套 ...
- Docker 配置国内镜像拉取中心,Configure docker to use faster registries in China.
Networking in China is really bad when it comes to using some cloud based tools like docker, it's us ...