zoukankan      html  css  js  c++  java
  • SpringMVC集成Mybatis

    1.pom.xml中添加引入架包

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
      </dependency>
      <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.5.5</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>4.3.5.RELEASE</version>
      </dependency>
    
      <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.5</version>
      </dependency>
      <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>2.0.5</version>
      </dependency>
    

      

     
    2,applicationContext.xml中添加配置
    <context:property-placeholder location="classpath:jdbc.properties" />
    
    
    <bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
      <property name="driverClass" value="${jdbc.driver}" />
      <property name="jdbcUrl" value="${jdbc.url}" />
      <property name="user" value="${jdbc.username}" />
      <property name="password" value="${jdbc.password}" />
      <!-- 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数 -->
      <property name="acquireIncrement" value="${jdbc.pool.increment}"/>
      <!-- 初始连接池大小 -->
      <property name="initialPoolSize" value="${jdbc.pool.init}"/>
      <!-- 连接池中连接最小个数 -->
      <property name="minPoolSize" value="${jdbc.pool.min}"/>
      <!-- 连接池中连接最大个数 -->
      <property name="maxPoolSize" value="${jdbc.pool.max}"/>
    </bean>
    
    
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
      <property name="dataSource" ref="datasource"/>
      <!--    指定*Mapper.xml位置-->
      <property name="mapperLocations" value="classpath:mapper/*.xml" />
    </bean>
    
    
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
      <!--    指定的是接口(Java)路径-->
      <property name="basePackage" value="com.blueStarWei.mapper" />
      <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>
    
    
    <!-- 声明式事务管理 : 定义事物管理器,由spring管理事务 -->
    <tx:annotation-driven/>
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
      <property name="dataSource" ref="datasource"/>
    </bean>
    

      

    3,创建jdbc.properties【resources路径下】

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://127.0.0.1:3306/wei_db
    jdbc.username=root
    jdbc.password=root
    
    
    #pool settings
    jdbc.pool.init=10
    jdbc.pool.increment=3
    jdbc.pool.min=5
    jdbc.pool.max=20
    

      

     
    4,创建PersonMapper.java【java路径下】
    package com.blueStarWei.mapper;
    
    
    import com.blueStarWei.bean.Person;
    
    
    public interface PersonMapper {
    
    
        int addPerson(Person person);
    
    
        String getName(int id);
    
    
        Person getPersonById(int id);
    }
    

      

    5, 创建PersonMapper.xml【resources/mapper路径下】

    <?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="com.blueStarWei.mapper.PersonMapper" >
    
    
      <insert id="addPerson" >
        insert into person(id,name,age,address) values(#{id},#{name},#{age},#{address})
      </insert>
    
    
      <select id="getName" parameterType="int" resultType="java.lang.String">
        select name from person where id = #{id}
      </select>
    
    
      <select id="getPersonById" parameterType="int" resultType="com.blueStarWei.bean.Person" >
        select * from person where id = #{id}
      </select>
    </mapper>
    

      

    6,修改controller【java路径下】

    package com.blueStarWei.controller;
    
    
    import com.blueStarWei.mapper.PersonMapper;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    
    @RestController
    @RequestMapping("/hello")
    public class HelloWorld {
    
    
        @Autowired
        private PersonMapper person;
    
    
        @RequestMapping("/name/{id}")
        public String say(@PathVariable int id){
            return person.getName(id);
        }
    }
    

      

    备注:

    如果*Mapper.xml放置在src/main/java路径下,需要在pom.xml种添加如下配置。(IDEA默认只编译resources下的xml文件)

    <!-- 促使IDEA编译src/main/java路径下的xml-->
    <build>
      <resources>
        <resource>
          <directory>src/main/java</directory>
          <includes>
            <include>**/*.xml</include>
          </includes>
        </resource>
      </resources>
    </build>
    

      

  • 相关阅读:
    HDU 3681 Prison Break 越狱(状压DP,变形)
    POJ 2411 Mondriaan's Dream (状压DP,骨牌覆盖,经典)
    ZOJ 3471 Most Powerful (状压DP,经典)
    POJ 2288 Islands and Bridges (状压DP,变形)
    HDU 3001 Travelling (状压DP,3进制)
    POJ 3311 Hie with the Pie (状压DP)
    POJ 1185 炮兵阵地 (状压DP,轮廓线DP)
    FZU 2204 7
    POJ 3254 Corn Fields (状压DP,轮廓线DP)
    ZOJ 3494 BCD Code (数位DP,AC自动机)
  • 原文地址:https://www.cnblogs.com/BlueStarWei/p/13333364.html
Copyright © 2011-2022 走看看