前言
初学IDEA搭建SpringBoot+mybatis框架的时候,被恶心过一阵子,这篇文章送给和我一样正在这条路上的朋友
目录
一、使用环境
环境:IDEA2018、Mysql5.7、SpringBoot2.4.1、JDK1.8.0_71
二、搭建步骤
1. 创建项目,如下图
2. 选择Spring Initializr
注意:这里的Project SDK使用你自己安装好的JDK(比如我安装的是JDK1.8.0_71),然后点击Next
3. 创建项目包名,根据你的需求自定义
注意:Java Version要使用与我们上一步选择的JDK是同版本,所以这里我们选择8,最后点击Next
4. 选择依赖
5. 依赖添加完以后,点击Next,最后点击Finish即可
6. Maven更新
注意:出现图中右下角的弹窗(没有出现就不用管),意思是提醒你下载依赖,点击Import Changes就好了。由于Maven是国外的镜像,所以更新可能会比较慢(除非使用科学上网)。可以看我的另一篇文章,Maven镜像修改之阿里云镜像(IDEA版本),非常好用。
三、配置运行
1. 基本结构
注意:controller、mapper、model、service、impl包和resources目录下的mapper文件需要自己创建
resources目录下的mapper文件不知道怎么创建的看这里
2. 修改application.properties配置信息
# 数据源配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# mybatis配置
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
mybatis.type-aliases-package=com.example.demo.model
3. 依赖文件pom.xml讲解
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>
<!-- 父项目,也就是SpringBoot,我们要用他的东西,就要继承它 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- 项目组织的唯一标识符 :对应JAVA的包的结构,是main目录里java的目录结构-->
<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-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</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>
</dependencies>
<!-- 构建设置,主要包含两个部分:plugins设置构建的插件和resources排除或者删除资源文件 -->
<build>
<!--使用的插件列表 此处直接用父项目的plugins-->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
4. 启动类DemoApplication
注意:DemoApplication类需要放在com.example.demo这个包下(项目创建以后,不要去改动这个类的位置),否则程序会找不到启动类。最好是按照SpringBoot的要求来,除非你有特殊的需求要更换启动类的位置。
右键DemoApplication,并且点击Run 'DemoApplication'即可启动项目了
控制台出现下面红色方框内的提示,表示启动成功
四、简单测试
1. 准备工作
1.1 数据库中创建一个表
CREATE TABLE `user` (
`id` int(32) NOT NULL AUTO_INCREMENT,
`name` varchar(32),
`age` int
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
1.2 在model包下新建User类
public class User {
private String id;
private String name;
private Integer age;
public User() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
1.3 在mapper包下创建UserMapper接口
@Repository
public interface UserMapper {
User getUserById(String userId);
}
1.4 在service包下创建UserService接口
public interface UserService {
User getUserById(String userId);
}
1.5 impl包下创建UserServiceImpl实现类
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User getUserById(String userId) {
return userMapper.getUserById(userId);
}
}
1.6 在资源文件:mapper文件中创建UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
<resultMap id="BaseResultMap" type="com.example.demo.model.User">
<result column="id" jdbcType="VARCHAR" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="age" jdbcType="INTEGER" property="age" />
</resultMap>
<select id="getUserById" resultType="com.example.demo.model.User">
select * from user where id = #{id}
</select>
</mapper>
1.7 在controller包下创建UserController类
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("getUser/{id}")
public String getUser(@PathVariable String id){
return userService.getUserById(id).toString();
}
}
1.8 最后,最重要也是大家最容易忽视的一步:为启动类加上扫描注解
2 启动测试
访问之前,请给你的user表插入一条数据
浏览器输入 localhost:8080/user/getUser/1,得到结果:
不出意外的话,我相信你也运行成功了,麻烦各位老板+帅哥点个赞吧 ^.^