自写Spring boot+Mybatis整合教程

自写Spring boot+Mybatis整合教程

参考教程链接:https://www.cnblogs.com/peterxiao/p/7779188.html
刚开始使用Idea时候,整个人都是一脸的蒙啊,后来跟着网上的教程慢慢的学习使用,一段时间下来,个人觉得idea是我所用过得编程软件中最好用的。哈哈!废话不多,接下来开始创建项目。

一、Spring boot搭建

1、 idea菜单栏File->New->Project.
自写Spring boot+Mybatis整合教程
2、选择左边的spring initializr,右边就是选择JDK版本和URL。然后Next。
自写Spring boot+Mybatis整合教程
3、填写项目的Group、Artifact等信息,再next。
自写Spring boot+Mybatis整合教程
4、点击左边的Web,中间选择Web,然后左边选择SQL,中间选择JPA、Mybatis、MYSQL,点击next。自写Spring boot+Mybatis整合教程
5、填写Project name 等信息,然后点击Finish。
自写Spring boot+Mybatis整合教程
现在,Maven Web项目就完成了。目录结构如下:
自写Spring boot+Mybatis整合教程
Spring boot就搭建好了,pom.xml里已经有了Spring boot的jar包,包括我们的mysql数据连接的jar包。Spring boot内置了类似tomcat这样的中间件,所以,只要运行DemoApplication中的main方法就可以启动项目了,如果后面需要用其他的jar包,我们可以在maven中进行搜索,然后复制下来粘贴到pom.xml文件中就可以了,idea会自动为我们下载jar包

1.在src/main/java下新建目录com/demo/entity/User。

package com.demo.entity;

import lombok.Data;


@Data//这里面使用了DATA注解,这样就不用再写get,set方法了。
public class User {
    private Integer id;
    private String userName;
    private String passWord;
    private Integer age;
}

使用@DATA注解步骤,百度搜索maven,进入在搜索框中输入lombok,复制我们要用的依赖,然后粘贴在pom.xml文件中,在idea中下载lombok插件,这样,@DATA就可以为我们工作了。
2.然后我们来写Dao接口以及它的xml文件
在src/main/java下新建目录com/demo/dao/UserDao
在Resource文件夹下面新建mapper文件夹,mapper文件夹来写我们对应的xml文件。

package com.demo.dao;

import com.demo.entity.User;

public interface UserDao {
    public User getUserById(int id);
}

<?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">
<!-- namespace必须指向接口 -->
<mapper namespace="com.demo.dao.UserDao">
    <resultMap id="BaseResultMap" type="com.demo.entity.User" >
        <id column="id" property="id" jdbcType="INTEGER" />
        <result column="userName" property="userName" jdbcType="VARCHAR" />
        <result column="passWord" property="passWord" jdbcType="VARCHAR" />
        <result column="age" property="age" jdbcType="INTEGER" />
    </resultMap>
    <sql id="Base_Column_List" >
        id, userName, password, age
    </sql>
    <select id="getUserById" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
        select
        <include refid="Base_Column_List" />
        from user_t
        where id = #{id,jdbcType=INTEGER}
    </select>

</mapper>

3.还有我们的service层的接口以及实现类
在src/main/java下新建目录com/demo/service/UserService和com/demo/service/impl/UserServiceImpl

package com.demo.service;

import com.demo.entity.User;

public interface UserService {
    public User findUserById(int id);
}

package com.demo.service.impl;

import com.demo.dao.UserDao;
import com.demo.entity.User;
import com.demo.service.UserService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
@Service("userService")
public class UserServiceImpl implements UserService {
    @Resource
    private UserDao userDao;
    @Override
    public User findUserById(int id) {
        return userDao.getUserById(id);
    }
}

4.接下来就是我们的控制层了
在src/main/java下新建目录com/demo/controller/UserController

package com.demo.controller;

import com.demo.entity.User;
import com.demo.service.UserService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
@RequestMapping("/user")
public class UserController {
    @Resource
    private UserService userService;
    @RequestMapping("/getUser")
    public User getUser(int id){
        User user = new User();
        user = userService.findUserById(id);
        return user;
    }
}

spring boot启动DemoAplication是需要扫描它下面的Controller等类的,所以将DemoApplication移动到com/demo目录下。还有就是Spring boot启动默认是要加载数据源的,所以我们在src/main/resources下新建application.yml:


server:
  port: 8080
 
spring:
    datasource:
        url: jdbc:mysql://127.0.0.1:3306/demo1?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
        username: root
        password: root //注意密码需要改成自己数据库的链接密码还有数据库名字也要改成自己的。
        driver-class-name: com.mysql.cj.jdbc.Driver
        # 使用druid数据源,注意使用druid数据源需要添加依赖,在maven中搜做druid把依赖粘贴到pom.xml文件中即可
        type: com.alibaba.druid.pool.DruidDataSource
mybatis:
  mapper-locations: classpath:mapper/*Mapper.xml
  type-aliases-package: com.demo.entity

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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.test</groupId>
    <artifactId>testlzx</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>testlzx</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <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.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </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>

        <!-- 使用lombok依赖可以在创建实体类时候省去getset等方法。https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.6</version>
            <scope>provided</scope>
        </dependency>

        <!-- 使用uruid连接池。https://mvnrepository.com/artifact/com.alibaba/druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.14</version>
        </dependency>


    </dependencies>

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

</project>

这样,一个简单的查询的spring boot+mybatis项目就完成了。运行结果如下:
自写Spring boot+Mybatis整合教程
希望可以帮到有需要的人,一起成长。