SpringBoot 集成MyBatis

1、初始化项目

这里写图片描述

使用的Maven依赖有:

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

使用MyBatis官方提供的 mybatis-spring-boot-starter,MyBatis的自动配置如图:

这里写图片描述

2、application.properties 的配置项

spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/sosweet?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root

mybatis.mapperLocations=classpath:mapper/**/*.xml
mybatis.typeAliasesPackage=com.sosweet.entity

3、注册MapperScannerConfigurer的Bean

/**
 * MyBatis扫描接口
 * 
 */
@Configuration
//TODO 注意,由于MapperScannerConfigurer执行的比较早,所以必须有下面的注解
//@AutoConfigureAfter(MyBatisConfig.class)
public class MyBatisMapperScannerConfig {

    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer() {
        MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
        mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
        mapperScannerConfigurer.setBasePackage("com.sosweet.mapper");
        return mapperScannerConfigurer;
    }
}

4、配置数据源 (使用druid)

4.1 添加druid的maven依赖

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.26</version>
        </dependency>

4.2 application.properties数据源的配置项

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.filters=stat
spring.datasource.maxActive=20
spring.datasource.initialSize=1
spring.datasource.maxWait=60000
spring.datasource.minIdle=1
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=select 'x'
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=true
spring.datasource.maxOpenPreparedStatements=20

5、编写:User.java 实体类

public class User implements Serializable {

    /** serialVersionUID. */
    private static final long serialVersionUID = 1L;

    /** 主键. */
    private String id;

    /** 用户名. */
    private String userName = "";

    /** 手机号码. */
    private String mobileNo = "";

    /** 邮箱. */
    private String email = "";

    /** 密码. */
    private String password = "";

    /** 用户类型. */
    private Integer userType = 0;

    /** 注册时间. */
    private Date registerTime = new Date();

    /** 所在区域. */
    private String region = "";

    /** 是否有效 0 有效 1 无效. */
    private Integer validity = 0;

    /** 头像. */
    private String headPortrait = "";

6、编写:UserMapper.java 接口

public interface UserMapper {

    void save(User user);
}

7、编写:UserService.java

@Service
@Transactional
public class UserService {

    @Autowired
    private UserMapper userMapper;

    /**
     * 保存
     * 
     * @param user
     * @return
     */
    public Boolean saveUser(User user){
        userMapper.save(user);
        return true;
    }

}

8、编写:UserController.java

@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("saveUser")
    public String saveUser(){

        User user = new User();
        user.setId("111111476-1");
        user.setUserName("tom");
        user.setMobileNo("15864710523");
        user.setEmail("2222@qq.com");
        user.setPassword("123");
        user.setUserType(0);
        user.setRegisterTime(new Date());
        user.setRegion("3701");
        user.setValidity(0);
        user.setHeadPortrait("///");

        userService.saveUser(user);

        return "ok";
    }

}

9、编写:UserMapper.xml

UserMapper.xml放在resources目录下:

这里写图片描述

<?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.sosweet.mapper.UserMapper">
    <insert id="save">
        insert into user(id, 
                         user_name, 
                         mobile_no, 
                         email, 
                         password, 
                         user_type, 
                         register_time, 
                         region, 
                         validity, 
                         head_portrait) 
                values(#{id}, 
                       #{userName}, 
                       #{mobileNo}, 
                       #{email}, 
                       #{password}, 
                       #{userType}, 
                       #{registerTime}, 
                       #{region}, 
                       #{validity}, 
                       #{headPortrait})
    </insert>

</mapper>

至此,完整的项目结构:

这里写图片描述

运行并测试:

这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值