github地址 https://github.com/zs-neo/springboot-mybatis 欢迎star!
sprintboot+mybatis入门环境搭建
近期选用了springboot做后端的开发,记录一下配置环境的各种问题及步骤。项目选用idea工具开发。
一、整体环境
目录结构
数据库表
pom依赖
已经解决如下问题
- druid和mysql冲突,更改为可兼容的版本号即可(如下)
- com.mysql.jdbc.Driver被弃用,更改为8.0.11版本,同时修改连接配置为com.mysql.cj.jdbc.Driver
- 各类springboot版本不兼容问题,如springboot1.5.6版本和2.1.0版本对其他依赖的兼容程度是不同的,如果出了依赖问题可能只能挨个删除依赖检验是否兼容。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!--<version>2.1.0.RELEASE</version>-->
<version>1.5.6.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<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>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<!-- alibaba的druid数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-joda</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-parameter-names</artifactId>
</dependency>
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.1.2</version>
</dependency>
<!-- alibaba的druid数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!-- 读取project文件 -->
<dependency>
<groupId>net.sf.mpxj</groupId>
<artifactId>mpxj</artifactId>
<version>7.1.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
二、项目具体内容
springboot替代了下图的控制层和业务层,一个人干了springMVC和spring的活
controller(接请求)
@RestController
@RequestMapping("/go")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/hello")
public String hello() {
return "Hello Spring Boot!";
}
@RequestMapping("/all")
public User getAll(){
return userService.getAll();
}
}
mapper(dao)
已解决的问题
- @Mapper注解报错,是因为少导了依赖,或者导入的依赖缺失,重新导入或者比对上面的pom文件可找出缺失的依赖。
@Mapper
public interface UserMapper {
public User getAll();
}
model(实体类)
先这么随意写…Entity和Component的区别请百度
@Component
public class User {
private Integer id;
private String userName;
private String realName;
private String passWord;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
}
service(搞业务)
注意要加@Service注解,userMapper报错没关系,项目依然可以运行
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public User getAll(){
return userMapper.getAll();
}
}
mapper.xml映射文件
UserMapper.xml文件要指明对应的mapper接口类
<?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">
<select id="getAll" resultType="com.example.demo.model.User">
select * from user
</select>
</mapper>
三、运行项目
配置springboot和数据库连接
在application.properties文件中添加如下部分
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:mybatis/*.xml
运行项目
要加MapperScan这个注解让它去扫mapper,不然报错。
@SpringBootApplication
@MapperScan(basePackages = {"com.example.demo.mapper"})
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}