SpringBoot整合Mybatis配置与事物(5)
前提
SpringBoot整合Mybatis需要导入 jar
第一种
第二种
1:spring-boot-starter-xxxx:springboot中自带的
starter
2:xxx-spring-boot-starter :第三方和springboot集成提供的
starter
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<!--alibaba的druid数据库连接池 (德鲁伊)-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
在application.properties里配置,数据源和mybatis
我在这里直接 把mybatis-config.xml放在resources里所以mybatis就配置了指定mybatis的路径和指定mapper.xml文件的路径 如果没有mybatis-config.xml可以在application.properties直接配置mybatis的你所需的内容(这里我是加了,也可不加不加注意就不要写:mybatis.config-location=classpath:mybatis-config.xml了)
)
如果我们的***mapper.xml文件和我们的mapper接口放在同一级目录下面,我们也可以将制定xml的配置也去掉。
数据源问题:
注意:1:spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
用第一个不会报错但是系统有提示你的配置:
2: 2.0版本后是:spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
第2个不会 所以我建议用第二个
#连接数据源
spring.datasource.druid.username=root
spring.datasource.druid.password=ROOT
spring.datasource.druid.url=jdbc:mysql:///数据库名?serverTimezone=GMT%2B8
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.initial-size=5
#指定mybatis的路径
mybatis.config-location=classpath:mybatis-config.xml
#指定mapper.xml文件的路径
mybatis.mapper-locations=classpath:com/xxx/mapper/*Mapper.xml
打印Sql语句也配置在application.properties里
注意包路径
logging.level.com.xxx.mapper=debug
对mapper接口扫描配置在启动类
@MapperScan()扫描的时候,必须扫描到mapper的目录,切记不可范围太
大,不然会创建多个service接口代理类,注入出现问题。
@MapperScan("com.xxx.mapper")
注意如果mapper.xml再java包下需要在pom里的<build></build>
里添加扫描点xml的jar文件
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
对于事物的管理可以添加在启动类上注解
在SpringBoot里事物的控制也是注解来控制的
@EnableTransactionManagement
@Transactional(readOnly = true)
测试:
get请求
package com.xxx.controller;
import com.xxx.pojo.User;
import com.xxx.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
/**
* Created by Administrator on 2019\3\12 0012.
*/
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/user/{userId}")
public User getById (@PathVariable("userId") Integer userId){
User user=userService.getById(userId);
return user;
}
}
结果已查结果
post请求
package com.xxx.controller;
import com.xxx.pojo.User;
import com.xxx.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
/**
* Created by Administrator on 2019\3\12 0012.
*/
@RestController
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/tt")
public String save(User user){
userService.save(user);
// 成功返回OK
return "ok";
}
}
SpringBoot整合Mybatis
作者: T
来源链接:https://blog.csdn.net/weixin_44520739/article/details/88432357