最近在公司接触 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);
}
}
到这里,运行项目,就可以操控数据库了。当然更多的东西还需要继续探索学习。