Speing-Boot学习 搭建一个简单的Spring-boot + mybatis

首先先来认识一下Spring-boot框架,该框架是对Spring框架的进一步集成,设计目的就是简化Spring应用的搭建和开发过程。优点如下:

  1. 对第三方插件封装和整合,提供第三方接口
  2. 无需配置复杂的XML
  3. 提供安全等特性
  4. 核心功能-自动配置
  5. 内嵌式 web服务器(Tomcat、Jetty等)
  6. 提供POM,简化Maven配置

接下来,搭建一个最简单的spring-boot+mybatis,使用spring-boot 2.0.6版本,jdk必须是1.8

项目文件结构:

Speing-Boot学习 搭建一个简单的Spring-boot + mybatis

pom文件:

<?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>cn.wzl</groupId>
	<artifactId>sb-study</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>sb-study</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.6.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</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

		<!--tomcat-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<!--mysql-->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>

		<!--配置文件处理器-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-configuration-processor</artifactId>
			<optional>true</optional>
		</dependency>

		<!--spring boot整合mybatis-->

		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.2</version>
		</dependency>
		<!--jsonutils-->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.10</version>
		</dependency>

	</dependencies>

	<build>
	
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>


</project>

配置文件:application.properties

#启动tomcat后的端口号
server.port=8080
#数据库的四大参数
spring.datasource.username=root
spring.datasource.password=bobo
spring.datasource.url=jdbc:mysql://localhost:3306/sb-study?useUnicode=true&characterEncoding=UTF-8
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#扫描mapper文件的路劲
mybatis.mapper-locations=classpath:cn/wzl/sbstudy/dao/mapper/*.xml

实体类:User

public class User implements Serializable{
    private Integer id;
    private String userName;
    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 getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

dao层

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="cn.wzl.sbstudy.dao.UserMapper">
    <resultMap id="BaseResultMap" type="cn.wzl.sbstudy.model.User">
        <id column="ID" jdbcType="INTEGER" property="id" />
        <result column="USER_NAME" jdbcType="VARCHAR" property="userName" />
        <result column="PASSWORD" jdbcType="VARCHAR" property="password" />
    </resultMap>

    <select id="getOne" resultMap="BaseResultMap">
        select * from user limit 0,1
    </select>
</mapper>

UserMapper.java

//@Mapper的注解替换了原来的@Reposity
@Mapper
public interface UserMapper {

    User getOne();
}

Service层

UserService接口类:

public interface UserService {
    User getOne();
}

UserServiceImpl:实现类

@Service("userService")
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public User getOne() {
        User user = userMapper.getOne();
        return user;
    }
}

Controller层

UserController:

@RestController//该注解替换了原来的@Controller注解
@RequestMapping("User")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("getOneUserName")
    public String getOneUserName(){
        return  "张三";
    }

    @GetMapping("getOne")
    public User getOne(){
        User user = userService.getOne();
        return user;
    }
}

spring-boot启动类:

//这个注解,默认配置了扫描与该类处于同一层目录包下面的所有类,并加载所有被注解的bean。所以无需再通过配置文件配置扫描地址
@SpringBootApplication
public class SbStudyApplication {
	public static void main(String[] args) {
		SpringApplication.run(SbStudyApplication.class, args);
	}
}

根据启动类,启动后,

直接在浏览器上访问http://localhost:8080/User/getOne

会输出:

{"id":1,"userName":"123","password":"123"}

简单的Spring-boot就这么简单的实现了!