目录
前言:
现在越来越多的项目都是springboot +mybatis 结合了,log4j 也慢慢被淘汰了,所以推荐使用 log4j2 ,下面是整个的流程
一:使用Maven创建springboot 项目
二:添加Maven配置
可以删掉没有用的文件
三:pom.xml 配置
四:新建一个student类测试一下
一般的文件分层结构,业务分离
先测试一下springboot项目建立成功
public class StudentinfoController { @GetMapping("/hello") public String hello(){ return "hello Springboot"; } }
application.yml 添加项目名
server: port: 8099 servlet: context-path: /demo
说明启动成功
五、链接MySQL,结合mybatis使用
1、新建表
CREATE TABLE `student`(
`stuId` INT(11) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(20) COMMENT '姓名',
`age` INT(2) COMMENT '年龄',
`sex` VARCHAR(4) COMMENT '性别',
`stuClass` INT(11) COMMENT '班级',
PRIMARY KEY (`stuId`)
)ENGINE=MYISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 ;
随便加几条数据
INSERT INTO student VALUES(1001,'张三',10,'男',202201),(1002,'李四',10,'男',202201),
(1003,'王五',11,'男',202202),(1004,'小红',10,'女',202201)
2、实体类
@Data public class StudentBo { private int stuId; private String name; private int age; private String sex; private int stuClass; }
我习惯使用lombak插件。可以直接使用@Data
直接下载,然后导入依赖
<!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> <scope>provided</scope> </dependency>
3、mapper 接口
public interface StudentinfoMapper { public List<StudentBo> selectStudent(); }
4、启动类添加mapper注解
加注解之前需要pom.xml 先添加mybatis 依赖
<!-- mybatis相关 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency>
@SpringBootApplication @MapperScan(basePackages = "com.example.demo.**.mapper") public class SpringbootappApplication { public static void main(String[] args) { SpringApplication.run(SpringbootappApplication.class, args); } }
PS:如果有多个包,中间用逗号隔开就可以
@MapperScan(basePackages = {"com.example.demo.**.dao","com.example.demo.**.mapper"})
5、mapper.xml
<mapper namespace="com.example.demo.student.mapper.StudentinfoMapper"> <select id="selectStudent" resultType="com.example.demo.student.bo.StudentBo"> SELECT * FROM student limit 20 </select> </mapper>
6、StudengService 接口
public interface StudengService { public List<StudentBo> selectStudent(); }
7、StudentserviceImpl 实现类
@Service public class StudentserviceImpl implements StudengService { @Resource private StudentinfoMapper studentinfoMapper; @Override public List<StudentBo> selectStudent() { return studentinfoMapper.selectStudent(); } }
这里idea有个问题,使用@Autowired 注解的话会有报错,所以我改成@Resource了,不影响
8、StudentinfoController 类
@RestController @RequestMapping("/studentinfoController") public class StudentinfoController { @GetMapping("/hello") public String hello(){ return "hello Springboot"; } @Autowired private StudengService studengService ; @RequestMapping("/selectStudent") public List<StudentBo> selectStudent(){ return studengService.selectStudent(); } }
9、application.yml 完整配置
server: port: 8099 servlet: context-path: /demo # 多数据源 spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://XXXXXX?allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&failOverReadOnly=false username: XXXXX password: XXXXX mybatis: mapper-locations: classpath:/mapper/*.xml configuration: map-underscore-to-camel-case: false log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl logging: config: classpath:log4j2.xml level: com.example.demo.**.mapper: debug
注意
这里的mybatis 路径是所有的 xml 路径,可以用**代替同级多匹配路径 。
这里的logging 的config 配置,里面是log4j2.xml 的路径,level 里面对应的你的dao 层 或者mapper 层路径 ,多个路径的加逗号一样可以, ** 可以代替同级多匹配路径 。
10、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.7.12</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</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-test</artifactId>
<scope>test</scope>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!--5.5及以下-->
<version>5.1.40</version>
<!--5.6及以上-->
<!--<version>8.0.21</version>-->
</dependency>
<!-- mybatis相关 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
11、数据库插入几条数据
六、启动项目 。
http://localhost:8099/demo/studentinfoController/selectStudent
到这里就已经实现了 maven+springboot +mybatis 的整合使用了。
如果觉得对你有帮助的话欢迎点赞关注哦!