springboot15-mybatis的整合

Mybatis框架的整合

1、首先配置好druid

見上節druid的配置和使用;

2、配置和整合Mybatis

pow.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 https://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.2.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo-mybatis</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo-mybatis</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-jdbc</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.1.2</version>
        </dependency>

        <!--druid數據源-->
        <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.20</version>
        </dependency>
        <!--log4j-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>


        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

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

</project>

我們可以來看看mybatis在springboot中的應用結構:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-UiHoLIg6-1584264338686)(C:\Users\ouguangji\AppData\Roaming\Typora\typora-user-images\image-20200315012833438.png)]

mybatis不是springboot官方出的,而是mybatis框架爲了適應於springboot所開發的配置文件:mybatis-springboot-starter

3、Mybatis的配置和使用

我們使用註解配置方式,在SpringBoot中使用註解配置方式較爲簡便。

第一步:我們來創一個bean.User的類:

package com.example.demo.bean;

public class User {
    private String username;
    private String passwd;
    private String phone;
    private String address;
    private String youbian;


    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPasswd() {
        return passwd;
    }

    public void setPasswd(String passwd) {
        this.passwd = passwd;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getYoubian() {
        return youbian;
    }

    public void setYoubian(String youbian) {
        this.youbian = youbian;
    }
}

第二步:我們來創一個mapper.UserMapper接口

package com.example.demo.mapper;

import com.example.demo.bean.User;
import org.apache.ibatis.annotations.*;

@Mapper
public interface UserMapper {

    @Select("select *from user where username=#{username}")
    public User getUserUsername(String username);

    @Delete("delete from user where username=#{username}")
    public int deleteUserById(String username);

    @Insert("insert into user(username,passwd,phone,address,youbian) values(#{username},#{passwd},#{phone},#{address},#{youbian})")
    public int insertUser(User user);

    @Update("update user set passwd=#{passwd},phone=#{phone},address=#{address},youbian=#{youbian} where username=#{username}")
    public int updateUser(User user);
}

第三步:我們來創一個UserController

package com.example.demo.Controller;

import com.example.demo.bean.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @Autowired
    UserMapper userMapper;


    @GetMapping("/user/{username}")
    public User getUser(@PathVariable("username") String username){
        return userMapper.getUserUsername(username);
    }

    @GetMapping("/user")
    public User insertUser(User user){
        userMapper.insertUser(user);
        return user;
    }

}

第四步:我們來測試Mybatis整合效果

運行:

在這裏插入圖片描述

傳入一個username主鍵信息,查出該條User的信息,並以json的方式返回;

添加、修改、刪除和這同理可得。


Mybatis的自定義配置:

我們創建一個配置類:config.MybatisConfig

@Configuration
public class MyBatisConfig {


    @Bean
    public ConfigurationCustomizer configurationCustomizer(){
        return new ConfigurationCustomizer() {
            @Override
            public void customize(org.apache.ibatis.session.Configuration configuration) {
                configuration.setMapUnderscoreToCamelCase(true);
                //這裏可以進行自定義配置
            }
        };
    }
}

在這裏,我們可以修改mybatis的一些自動配置的設置,改爲我們自定義的配置信息

Mybatis的mapper的批量掃描:

//使用@MapperScan(value="com.包名")
//就可以批量添加mapper註解了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章