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>
    

      

  • 相关阅读:
    高性能网络编程(七):到底什么是高并发?一文即懂!
    社交软件红包技术解密(十一):最全解密微信红包随机算法(含代码实现)
    sonar集成阿里p3c代码规范
    jenkins+sonar 持续集成检测代码质量
    JavaScript 利用零宽断言批量替换为注释符 // 后面加空格
    Git 合并时 submodule 冲突问题解决方法
    小程序 iphone X 1rpx 边框透明及不显示问题
    加快pip下载速度
    python中remove函数的坑
    Java程序运行内存机制
  • 原文地址:https://www.cnblogs.com/BlueStarWei/p/13333364.html
Copyright © 2011-2022 走看看