SpringBoot整合MyBatis

一、SpringBoot整合MyBatis

1.1、在pom.xml文件中引入mybatis所需要的依赖

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>

1.2、配置数据库连接信息

spring:
  datasource:
    username: root
    password: xbh123
    url: jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource

    #Spring Boot 默认是不注入这些属性值的,需要自己绑定
    #druid 数据源专有配置
    initialSize: 5
    minIdle: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true

    #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入

    filters: stat,wall,log4j
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

1.3、测试连接

@SpringBootTest
class SpringbootJdbcApplicationTests {
    @Autowired
    DataSource dataSource;
    @Test
    void contextLoads() throws SQLException {
        //看一下默认数据源
        System.out.println(dataSource.getClass());
        //获得连接
        Connection connection =   dataSource.getConnection();
        System.out.println(connection);

        DruidDataSource druidDataSource = (DruidDataSource) dataSource;
        System.out.println("druidDataSource 数据源最大连接数:" + druidDataSource.getMaxActive());
        System.out.println("druidDataSource 数据源初始化连接数:" + druidDataSource.getInitialSize());

        //关闭连接
        connection.close();
    }

}
class com.alibaba.druid.pool.DruidDataSource
com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@3a7b2e2
druidDataSource 数据源最大连接数:20
druidDataSource 数据源初始化连接数:5

1.4、创建对应的实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private String username;
    private String password;
    private String email;
}

1.5、创建mapper目录以及对应的 Mapper 接口

//@Mapper : 表示本类是一个 MyBatis 的 Mapper
@Mapper
@Repository
public interface UserMapper {
    //获取所有的用户
    List<User> queryUserList();

    User queryUserById(); 

    int addUser(User user);

    int updateUser(User user);

    int deleteUser(int id);

}

  • 也可以在启动类上边加@MapperScan("com.xbh.mapper")
@SpringBootApplication
@MapperScan("com.xbh.mapper")
public class SpringbootJdbcApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootJdbcApplication.class, args);
    }

}

1.6、对应的Mapper映射文件(xxxMapper.xml)

统一的在resources下创建一个mybatis目录,在mybatis目录下在建一个mapper目录,用来存放xxxMapper.xml文件
在这里插入图片描述

  • 在application.yml文件中整合mybatis【这一步至关重要】
mybatis:
  type-aliases-package: com.xbh.pojo #起别名
  mapper-locations: classpath:mybatis/mapper/*.xml #映射到指定目录
  • xxxMapper.xml
<?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.xbh.mapper.UserMapper">
    <insert id="addUser" parameterType="com.xbh.pojo.User">
        insert into t_user (username,password,email)
        values (#{username},#{password},#{email});
    </insert>
    <update id="updateUser" parameterType="com.xbh.pojo.User">
        update t_user set username=#{username},password=#{password},email=#{email} where id=#{id};
    </update>
    <delete id="deleteUser" parameterType="int">
        delete from t_user where id=#{id};
    </delete>
    <select id="queryUserList" resultType="com.xbh.pojo.User">
        select * from t_user;
    </select>
    <select id="queryUserById" resultType="com.xbh.pojo.User">
        select *
        from t_user
        where id=#{id};
    </select>
</mapper>

1.7、测试

@RestController
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @RequestMapping("/queryUser")
    public List<User> queryUserList(){
        List<User> users = userMapper.queryUserList();
        return users;
    }

    @GetMapping("/addUser1")
    public String addUser1(){
        userMapper.addUser(new User("wangqianqian","123456789","987@qq.com"));
        return "ok";
    }

    @GetMapping("/updateUser1/{id}")
    public String updateUser1(){
        userMapper.updateUser(new User("6666","456654","654@qq.com"));
        return "ok";
    }


    @GetMapping("/deleteUser1")
    public String deleteUser1(){
        userMapper.deleteUser(19);
        return "ok";
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值