1-2、SpringBoot 整合 Mybatis 的示例

最近一直公司代码框架由hibernate切换到mybatis,springboot以及cloud如火如荼,所以写了这篇文章用于记录。

项目工具:idea + maven + mysql

一、创建数据库和数据表

1、创建数据库 test_mybatis

CREATE DATABASE test_mybatis;

2、创建表 user

CREATE TABLE `user` (
    `user_id` INT(11) NOT NULL COMMENT '主键',
    `user_name` VARCHAR(64) NOT NULL COMMENT '姓名',
    `address` VARCHAR(256) NULL DEFAULT NULL COMMENT '地址',
    PRIMARY KEY (`user_id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

3、插入数据

insert into user(user_id,user_name,address) values(1,"小明","北京市朝阳区望京");
insert into user(user_id,user_name,address) values(2,"小红","北京市东城区东直门");
insert into user(user_id,user_name,address) values(3,"小绿","北京市西城区车公庄");

二、项目代码

1、创建一个springboot项目。修改pom文件,完整文件如下:



4.0.0

com.xinput
springbootMybatisXml
1.0-SNAPSHOT



    org.springframework.boot
    spring-boot-starter-parent
    1.5.1.RELEASE



    5.1.39



    
    
        org.springframework.boot
        spring-boot-starter-web
    
    
    
        org.springframework.boot
        spring-boot-starter-test
        test
    

    
    
        org.mybatis.spring.boot
        mybatis-spring-boot-starter
        1.2.0
    

    
    
        mysql
        mysql-connector-java
        ${mysql.version}
    

    
    
        junit
        junit
        4.12
    



    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
        
            org.apache.maven.plugins
            maven-surefire-plugin
            
                true
            
        
    


2、创建实体类 User

package com.xinput.entity;

import java.io.Serializable;

public class User implements Serializable {
private static final long serialVersionUID = 8296061679272038443L;

private Long userId;
private String userName;
private String address;

// get set方法

@Override
public String toString() {
    return "User{" +
            "userId=" + userId +
            ", userName='" + userName + '\'' +
            ", address='" + address + '\'' +
            '}';
}

}

3、创建dao接口文件

package com.xinput.dao;

import com.xinput.entity.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper {
int insertUser(User userEntity);

User selectByPrimaryKey(Long userId);

User selectByName(String userName);
}

4、创建dao和entity对应的UserMapper.xml配置文件




    
    
    
    


    user_id,user_name,address




    insert into user
    
        user_id,
        user_name,
        address,
    
    
        #{userId,jdbcType=INTEGER},
        #{userName,jdbcType=VARCHAR},
        #{address,jdbcType=VARCHAR},
    








5、创建service类,spring中,其实可以不用写接口,可以直接写service类

//服务类
package com.xinput.service;

import com.xinput.dao.UserMapper;
import com.xinput.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {

   @Autowired
    UserMapper userMapper;

    public User getUserById(Long userId) {
        return userMapper.selectByPrimaryKey(userId);
    }
}

6、修改appilcation.properties文件配置

#嵌入tomcat默认端口
server.port=8081

#mysql属性
spring.datasource.url=jdbc:mysql://192.168.99.100:3306/test_mybatis?        useUnicode=true&characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false
spring.datasource.username=root
spring.datasource.password=123
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false

#mybatis
# 为实体对象所在的包,跟数据库表一一对应
mybatis.typeAliasesPackage=com.xinput.entity
# typeAliasesPackage: com.xinput.**.mapper
# mapper文件的位置
mybatis.mapper-locations=classpath:mapper/*Mapper.xml

注释:
mybatis 其他配置相关详解如下:
mybatis.config = mybatis 配置文件名称
mybatis.mapperLocations = mapper xml 文件地址
mybatis.typeAliasesPackage = 实体类包路径
mybatis.typeHandlersPackage = type handlers 处理器包路径
mybatis.check-config-location = 检查 mybatis 配置是否存在,一般命名为 mybatis-config.xml
mybatis.executorType = 执行模式。默认是 SIMPLE3.在 Application 应用启动类添加注解 MapperScan

7、controller类代码

package com.xinput.controller;

import com.xinput.entity.User;
import com.xinput.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
public class UserController {

    @Autowired
    UserService userService;

    @RequestMapping(value="/user/{id}",method= RequestMethod.GET)
    public User findUser(@PathVariable("id")Long id){
        User user = userService.getUserById(id);
        return user;
    }
}

8、修改Application.java启动类代码

package com.xinput;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan(basePackages="com.xinput.dao")
public class Application {
    public static void main(String[] args){
        SpringApplication.run(Application.class,args);
    }
}

三、启动 Application

访问 http://localhost:8081/user/1。

如果大家觉得还有什么问题,可以给我留言,我看到会回复的。

你可能感兴趣的:(1-2、SpringBoot 整合 Mybatis 的示例)