天天看点

springboot+mybatis 搭建环境Springboot  +  mybatis 环境搭建

Springboot  +  mybatis 环境搭建

springBoot 就是讲一些基础的框架集合起来,提供默认的配置,减少人为的配置。不用 springBoot 而用 spring 也是可以将项目搭建起来的。

开发环境: IDEA(推荐)

1:Intellij idea菜单栏File->new->project

2:选择左侧栏中spring initializr,右侧选择jdk版本,以及默认的Service URL,点击next。

springboot+mybatis 搭建环境Springboot  +  mybatis 环境搭建

3:填写项目的相关信息

springboot+mybatis 搭建环境Springboot  +  mybatis 环境搭建

4:选择数据库,我用的是 MySQL 选择MySQL和MyBatis 就行。

springboot+mybatis 搭建环境Springboot  +  mybatis 环境搭建

5:填写项目的名称,选择项目的路径

springboot+mybatis 搭建环境Springboot  +  mybatis 环境搭建

6:点击finish

这样 web项目的环境就搭建好了,pom.xml里已经有了Spring boot的jar包,包括我们的mysql数据连接的jar包。Spring boot内置了类似tomcat这样的中间件,所以,只要运行DemoApplication中的main方法就可以启动项目了。

2:连接数据库

由于环境创建好之后,pom.xml 中就已经有了mybatis 依赖包,在此只配置数据链接就行。

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>

3:验证自己搭建的环境

目录结构如下:

springboot+mybatis 搭建环境Springboot  +  mybatis 环境搭建

controller:

@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();

    }

}

Service:

public interface IUserService {

    public List<UserEntity> getUser();

}

ServiceImpl:

@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:

方法一:

@Mapper

public interface UserMapper {

    //获取用户信息

    @Select("select * from user")

    List<UserEntity> getUser();

}

mapper 写的方式有两种,方法一直接将 SQL语句写在 mapper 文件中,方法二:方法将SQL语句写在 .xml 文件中。

方法一:1:需要写 @Mapper  注解 或者在启动springboot 项目时,配置Mapper 的位置。

springboot+mybatis 搭建环境Springboot  +  mybatis 环境搭建

方法二: 将 与数据库交互语句写在 .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  路径,因此需要加上这两条配置。

springboot+mybatis 搭建环境Springboot  +  mybatis 环境搭建

4:在浏览器访问

springboot+mybatis 搭建环境Springboot  +  mybatis 环境搭建