SpringMVC集成Mybatis

 

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<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中添加配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<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路径下】

1
2
3
4
5
6
7
8
9
10
11
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路径下】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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路径下】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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路径下】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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文件)

1
2
3
4
5
6
7
8
9
10
11
<!-- 促使IDEA编译src/main/java路径下的xml-->
<build>
  <resources>
    <resource>
      <directory>src/main/java</directory>
      <includes>
        <include>**/*.xml</include>
      </includes>
    </resource>
  </resources>
</build>

  

posted @   blue星空  阅读(258)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示