zoukankan      html  css  js  c++  java
  • Spring+springmvc+Mybatis整合案例 xml配置版(myeclipse)详细版

    Spring+springmvc+Mybatis整合案例

    Versionxml(myeclipse)

     文档结构图:

    从底层开始做起:

    01.配置web.xml文件

    <?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/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">

      <display-name></display-name>

      <!-- 配置spring装载bean的设置 -->

      <context-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>classpath:applicationcontext.xml</param-value>

      </context-param>

    <!-- 配置编码 -->

      <filter>

        <filter-name>CharacterEncoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

        <init-param>

          <param-name>encoding</param-name>

          <param-value>utf-8</param-value>

        </init-param>

        <init-param>

          <param-name>forceEncoding</param-name>

          <param-value>true</param-value>

        </init-param>

      </filter>

      <filter-mapping>

        <filter-name>CharacterEncoding</filter-name>

        <url-pattern>/*</url-pattern>

      </filter-mapping>

      <servlet>

        <servlet-name>springmvc</servlet-name>

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <!-- 配置springmvc需要的组件设置  -->

        <init-param>

          <param-name>contextConfigLocation</param-name>

          <param-value>classpath:applicationContext.xml</param-value>

        </init-param>

        <load-on-startup>1</load-on-startup>

      </servlet>

      <servlet-mapping>

        <servlet-name>springmvc</servlet-name>

        <url-pattern>*.do</url-pattern>

      </servlet-mapping>

      <welcome-file-list>

        <welcome-file>index.jsp</welcome-file>

      </welcome-file-list>

    </web-app>

    02.配置applicationcontext.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:aop="http://www.springframework.org/schema/aop"

    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"

    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/aop

             http://www.springframework.org/schema/aop/spring-aop-4.2.xsd

             http://www.springframework.org/schema/tx

             http://www.springframework.org/schema/tx/spring-tx-4.2.xsd

               http://www.springframework.org/schema/context

             http://www.springframework.org/schema/context/spring-context-4.2.xsd  ">

    <!--01. 包扫描器 -->

    <context:component-scan base-package="cn.zym.controller"></context:component-scan>

    <!-- 02.数据源 -->

       <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

            <property name="driverClass" value="${jdbc.driverClass}"></property>

             <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>

             <property name="user" value="${jdbc.user}"></property>

             <property name="password" value="${jdbc.password}"></property>

       </bean>

       

       <!-- 1.1 关联jdbc.properties -->

      <context:property-placeholder location="classpath:jdbc.properties"/>

       <!-- 02.配置SessionFactory -->

      <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

          <property name="configLocation" value="classpath:mybatis-config.xml"></property>

          <property name="dataSource" ref="dataSource"></property>

       </bean>

       

       <!--03. dao -->

       <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

         <property name="sqlSessionFactoryBeanName" value="sessionFactory"></property>

         <property name="basePackage" value="cn.zym.dao"></property>

       </bean>

       

       <!--04. service -->

       <bean id="userservice" class="cn.zym.service.impl.UserServiceImpl">

         <property name="dao" ref="IUserDao"></property>

       </bean>

       

       <!--05. controller -->

       <bean id="/usercontroller.do" class="cn.zym.controller.UserController">

     <property name="service" ref="userservice"></property>

       </bean>

       

      <!-- 06.配置事务管理器 -->

        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

          <property name="dataSource" ref="dataSource"></property>

        </bean>

         

        <!-- 07.配置开启事务操作 -->

       <tx:advice id="txAdvice" transaction-manager="transactionManager">

         <tx:attributes>

         <!--指定在连接方法上应用的事务属性 -->

            <tx:method name="save*" isolation="DEFAULT" propagation="REQUIRED"/>

         </tx:attributes>

       </tx:advice>

       <!-- aop配置 -->

      <aop:config>

         <aop:pointcut expression="execution(* *..service.*.*(..))" id="stockPointcut"/>

         <aop:advisor advice-ref="txAdvice" pointcut-ref="stockPointcut"/>

      </aop:config>

    </beans>

    一般使用Mybatis时不建议使用注解(会降低程序效率和增加开发难度):这里依然还是选择原生的配置;

    02.1jdbc.properties文件的书写

    jdbc.driverClass=com.mysql.jdbc.Driver

    jdbc.jdbcUrl=jdbc:mysql://localhost:3306/zhangyiming

    jdbc.user=zym

    jdbc.password=admin

    03.mybatis-config.xml的配置:

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE configuration

    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

    "http://mybatis.org/dtd/mybatis-3-config.dtd">

    <configuration>

      <typeAliases>

         这里将pojo包下的类设置了别名(在XXXdao.xml中直接调用该包下的类名即可)

         <package name="cn.zym.pojo"/>

      </typeAliases>

    。。。。添加其他配置文件

    </configuration>

    Dao层书写:

    Ok,这里需要添加对应daoMybatis操作文件,该文件通过spring容器生成了代理类,在上面有提到;

       <!--03. dao -->   该代理类肯能会有多个,每个代理类的名称的生成规则:

    InterfaceIUserDao    proxyIUserDao

    InterfaceUserDao    proxyuserDao

       <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

         <property name="sqlSessionFactoryBeanName" value="sessionFactory"></property>

         <property name="basePackage" value="cn.zym.dao"></property>

       </bean>

    Ok,配置dao对应的文件

    04.IUserDao.xml 的配置

       这里的xml文件一定要放置在与该接口同目录下(如果不设置具体描述文件路径的话;)

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE mapper

    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

    <mapper namespace="cn.zym.dao.IUserDao">

    <select id="save" parameterType="User">

    insert into user (name,password) values (#{name},#{password})

    </select>

    </mapper>

    Ok,接下来是注解配置Controller:

    05.Controller的配置

    public class UserController implements Controller{

    private IUserService service;

    public ModelAndView handleRequest(HttpServletRequest request,

    HttpServletResponse response) throws Exception {

    request.setCharacterEncoding("utf-8");

    String name = request.getParameter("uname");

    String password = request.getParameter("upassword");

    System.out.println(name);

    User user = new User();

    user.setName(name);

    user.setPassword(password);

    service.save(user);

    return new ModelAndView("/welcome.jsp");

    }

    public IUserService getService() {

    return service;

    }

    public void setService(IUserService service) {

    this.service = service;

    }

    }

    这样在前台直接请求携带数据的时候将会触发该Handler,将数据报错到DB

    Useradd.jsp;

     <body>

        <form action="adduser.do" method="post">

    <input type="text" name="name"/><br/>

    <input type="text" name="password"/><br/>

    <input type="submit" value="submit"/>

        </form>

      </body>

  • 相关阅读:
    day 66 crm(3) 自创组件stark界面展示数据
    day 65 crm(2) admin源码解析,以及简单的仿造admin组件
    用 Python+nginx+django 打造在线家庭影院
    django -admin 源码解析
    day 64 crm项目(1) admin组件的初识别以及应用
    云链接 接口不允许 情况 解决方法 mysql Host is not allowed to connect to this MySQL server解决方法
    day 56 linux的安装python3 ,虚拟环境,mysql ,redis
    day55 linux 基础以及系统优化
    Codeforces 989 P循环节01构造 ABCD连通块构造 思维对云遮月参考系坐标轴转换
    Codeforces 990 调和级数路灯贪心暴力 DFS生成树两子树差调水 GCD树连通块暴力
  • 原文地址:https://www.cnblogs.com/john69-/p/6123039.html
Copyright © 2011-2022 走看看