springboot+mybatis 搭建环境

Springboot  +  mybatis 环境搭建

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

 

开发环境: IDEA(推荐)mysql

 

1Intellij idea菜单栏File->new->projectweb

 

 

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

 

 

 

3:填写项目的相关信息sql

 

 

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

 

 

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

 

 

6:点击finish api

这样 web项目的环境就搭建好了,pom.xml里已经有了Spring boot的jar包,包括咱们的mysql数据链接的jar包。Spring boot内置了相似tomcat这样的中间件,因此,只要运行DemoApplication中的main方法就能够启动项目了。浏览器

 

2:链接数据库

因为环境建立好以后,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>

 

 

 

3:验证本身搭建的环境

目录结构以下:

 

 

 

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 的位置。

 

 

 

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

 

 

 

4:在浏览器访问