Spring Boot 配置 MyBatis 入门教程

最近在公司接触 spring boot 后台,今天记录下 Spring Boot 框架和 MyBatis 配置的记录。

添加 MyBatis 依赖
        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!-- 数据库 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
配置数据库密码等信息

在 application.properties 文件中添加如下配置

spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root

分别是数据库路径、用户名、密码和数据库驱动。这里测试用的是 MySql 数据库。工作中可能会用到 Oracle 数据库,那么这段配置就需要修改一下了

spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@172.1.1.1:1521:orcl
spring.datasource.username=oracle
spring.datasource.password=oracle

这里我并没有测试过 Oracle 数据库,如果读者需要使用还是应该自己提前配置并测试一下。

数据库建表并配置实体类

在数据库中建好表

DROP TABLE IF EXISTS `book`;
CREATE TABLE `book` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(128) DEFAULT NULL,
  `author` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;

新建实体类 Book.java

public class Book {

  private Integer id;
  private String name;
  private String author;
  // 省略 getter / setter
}

新建一个 mapper 目录,并在目录下新建 BookMapper.java 和 BookMapper.xml 文件。文件内容分别如下:

@Mapper
public interface BookMapper {

  int addBook(Book book);

  int deleteBookById(Integer id);

  int updateBookById(Book book);

  Book getBookById(Integer id);

  List<Book> getAllBooks();

}

这里是对数据库操作的一些方法。

<?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.logxu.mapper.BookMapper">

    <insert id="addBook" parameterType="com.logxu.Book">
        INSERT INTO book(name,author) VALUES (#{name},#{author})
    </insert>
    <delete id="deleteBookById" parameterType="int">
        DELETE FROM book WHERE id = #{id}
    </delete>
    <update id="updateBookById" parameterType="com.logxu.Book">
        UPDATE book set name = #{name}, author = #{author} WHERE id = #{id}
    </update>
    <select id="getBookById" parameterType="int" resultType="com.logxu.Book">
        SELECT * FROM book WHERE id = #{id}
    </select>
    <select id="getAllBooks" resultType="com.logxu.Book">
        SELECT * FROM book
    </select>
</mapper>

这里是对数据库操作方法的具体实现。

接着新建 BookService.java

@Service
public class BookService {

  @Autowired
  BookMapper bookMapper;

  public int addBook(Book book) {
    return bookMapper.addBook(book);
  }

  public int updateBook(Book book) {
    return bookMapper.updateBookById(book);
  }

  public int deleteBookById(Integer id) {
    return bookMapper.deleteBookById(id);
  }

  public Book getBookById(Integer id) {
    return bookMapper.getBookById(id);
  }

  public List<Book> getAllBooks() {
    return bookMapper.getAllBooks();
  }
}

新建 BookController.java

@RestController
public class BookController {

  @Autowired
  BookService bookService;

  @GetMapping("/bookOps")
  public void bookOps() {
    Book b1 = new Book();
    b1.setName("西厢记");
    b1.setAuthor("王实甫");
    int i = bookService.addBook(b1);
    System.out.println("addBook>>>" + i);
    Book b2 = new Book();
    b2.setId(1);
    b2.setName("朝花夕拾");
    b2.setAuthor("鲁迅");
    int updateBook = bookService.updateBook(b2);
    System.out.println("updateBook>>>" + updateBook);
    Book b3 = bookService.getBookById(1);
    System.out.println("getBookById>>>" + b3);
    int delete = bookService.deleteBookById(2);
    System.out.println("deleteBookById>>>" + delete);
    List<Book> allBooks = bookService.getAllBooks();
    System.out.println("getAllBooks>>>" + allBooks);
  }
}

到这里,运行项目,就可以操控数据库了。当然更多的东西还需要继续探索学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值