springBoot 就是讲一些基础的框架集合起来,提供默认的配置,减小人为的配置。不用 springBoot 而用 spring 也是能够将项目搭建起来的。java
开发环境: IDEA(推荐)mysql
1:Intellij idea菜单栏File->new->projectweb
2:选择左侧栏中spring initializr,右侧选择jdk版本,以及默认的Service URL,点击next。spring
3:填写项目的相关信息sql
4:选择数据库,我用的是 MySQL 选择MySQL和MyBatis 就行。数据库
5:填写项目的名称,选择项目的路径apache
6:点击finish api
这样 web项目的环境就搭建好了,pom.xml里已经有了Spring boot的jar包,包括咱们的mysql数据链接的jar包。Spring boot内置了相似tomcat这样的中间件,因此,只要运行DemoApplication中的main方法就能够启动项目了。浏览器
因为环境建立好以后,pom.xml 中就已经有了mybatis 依赖包,在此只配置数据连接就行。tomcat
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
username: root
password: root123
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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</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-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web-services</artifactId>
</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>
<!--集成日志logback+slf4j -->
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.2</version>
</dependency>
</dependencies>
<!--<packaging>jar</packaging>-->
<build>
<finalName>demo</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
目录结构以下:
@RestController
@RequestMapping("user")
public class UserController {
private static final Logger logger = LoggerFactory.getLogger(UserController.class);
@Autowired
private IUserService userService;
@GetMapping("getUser")
public List<UserEntity> getUser(){
logger.info("获取用户数据");
UserEntity user = new UserEntity();
return userService.getUser();
}
}
public interface IUserService {
public List<UserEntity> getUser();
}
@Service
@Transactional
public class IUserServiceImpl implements IUserService {
@Autowired
private UserMapper userMapper;
//获取用户的信息
public List<UserEntity> getUser(){
List<UserEntity> userList = new ArrayList<>();
userList = userMapper.getUser();
return userList;
}
}
方法一:
@Mapper
public interface UserMapper {
//获取用户信息
@Select("select * from user")
List<UserEntity> getUser();
}
mapper 写的方式有两种,方法一直接将 SQL语句写在 mapper 文件中,方法二:方法将SQL语句写在 .xml 文件中。
方法一:1:须要写 @Mapper 注解 或者在启动springboot 项目时,配置Mapper 的位置。
方法二: 将 与数据库交互语句写在 .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 type="com.example.demo.entity.UserEntity" id="user">
<result property="id" column="id" />
<result property="name" column="name"/>
<result property="age" column="age"/>
</resultMap>
<!-- 查找全部 -->
<select id="getUser" resultMap="user">
select * from user
</select>
</mapper>
注意: 若是使用方法二,会出现如下的错误。
binding.BindingException: Invalid bound statement (not found): com.example.demo.mapper.UserMapper.getUser
出现这种问题,通常状况下是本身的 .xml 工做空间写错了,可是我检查事后,个人工做空间没有写错,就该考虑是否是缺乏了什么配置,百度过以后,发现少启动文件中少配置了实体路径和 .xml 路径,所以须要加上这两条配置。