美文网首页
springMVC+spring+hibernate集成----

springMVC+spring+hibernate集成----

作者: Mango_lxh | 来源:发表于2018-09-27 00:22 被阅读0次
    1. 先按照“spring MVC+Spring集成”方法执行
    2. 导入Apache Commons几个jar包
    commons-dbcp-1.4.jar 
    commons-pool-1.5.6.jar 
    

    把以上jar 都拷贝到/WEB-INF/lib/目录下。

    3. 导入日志系统门面几个jar包
    slf4j-api-1.6.1.jar :核心API 
    slf4j-log4j12-1.6.1.jar :log4j实现
    log4j-1.2.15.jar
    

    把以上jar 都拷贝到/WEB-INF/lib/目录下。

    4. 导入支持注解的几个jar包
    persistence.jar
    hibernate-annotations.jar
    hibernate-commons-annotations.jar
    hibernate-entitymanager.jar包 
    

    把以上jar 都拷贝到/WEB-INF/lib/目录下。

    5. 导入Hibernate几个jar包

    Hibernate3的jar包
    /lib/目录下所有jar包(不包括log4j-1.2.11.jar)
    把以上jar 都拷贝到/WEB-INF/lib/目录下。

    6. 数据库的JDBC驱动

    根据使用的数据库下载相应的JDBC 驱动的jar包,并拷贝到/WEB-INF/lib/目录下。
    本例为:mysql-connector-java-5.0.4-bin.jar

    7. 在hib-config.xml中加入如下的配置
    让Spring通过自动扫描来查询和管理Bean
    <context:component-scan  base-package="com.zte"/>  
    配置数据源
    
    <bean id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName"
    value="com.mysql.jdbc.Driver">
    </property>
    <property name="url"
    value="jdbc:mysql://localhost:3306/myhib">
    </property>
    <property name="username" value="root"></property>
    <property name="password" value="mysql"></property>
    </bean>
    
    配置sessionFactory
    <bean id="sessionFactory"       class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">  
     <property name="dataSource">  
       <ref bean="dataSource" /><!--指定数据源 -->  
     </property>
    <!—hibernate的配置托管给spring完成--> 
    <property name="hibernateProperties"><!--指定Hibernate属性 -->
             <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>
    
    
    扫描Model文件,通过解析Model文件的注解完成该文件与数据库表的映射
    <property name="packagesToScan">
    <value>com.zte.model</value>
    </property>
       </bean>
    
    
    配置事务管理器
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory">
    <ref bean="sessionFactory"/>
    </property>
    </bean>
    
    
    配置事务的传播特性
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
    <tx:attributes>
    <tx:method name="add*" propagation="REQUIRED"/>
    <tx:method name="del*" propagation="REQUIRED"/>
    <tx:method name="modify*" propagation="REQUIRED"/>
        <tx:method name="*"  read-only="true"/>
    </tx:attributes>
    </tx:advice>
    配置类参与事务的方法
    <aop:config>
    <aop:pointcut id="allManagerMethod" expression="execution(* com.zte.*.*.*(..))"/>
    <aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>
    </aop:config>
    
    3. 在hib-config.xml中配置DAO Bean
    <bean id="userDao" class="com.zte.dao.UserDao">
    </bean>
    4.配置一个hibernateTemplate实例
    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate" >
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    
    
    
    
    
    8. 编写Model类
    package com.zte.model;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    @Entity//注释声明该类为持久类
    @Table(name = "t_user1")//指定数据库表名默认为POJO的简单名称
    public class User {
    @Id//指定主键映射名
    @GeneratedValue(strategy=GenerationType.AUTO)//主键生成方式序列
    @Column(name = "t_id")
    private int id;
    @Column(name = "t_username")//指定数据库列映射名
    private String username;
    @Column(name = "t_password")//指定数据库列映射名
    private String password;
    ......
    }
    注:这里省略了对应属性的get和set 方法
    
    9. 编写DAO实现类程序
    package com.zte.dao;
    import javax.annotation.Resource;
    import org.springframework.orm.hibernate3.HibernateTemplate;
    import com.zte.model.User;
    public class UserDao {
       @Resource(name ="hibernateTemplate")
      private HibernateTemplate hibernateTemplate;
     public void add(User u){ 
     System.out.println("UserDao.add()");
     hibernateTemplate.save(u);
     }
    }
    
    10. 在WebRoot下编写index.jsp页面该页面部署在项目的根下
    <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <html>
      <head>
        <base href="<%=basePath%>">
      </head>
      <body>
        <a href=“<%=request.getContextPath()%>/reg.jsp”>注册
        </a><br>
       </body>
     </html>
    
    11. 在WebRoot下编写表单页面reg.jsp该页面部署在项目的根下
    <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <body>
    <form action="<%=request.getContextPath()%>/login.do" method="get">
    户名:<input type="text" name="username"><br>
    密码:<input type="password" name="password"><br>
    <input type="submit" value="注册">
    </form>
    </body>
    
    12. 在WebRoot/WEB-INF/page下编写表单页面success.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <html>
      <head>
        <base href="<%=basePath%>">
      </head>
    <body>
    恭喜你! ${user.username} 注册成功<br>  
    </body>
    </html>
    
    解决乱码问题

    1.JSP页面中输入的值传入数据库,数据库中显示乱码。
    解决:在jsp页面中用:<%@ page language="java" contentType="text/html; charset=utf-8"%>
    2.JSP页面中从数据库查询数据显示在文本框中的是乱码。
    解决:配置tomcat(E:\webWorkspace7.0\apache-tomcat-6.0.18\conf\server.xml)中加入

    URIEncoding="UTF-8"
    <Connector port="80" protocol="HTTP/1.1"   connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
    

    相关文章

      网友评论

          本文标题:springMVC+spring+hibernate集成----

          本文链接:https://www.haomeiwen.com/subject/bjdsoftx.html