从零开始的SpringBoot项目 ( 四 ) 整合mybatis
一、创建一个SpringBoot项目
从零开始的SpringBoot项目 ( 二 ) 使用IDEA创建一个SpringBoot项目
二、引入相关依赖
1 <!--mysql数据库驱动--> 2 <dependency> 3 <groupId>mysql</groupId> 4 <artifactId>mysql-connector-java</artifactId> 5 <scope>runtime</scope> 6 </dependency> 7 <!--mybatis--> 8 <dependency> 9 <groupId>org.mybatis.spring.boot</groupId> 10 <artifactId>mybatis-spring-boot-starter</artifactId> 11 <version>2.1.0</version> 12 </dependency>
三、创建三层框架
创建实体类 UserInfoDO
1 package com.my_springboot.user.pojo; 2 3 import java.io.Serializable; 4 5 public class UserInfoDO implements Serializable { 6 7 private static final long serialVersionUID = 1L; 8 // 用户ID 9 private String id; 10 // 用户名 11 private String username; 12 // 密码 13 private String password; 14 15 //省略get set方法 16 17 }
创建接口 UserInfoDAO
1 package com.my_springboot.user.dao; 2 3 import com.my_springboot.user.pojo.UserInfoDO; 4 import java.util.List; 5 6 public interface UserInfoDAO { 7 List<UserInfoDO> listUsers(); 8 }
在resources/mapper文件夹中创建文件 UserMapper.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 4 <mapper namespace="com.my_springboot.user.dao.UserInfoDAO"> 5 6 <select id="listUsers" resultType="UserInfoDO"> 7 SELECT * FROM sys_user_info 8 </select> 9 10 </mapper>
1 package com.my_springboot.user.service; 2 3 import com.my_springboot.user.pojo.UserInfoDO; 4 import java.util.List; 5 6 public interface IUserInfoService { 7 List<UserInfoDO> listUsers(); 8 }
创建实现类 UserInfoServiceImpl
注意:需要在接口实现类中使用@Service注解,才能被SpringBoot扫描,在Controller中使用@Authwired注入
1 package com.my_springboot.user.service.impl; 2 3 import com.my_springboot.user.dao.UserInfoDAO; 4 import com.my_springboot.user.pojo.UserInfoDO; 5 import com.my_springboot.user.service.IUserInfoService; 6 import java.util.List; 7 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.stereotype.Service; 9 10 @Service 11 public class UserInfoServiceImpl implements IUserInfoService { 12 13 @Autowired 14 UserInfoDAO userInfoDAO; 15 @Override 16 public List<UserInfoDO> listUsers(){ 17 return userInfoDAO.listUsers(); 18 } 19 }
创建api接口 UserInfoController
package com.my_springboot.user.controller; import com.my_springboot.user.pojo.UserInfoDO; import com.my_springboot.user.service.IUserInfoService; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/userInfo") public class UserInfoController { @Autowired IUserInfoService userInfoService; @GetMapping("/listUsers") public List<UserInfoDO> listUsers() { return userInfoService.listUsers(); } }
在启动类中添加@MapperScan注解 , 扫描所有 Mapper 接口
package com.my_springboot; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @MapperScan("com.my_springboot.*.dao") @SpringBootApplication public class MySpringbootApplication { public static void main(String[] args) { SpringApplication.run(MySpringbootApplication.class, args); } }
四、配置文件
在 resources 文件夹中创建配置文件 application.yml
1 server: 2 #端口号 3 port: 8080 4 5 spring: 6 #数据库连接配置 7 datasource: 8 # driver-class-name: com.mysql.cj.jdbc.Driver 9 url: jdbc:mysql://localhost/my_springboot?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC 10 username: root 11 password: root 12 13 #mybatis的相关配置 14 mybatis: 15 #mapper配置文件 16 mapper-locations: classpath:mapper/*.xml 17 type-aliases-package: com.my_springboot.*.pojo 18 #开启驼峰命名 19 configuration: 20 map-underscore-to-camel-case: true
注意:
1.mybatis 中的 mapper-locations 是 mapper 的 xml 文件位置
2.mybatis 中的 type-aliases-package 是为了配置 xml 文件中 resultType 返回值的包位置
1.mybatis 中的 mapper-locations 是 mapper 的 xml 文件位置
2.mybatis 中的 type-aliases-package 是为了配置 xml 文件中 resultType 返回值的包位置
五、创建数据库和数据表
1 -- ---------------------------- 2 -- Table structure for sys_user_info 3 -- ---------------------------- 4 DROP TABLE IF EXISTS `sys_user_info`; 5 CREATE TABLE `sys_user_info` ( 6 `id` varchar(32) NOT NULL, 7 `username` varchar(255) DEFAULT NULL, 8 `password` varchar(255) DEFAULT NULL, 9 PRIMARY KEY (`id`) 10 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 11 12 -- ---------------------------- 13 -- Records of tb_user 14 -- ---------------------------- 15 INSERT INTO `sys_user_info` VALUES ('1', 'laowang', '112233'); 16 INSERT INTO `sys_user_info` VALUES ('2', 'laoli', '123456');
六、启动并访问
启动springboot
访问 http://localhost:8080/userInfo/listUsers