本文已参与「新人创作礼」活动,一起开启掘金创作之路。
MyBatis 是一款优秀的持久层框架,而在springboot中去使用它也是非常的方便.
1.首先先在springboot中的pom.xml中添加mybatis依赖和所需的数据源,在这里我使用的是alibaba的数据源
<dependencies>
<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>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.9</version>
</dependency>
</dependencies>
这个是一个mybatis的小demo的整个依赖,其中我需要的是
druid
mybatis-spring-boot-starter
mysql-connector-java
这三个依赖,然后配置好application.properties 连接到自己电脑上的数据库
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/mybatisdemo
spring.datasource.username=root
spring.datasource.password=123456
2.然后我们创建一个实体类和数据库里面的表的值一样
public class Book {
private Integer id;
private String name;
private String author;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
3.然后我们再创建一个BookMapper.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.ty.BookMapper">
<insert id="addBook" parameterType="com.example.demo.ty.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.example.demo.ty.Book">
DELETE FROM book WHERE id=#{id}
</update>
<select id="getBookById" parameterType="int" resultType="com.example.demo.ty.Book">
SELECT * FROM book WHERE id=#{id}
</select>
<select id="getAllBooks" resultType="com.example.demo.ty.Book">
SELECT * FROM book
</select>
</mapper >
4.然后我们再创建一个BookMapper.java来调用对应xml里面的sql语句
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface BookMapper {
int addBook(Book book);
int deleteBookById(int id);
int updateBookById(Book book);
Book getbookById();
List<Book> getAllBooks() ;
List<Book> queryBooksBySql(Map<String,Object> data);
}
其中我们的方法名一定要和xml里面的id相对应,不然会找不到对应的方法进而产生异常,而@Mapper这个注解也不能少
5.写一个BookService.java来进行调用BookMapper.java里面的方法
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@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 deteleBook(int id) {
return bookMapper.deleteBookById(id) ;
}
public Book getBookByid(Integer id) {
return bookMapper.getbookById () ;
}
public List<Book> getAllBooks () {
return bookMapper.getAllBooks ();
}
}
其中@Autowired 注解是把BookMapper自动装载进来
6.最后在BookController.java进行调用
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class BookController {
@Autowired
BookService bookService;
//添加
@GetMapping ("/addBool")
public void addBook () {
Book bl= new Book() ;
bl.setName ("西厢记");
bl.setAuthor("魯迅");
int i = bookService.addBook (bl) ;
System.out.println("addBook>>" + i);
}
//查询
@GetMapping ("/findAll")
public List<Book> findBook () {
List<Book> bl = bookService.getAllBooks();
System.out.println(bl);
return bl;
}
}
}
而这就完全了一个mybatis 的简单的增删改查demo了