springboot+mybatis+mysql实例
1 项目下载
2 数据库(MySQL)
DROP TABLE IF EXISTS `book`;
CREATE TABLE `book` (
`id` int(11) NOT NULL,
`title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`author` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3 创建项目(demo)详细步骤
3.1 新建项目点击【 Create New Project】–>弹出窗口【New Project】–》选择左侧【Spring Initializr】–》右上放选择SDK版本
3.2、–》点击右下方【Next】–》编辑【Group】、【Artifact】并选择对应的【Java Version】
3.3、–》点击下方【Next】–》选择依赖 Web、SQL
3.4、–》点击下方【Next】,编辑项目名,点击【Finish】,完成。
3.5、创建项目中需要用到的包,以及对应的Java文件,如下图左侧目录
3.6、自动生成的pom.xml文件(连网的情况下,或是在本地搭建了maven私服)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.cetc32</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<project.build.sourceEncodng>UTF-8</project.build.sourceEncodng>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<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.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.3.3</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.7、修改application.properties文件
#mysql数据库配置(数据库驱动、数据库地址、用户名、密码)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useSSL=false&useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123
spring.freemarker.checkTemplateLocation=false
spring.mvc.servlet.load-on-startup=100
3.8、bean文件(Book.java)
package com.springboot.mybatis.bean;
public class Book {
private int id;
private String title;
private String author;
//为每一个属性添加相应的get()、set()方法
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
3.9、创建接口层BookMapper.java
package com.springboot.mybatis.mapper;
import com.springboot.mybatis.bean.Book;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper //声明BookMapper为一个Mapper接口
public interface BookMapper {
/**
* @Result 是结果映射列表
* property 是Book类的属性名,
* colomn是数据库表的字段名
*/
@Results({
@Result(property = "id",column = "id"),
@Result(property = "title",column = "title"),
@Result(property = "author",column = "author")
})
@Insert("INSERT INTO BOOK (id,title,author) value (#{id},#{title},#{author})")
void insert(Book book);
@Delete("DELETE FROM BOOK WHERE id=#{title}")
void delete(int id);
@Update("UPDATE BOOK SET title=#{title} WHERE ID=#{id}")
void update(String title,int id);
@Select("SELECT * FROM BOOK WHERE TITLE=#{title}")
List<Book> select(String title);
}
3.10、创建服务类BookService.java
package com.springboot.mybatis.service;
import com.springboot.mybatis.bean.Book;
import com.springboot.mybatis.mapper.BookMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service //声明为服务
public class BookService {
private BookMapper bookMapper;
public String hello(){
return "hello world";
}
public String insert(int id,String title,String author){
Book book=new Book();
book.setId(id);
book.setTitle(title);
book.setAuthor(author);
System.out.println("id:"+id+",title:"+title+",author:"+author);
bookMapper.insert(book);
return "插入成功";
}
public String delete(int id){
bookMapper.delete(id);
return "删除成功";
}
public String update(String title,int id){
bookMapper.update(title,id);
return "修改成功";
}
public List<Book> select(String title){
return bookMapper.select(title);
}
}
3.11、创建前端控制类BookController.java
package com.springboot.mybatis.controller;
import com.springboot.mybatis.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController //声明为一个Restful的controller
public class BookController {
@Autowired //注入bookService
private BookService bookService;
@RequestMapping(value="/hello")
public String hello(){
return bookService.hello();
}
@RequestMapping(value = "/insert")
public String insert(int id,String title,String author){
return bookService.insert(id,title,author);
}
@RequestMapping(value = "/delete")
public String delete(int id){
return bookService.delete(id);
}
@RequestMapping(value = "/update")
public String update(String title,int id){
return bookService.update(title,id);
}
@RequestMapping(value = "/select")
public Object select(String title){
return bookService.select(title);
}
}
3.12、运行结果
在postman中,查验结果