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([email protected]) --> 
    <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

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/8019.html

(0)
上一篇 2021年7月18日 19:16
下一篇 2021年7月18日 19:16

相关推荐

发表回复

登录后才能评论