频道栏目
首页 > 资讯 > 其他 > 正文

spring boot 学习(五)SpringBoot+MyBatis(XML)+Druid

17-01-25        来源:[db:作者]  
收藏   我要投稿

spring boot 学习(五)SpringBoot+MyBatis(XML)+Druid:springboot集成了springJDBC与JPA,但是没有集成mybatis,所以想要使用mybatis就要自己去集成。

主要是在Spring Boot中集成MyBatis,可以选用基于注解的方式,也可以选择xml文件配置的方式。官方推荐使用xml文件配置。

springboot+mybatis+druid

1. 引入依赖

        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.1.1
            
        
        
        
            com.alibaba
            druid
            1.0.20
        
        
        
             mysql
             mysql-connector-java
             5.0.5
        

2. 在Mysql中创建Users表

Users表中包含id(BIGINT)、name(INT)、age(VARCHAR)字段。

3. 创建接口Mapper(不是类)和对应的XML文件

User实体类:

public class User {

    private long id;
    private String name;
    private Integer age;

    // 省略相应的 getter 与 setter 方法
}

UserDao接口:实现插入和查询操作
注意必须加上@Mapper的注解,不然@Autowired将注入失败。

@Mapper
public interface UserDao{

    int insertUser(@Param("user") User user);

    User findByName(String name);
}

@Mapper注解标记这个接口作为一个映射接口。真正实现映射的方法(XML文件)需要源对象作为参数,并返回目标对象。
UserMapper.xml文件:




    

    
    
        
        
        
    

    
        INSERT INTO users(name, age)
        VALUES (#{user.name}, #{user.age})
    

    

4. 配置文件

application.properties:

# 驱动配置信息
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/myboot?useUnicode=true&characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.driverClassName = com.mysql.jdbc.Driver

#连接池的配置信息
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.filters=stat,wall,log4j
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

# MyBatis 配置
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=qg.fangrui.boot.model

5. 调用测试:

一般情况下,我是用Controller层调用Service层,Service层调用Dao层。测试案例比较简单,我就不列了,只是简单展示一下相应的Controller。

@RestController
@RequestMapping("/test")
public class TestController {

    @Autowired
    private UserService userService;

    @RequestMapping("/add")
    public String add(User user){
        return String.valueOf(userService.add(user));
    }

}

效果图:
Postman测试图:
Postman测试图
Druid监控图:
Druid监控图

附录

补充

mybatis-spring-boot-starter的依赖树:
依赖树

Mybatis 在 SpringBoot 中的配置:
* mybatis.mapper-locations:xml文件扫描位置
* mybatis.type-aliases-package:Model包扫描位置
* mybatis.config:mybatis-config.xml配置文件的路径
* mybatis.typeHandlersPackage:扫描typeHandlers的包
* mybatis.checkConfigLocation:检查配置文件是否存在
* mybatis.executorType:设置执行模式(SIMPLE, REUSE, BATCH),默认为SIMPLE

相关TAG标签
上一篇:java并发编程实战
下一篇:消息队列NetMQ原理分析1-Context和ZObject
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站