这篇文章主要讲解Springboot整合Mybatis实现一个最基本的增删改查功能,整合的方式有两种一种是注解形式的,也就是没有Mapper.xml文件,还有一种是XML形式的,我推荐的是使用注解形式,为什么呢?因为更加的简洁,减少不必要的错误。
一、环境配置
对于环境配置我是用了一张表来展示,版本之间差异不大,你可以基于其他版本进行测试。Idea我已经破解了,破解码是我群里的一个朋友提供的,亲测可用。而且在2019的版本也可以永久破解。需要的可以私聊我。因为我之前写过破解的文章,因为某些原因,被平台删了。
名称 | 版本 |
---|---|
Idea | 2018专业版(已破解) |
Maven | 3.6.0 |
SpringBoot | 2.2.2 |
Mybatis | 5.1.44(版本高点比较好) |
Navicat(可视化工具) | 12(已破解) |
jdk | 1.8 |
这就是我的基本的环境。下一步我们一步一步来整合一波
二、整合Mybatis
第一步:数据库新建Person表
1SET NAMES utf8mb4; 2SET FOREIGN_KEY_CHECKS = 0; 3-- ---------------------------- 4-- Table structure for person 5-- ---------------------------- 6DROP TABLE IF EXISTS `person`; 7CREATE TABLE `person` ( 8 `id` int(11) NOT NULL AUTO_INCREMENT, 9 `name` varchar(255) CHARACTER SET utf8 10 COLLATE utf8_general_ci NULL DEFAULT NULL,11 `age` int(11) NULL DEFAULT NULL,12 PRIMARY KEY (`id`) USING BTREE13) ENGINE = InnoDB AUTO_INCREMENT = 1 14CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;15SET FOREIGN_KEY_CHECKS = 1;
这个表结构很简单,也就是三个字段id、name、age。并以id为主键且递增。
第二步:新建Springboot项目
这个比较简单,这里先给出一个最终的目录结构:
第三步:导入相关依赖
1 <!--================================================--> 2 <!--springboot开发web项目的起步依赖--> 3 <dependency> 4 <groupId>org.springframework.boot</groupId> 5 <artifactId>spring-boot-starter-web</artifactId> 6 </dependency> 7 <!-- 加载mybatis整合springboot --> 8 <dependency> 9 <groupId>org.mybatis.spring.boot</groupId>10 <artifactId>mybatis-spring-boot-starter</artifactId>11 <version>1.3.1</version>12 </dependency>13 <!-- MySQL的jdbc驱动包 -->14 <dependency>15 <groupId>mysql</groupId>16 <artifactId>mysql-connector-java</artifactId>17 <version>5.1.44</version>18 </dependency>19 <dependency>20 <groupId>junit</groupId>21 <artifactId>junit</artifactId>22 <version>4.12</version>23 </dependency>24<!--================================================-->
OK,我们只需要加上这些依赖即可。在我们的pom文件。
第四步:更改application.yml配置文件
我们只需要把application.properties文件改为yml格式即可。此时添加相关配置
1#配置服务器信息 2server: 3 port: 8082 4spring: 5 #mysql数据库相关配置 6 datasource: 7 url: jdbc:mysql://127.0.0.1:3306/uav?characterEncoding=utf8&useSSL=false 8 username: root 9 password: root10 driver-class-name: com.mysql.jdbc.Driver11#mybatis依赖12mybatis:13 type-aliases-package: com.fdd.mybatis.dao
这里的配置有点多,不过还是一个最基本的配置都在这。
第五步:新建dao包,在dao包下新建Person类
1public class Person { 2 private int id ; 3 private String name; 4 private int age; 5 public Person() { 6 } 7 public Person(int id, String name, int age) { 8 this.id = id; 9 this.name = name;10 this.age = age;11 }12 //getter和setter方法13 //toString方法14}
这个类是和我们数据库中的Person类一一对应的。
第六步:新建mapper包,在mapper新建PersonMapper类
在这个类中,我们实现基本的增删改查功能接口:
[email protected] 2public interface PersonMapper { 3 //增加一个Person 4 @Insert("insert into person(id,name,age)values(#{id},#{name},#{age})") 5 int insert(Person person); 6 //删除一个Person 7 @Delete("delete from person where id = #{id}") 8 int deleteByPrimaryKey(Integer id); 9 //更改一个Person10 @Update("update person set name =#{name},age=#{age} where id=#{id}")11 int updateByPrimaryKey(Integer id);12 //查询一个Person13 @Select("select id,name ,age from person where id = #{id}")14 Person selectByPrimaryKey(Integer id);15 //查询所有的Person16 @Select("select id,name,age from person")17 List<Person> selectAllPerson();18}
这就是最基本的一个增删改查操作的接口。
第七步:新建service包,在service包创建PersonService接口
1public interface PersonService { 2 //增加一个Person 3 int insertPerson(Person person); 4 //删除一个Person 5 int deleteByPersonId(Integer id); 6 //更改一个Person 7 int updateByPersonId(Person record); 8 //查询一个Person 9 Person selectByPersonId(Integer id);10 //查询所有的Person11 List<Person> selectAllPerson();12}
第八步:在service包下创建PersonServiceImpl接口实现类
[email protected] 2public class PersonServiceImpl implements PersonService { 3 @Autowired 4 private PersonMapper personMapper; 5 @Override 6 public int insertPerson(Person person) { 7 return personMapper.insert(person); 8 } 9 @Override10 public int deleteByPersonId(Integer id) {11 return personMapper.deleteByPrimaryKey(id);12 }13 @Override14 public int updateByPersonId(Person record) {15 return personMapper.updateByPrimaryKey(record);16 }17 @Override18 public Person selectByPersonId(Integer id) {19 return personMapper.selectByPrimaryKey(id);20 }21 @Override22 public List<Person> selectAllPerson() {23 return personMapper.selectAllPerson();24 }25}
第九步:编写controller层
[email protected] 2public class PersonController { 3 @Autowired 4 private PersonService personService; 5 @RequestMapping(value = "/add") 6 public String students () { 7 Person person = new Person(); 8 person.setId(1); 9 person.setName("java的架构师技术栈");10 person.setAge(18);11 int result = personService.insertPerson(person);12 System.out.println("插入的结果是:"+result);13 return result+"";14 }15 @RequestMapping(value = "/findAll")16 public String findAll () {17 List<Person> people = personService.selectAllPerson();18 people.stream().forEach(System.out::println);19 return people.toString()+"";20 }21}
第十步:在启动主类添加扫描器
[email protected][email protected]("com.fdd.mybatis.mapper")3public class SpringBootMybatisApplication {4 public static void main(String[] args) {5 SpringApplication.run(SpringBootMybatisApplication.class, args);6 }7}
第十一步:测试
在浏览器输入相应的路径即可。OK。大功告成。只要你按照上面的步骤一步一步来,就一定OK。
精彩评论