SpringBoot - 使用MyBatis操作数据库1(安装配置,基本用法)

作者: hangge 发布时间: 2020-01-29 浏览: 78 次 编辑

一、基本介绍

1,什么是 MyBatis

  • MyBatis 是一款优秀的持久化框架,原名叫做 iBatis2010 年改名为 MyBatis
  • MyBatis 支持定制化 SQL、存储过程以及高级映射。MyBatis 几乎避免了所有的 JDBC 代码手动设置参数以及获取结果集。
  • 在传统的 SSM 框架整合中,使用 MyBatis 需要大量的 XML 配置。而在 Spring Boot 中,MyBatis 官方提供了一套自动化配置方案,可以做到 MyBatis 开箱即用。

2,安装配置

mybatis-spring-boot-starterMyBatis 依赖
mysql-connector-javaMySQL 数据库驱动
druidDruid 是阿里巴巴开发的号称为监控而生的数据库连接池,也是目前最好的数据库连接池。

<!-- MyBatis依赖 -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
</dependency>
 
<!-- 数据库驱动依赖 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
 
<!-- 数据库连接池 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.9</version>
</dependency>
原文出自:www.hangge.com  转载请保留原文链接:https://www.hangge.com/blog/cache/detail_2535.html

(2)接着在 application.properties 中配置数据库连接信息:

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/hangge
spring.datasource.username=root
spring.datasource.password=hangge1234

二、基本用法

1,创建实体类

(1)假设我们数据库表结构如下:

原文:SpringBoot - 使用MyBatis操作数据库1(安装配置,基本用法)


(2)创建对应的 User 实体类:

@Setter
@Getter
@NoArgsConstructor
@ToString
public class User {
    private Integer id;
    private String userName;
    private String passWord;
}

(2)接着在 UserMapper 相同的位置创建 UserMapper.xml 文件,内容如下:

代码说明:

  • 针对 UserMapper 接口中的每一个方法都在 UserMapper.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.example.demo.mapper.UserMapper">
    <insert id="addUser" parameterType="com.example.demo.bean.User">
        INSERT INTO users(username, password) VALUE (#{userName}, #{passWord})
    </insert>
    <delete id="deleteUserById" parameterType="int">
        DELETE FROM users WHERE id=#{id}
    </delete>
    <update id="updateUser" parameterType="com.example.demo.bean.User">
        UPDATE users set username=#{userName}, password=#{passWord} WHERE id=#{id}
    </update>
    <select id="getUserById" parameterType="int" resultType="com.example.demo.bean.User">
        SELECT * FROM users WHERE id=#{id}
    </select>
    <select id="getAllUsers" resultType="com.example.demo.bean.User">
        SELECT * FROM users
    </select>
</mapper>

(3)由于在 Maven 工程中,XML 配置文件建议写在 resources 目录下,但上面的 UserMapper.xml 文件写在包下,Maven 在运行时会忽略包下的 XML 文件。因此需要在 pom.xml 文件中重新指明资源文件位置,配置如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
    <!-- 重新指明资源文件位置 -->
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
</build>

3,创建 Controller

我们在 Controller 中通过调用 UserMapper 进行数据的增、删、改、查操作。

@RestController
public class HelloController {
 
    @Autowired
    UserMapper userMapper;
 
    @RequestMapping("/test")
    public void test(){
        // 新增数据
        User user1 = new User();
        user1.setUserName("hangge");
        user1.setPassWord("123456");
        int i1 = userMapper.addUser(user1);
        System.out.println("插入一条数据>>>" + i1);
 
        // 修改数据
        User user2 = new User();
        user2.setId(1);
        user2.setPassWord("888888");
        int i2 = userMapper.updateUser(user2);
        System.out.println("更新一条数据>>>" + i2);
 
        // 删除数据
        int i3 = userMapper.deleteUserById(12);
        System.out.println("删除一条数据>>>" + i3);
 
        // 查询单条数据
        User user4 = userMapper.getUserById(1);
        System.out.println("查询1条数据>>>" + user4.toString());
 
        // 查询多条数据
        List users = userMapper.getAllUsers();
        System.out.println("查询多条数据>>>" + users);
 
        return;
    }
}

4,运行测试

在浏览器中访问 http://localhost:8080/test 地址,可以看到控制台打印出的日志如下:

原文:SpringBoot - 使用MyBatis操作数据库1(安装配置,基本用法)


原文出自:www.hangge.com 转载请保留原文链接:https://www.hangge.com/blog/cache/detail_2535.html