| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
f663x
9年前发布

Spring4 MVC Hibernate4集成

摘要 事物管理

package com.lei.demo.entity;  import javax.persistence.*;  @Entity(name="users")  public class Users {            public Users(){          super();      }            @Id      @GeneratedValue(strategy=GenerationType.AUTO)      @Column(name="id")      private Integer id;            @Column(name="user_name",length=32)      private String user_name;            @Column(name="age")      private Integer age;            @Column(name="nice_name",length=32)      private String nice_name;            public Integer getId() {          return id;      }      public void setId(Integer id) {          this.id = id;      }      public String getUser_name() {          return user_name;      }      public void setUser_name(String user_name) {          this.user_name = user_name;      }      public Integer getAge() {          return age;      }      public void setAge(Integer age) {          this.age = age;      }      public String getNice_name() {          return nice_name;      }      public void setNice_name(String nice_name) {          this.nice_name = nice_name;      }  }
<?xml version="1.0" encoding="UTF-8"?>  <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns="http://java.sun.com/xml/ns/javaee"       xmlns:web="http://java.sun.com/xml/ns/javaee"       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee           http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"           id="WebApp_ID" version="3.0">    <display-name>Archetype Created Web Application</display-name>    <context-param>      <param-name>contextConfigLocation</param-name>      <param-value>classpath:/spring-*.xml</param-value>    </context-param>    <listener>      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener>    <!-- 定义DispatcherServlet -->    <servlet>      <servlet-name>lei-dispatcher</servlet-name>      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>      <init-param>        <!-- 默认/WEB-INF/[servlet名字]-servlet.xml加载上下文,             如果配置了contextConfigLocation参数,            将使用classpath:/lei-dispatcher-servlet.xml加载上下文        -->        <param-name>contextConfigLocation</param-name>        <param-value>classpath:/lei-dispatcher-servlet.xml</param-value>      </init-param>      <load-on-startup>1</load-on-startup>    </servlet>    <!-- 拦截匹配的请求,这里所有请求采用名字为lei-dispatcher的DispatcherServlet处理 -->    <servlet-mapping>      <servlet-name>lei-dispatcher</servlet-name>      <url-pattern>/</url-pattern>    </servlet-mapping>  </web-app>
<?xml version="1.0" encoding="UTF-8"?>  <beans xmlns="http://www.springframework.org/schema/beans"      xmlns:context="http://www.springframework.org/schema/context"      xmlns:mvc="http://www.springframework.org/schema/mvc"      xmlns:p="http://www.springframework.org/schema/p"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xmlns:tx="http://www.springframework.org/schema/tx"      xsi:schemaLocation="          http://www.springframework.org/schema/beans               http://www.springframework.org/schema/beans/spring-beans-3.0.xsd          http://www.springframework.org/schema/context          http://www.springframework.org/schema/context/spring-context-3.0.xsd          http://www.springframework.org/schema/mvc          http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd          http://www.springframework.org/schema/tx          http://www.springframework.org/schema/tx/spring-tx-4.0.xsd          ">                <!-- 启动自动扫描该包下所有的Bean(例如@Controller) -->      <context:component-scan base-package="com.lei.demo" />            <!-- 定义视图解析器 -->      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">          <property name="prefix">              <value>/WEB-INF/user/</value>          </property>          <property name="suffix">              <value>.jsp</value>          </property>      </bean>        </beans>
<?xml version="1.0" encoding="UTF-8"?>  <beans xmlns="http://www.springframework.org/schema/beans"      xmlns:context="http://www.springframework.org/schema/context"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      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-4.0.xsd          http://www.springframework.org/schema/context          http://www.springframework.org/schema/context/spring-context-4.0.xsd          http://www.springframework.org/schema/aop          http://www.springframework.org/schema/aop/spring-aop-4.0.xsd          http://www.springframework.org/schema/tx          http://www.springframework.org/schema/tx/spring-tx-4.0.xsd          ">      <!-- Hibernate4 -->      <!-- 加载资源文件  其中包含变量信息,必须在Spring配置文件的最前面加载,即第一个加载-->      <context:property-placeholder location="classpath:persistence-mysql.properties" />            <bean id="sessionFactory"           class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">          <property name="dataSource" ref="dataSource" />          <property name="packagesToScan">              <list>                  <!-- 可以加多个包 -->                  <value>com.lei.demo.entity</value>              </list>          </property>          <property name="hibernateProperties">              <props>                  <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>                  <prop key="hibernate.dialect">${hibernate.dialect}</prop>                  <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>                  <!--  <prop key="hibernate.current_session_context_class">thread</prop> -->               </props>          </property>      </bean>            <!-- 数据库映射 -->      <!--  class="org.apache.tomcat.dbcp.dbcp.BasicDataSource" -->      <!--  class="org.springframework.jdbc.datasource.DriverManagerDataSource" -->      <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">        <property name="driverClassName" value="${jdbc.driverClassName}" />        <property name="url" value="${jdbc.url}" />        <property name="username" value="${jdbc.user}" />        <property name="password" value="${jdbc.pass}" />     </bean>           <!-- 配置Hibernate事务管理器 -->      <bean id="transactionManager"          class="org.springframework.orm.hibernate4.HibernateTransactionManager">        <property name="sessionFactory" ref="sessionFactory" />     </bean>          <!-- 配置事务异常封装 -->     <bean id="persistenceExceptionTranslationPostProcessor"          class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />          <!--  声明式容器事务管理 ,transaction-manager指定事务管理器为transactionManager -->      <tx:advice id="txAdvice" transaction-manager="transactionManager">          <tx:attributes>              <tx:method name="add*" propagation="REQUIRED" />              <tx:method name="get*" propagation="REQUIRED" />              <tx:method name="*" read-only="true" />          </tx:attributes>      </tx:advice>            <aop:config expose-proxy="true">          <!-- 只对业务逻辑层实施事务 -->          <aop:pointcut id="txPointcut" expression="execution(* com.lei.demo.service..*.*(..))" />          <!-- Advisor定义,切入点和通知分别为txPointcut、txAdvice -->          <aop:advisor pointcut-ref="txPointcut" advice-ref="txAdvice"/>      </aop:config>        </beans>
# jdbc.X  jdbc.driverClassName=com.mysql.jdbc.Driver  jdbc.url=jdbc:mysql://yourServerIP:3306/yourDatabase?createDatabaseIfNotExist=true  jdbc.user=user  jdbc.pass=password  # hibernate.X  hibernate.connection.driverClass=org.gjt.mm.mysql.Driver  hibernate.connection.url=jdbc:mysql:// yourServerIP:3306/yourDatabase  hibernate.dialect=org.hibernate.dialect.MySQL5Dialect  hibernate.connection.username=user  hibernate.connection.password=password  hibernate.show_sql=true  hibernate.hbm2ddl.auto=create-drop

 

详情

http://www.cnblogs.com/leiOOlei/p/3727859.html