参考链接 https://baijiahao.baidu.com/s?id=1653043822915271722
结构图
pom.xml
<?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.2.5.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.fdd</groupId> <artifactId>mybatis_at</artifactId> <version>0.0.1-SNAPSHOT</version> <name>mybatis_at</name> <description>demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
配置属性文件
src/main/resources/application.properties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.username=root spring.datasource.password= mybatis.type-aliases-package=com.fdd.mybatis.dao
对应的数据表
CREATE TABLE `person` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `age` int(3) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
1.编写 dao层
src/main/java/com/fdd/mybatis/dao/Person.java
package com.fdd.mybatis.dao; public class Person { private int id; private String name; private int age; public Person() { } public Person(int id,String name,int age) { this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String toString() { return "person{id="+this.id+",name="+this.name+",age="+this.age+"}"; } }
2.编写业务注解
src/main/java/com/fdd/mybatis/mapper/PersonMapper.java
package com.fdd.mybatis.mapper; import java.util.List; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import com.fdd.mybatis.dao.Person; public interface PersonMapper { @Insert("insert into person(name,age) values(#{name},#{age})") int insert(Person person); @Delete("delete from person where id = #{id}") int deleteByPrimaryKey(Integer id); @Update("update person set name=#{name},age=#{age} where id = #{id}") int updateByPrimaryKey(Person person); @Select("select id,name,age from person") List<Person> selectAllPerson(); @Select("select id,name,age from person where id = #{id}") List<Person> selectOne(Integer id); }
3.编写服务层
src/main/java/com/fdd/mybatis/service/PersonService.java
package com.fdd.mybatis.service; import java.util.List; import com.fdd.mybatis.dao.Person; public interface PersonService { int insertPerson(Person person); int deleteByPersonId(Integer id); int updateByPersonId(Person record); List<Person> selectAllPerson(); List<Person> selectOne(Integer id); }
src/main/java/com/fdd/mybatis/service/PersonServiceImpl.java
package com.fdd.mybatis.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.fdd.mybatis.dao.Person; import com.fdd.mybatis.mapper.PersonMapper; @Service public class PersonServiceImpl implements PersonService { @Autowired private PersonMapper personMapper; @Override public int insertPerson(Person person) { return personMapper.insert(person); } @Override public int deleteByPersonId(Integer id) { return personMapper.deleteByPrimaryKey(id); } public int updateByPersonId(Person person) { return personMapper.updateByPrimaryKey(person); } public List<Person> selectAllPerson() { return personMapper.selectAllPerson(); } public List<Person> selectOne(Integer id) { return personMapper.selectOne(id); } }
4.编写请求控制器
src/main/java/com/fdd/mybatis/controller/PersonController.java
package com.fdd.mybatis.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.fdd.mybatis.dao.Person; import com.fdd.mybatis.service.PersonService; @RestController @RequestMapping("person") public class PersonController { @Autowired private PersonService personService; @RequestMapping(value="/findAll") public String findAll() { List<Person> people = personService.selectAllPerson(); people.stream().forEach(System.out::println); return people.toString(); } @RequestMapping(value="/findOne/{id}") public List<Person> findOne(@PathVariable int id) { List<Person> people = personService.selectOne(id); return people; } @RequestMapping(value="/deleteData/{id}") public int deleteData(@PathVariable int id) { return personService.deleteByPersonId(id); } @RequestMapping(value="/addData",method = RequestMethod.POST) public int addData(@RequestBody Person person) { Person people = new Person(); people.setAge(person.getAge()); people.setName(person.getName()); return personService.insertPerson(people); } @RequestMapping(value="/updateData",method=RequestMethod.POST) public int updateData(@RequestBody Person person) { Person people = new Person(); people.setAge(person.getAge()); people.setId(person.getId()); people.setName(person.getName()); return personService.updateByPersonId(people); } }
5.入口文件添加bean扫描
src/main/java/com/fdd/mybatis/MybatisAtApplication.java
package com.fdd.mybatis; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.fdd.mybatis.mapper") public class MybatisAtApplication { public static void main(String[] args) { SpringApplication.run(MybatisAtApplication.class, args); } }