SpringBoot(2.1.9.RELEASE)集成MyBatis
2021-01-16 10:13
标签:条件 ble location als let ima image 输出 测试 这篇文章主要讲解SpringBoot集成MyBatis实现一个最基本的增删改查功能,并连接访问数据库。整合之前你需要随便准备一个数据表就行。SpringBoot集成MyBatis非常简单,不需要Spring繁琐的配置,也不需要配置类就能够快速集成。 整合完成后显示项目的整体目录结构如下:
创建gradle模块springboot-mybatis并添加如下依赖,至于各自是什么意思,自己去 Maven 仓库官网去查,你们懂得! Yaml配置文件中需要配置数据源四大要素、数据源类型,MyBatis需要配置SQL映射文件类路径位置、搜索类型别名实体类包以及MyBatis控制台输出SQL日志。 至于为什么我没有写省略getter与setter方法,是因为在上述build.gradle文件中引入了lombok依赖,在使用lombok之前你还需要在IDEA中下载lombok插件。通过使用@Data注解能够自动生成getter,setter,equals,hashCode和toString方法! Controller这里只演示一个通过ID查询单条数据的Restful接口,至于其它的,自己去练习吧!今天重点是SpringBoot集成MyBatis。 运行 SpringbootMybatisApplication.java 启动类,浏览器访问 http://localhost:8080/userTable/selectOne?id=1 请求,输出结果如下:
其实我并没有写任何关于增删改查的代码,我在IDEA中使用了另一个插件叫easycode,easycode能够为你自动生成entity.java、dao.java、service.java、serviceImpl.java、controller.java和mapper.xml简单的业务代码。至于复杂的业务逻辑,还是需要自己手写的!!! SpringBoot(2.1.9.RELEASE)集成MyBatis 标签:条件 ble location als let ima image 输出 测试 原文地址:https://www.cnblogs.com/wessonshin/p/12927320.html准备数据
create table `user_table` (
`user_id` int (11),
`nickname` varchar (60),
`password` varchar (150),
`gender` char (3),
`security_email` varchar (150),
`mobile_phone` varchar (33),
`account_balance` double
);
insert into `user_table` (`user_id`, `nickname`, `password`, `gender`, `security_email`, `mobile_phone`, `account_balance`) values(‘1‘,‘曾小贤‘,‘xiange123456‘,‘男‘,‘xiaoxian@163.com‘,‘12138‘,‘520000‘);
insert into `user_table` (`user_id`, `nickname`, `password`, `gender`, `security_email`, `mobile_phone`, `account_balance`) values(‘2‘,‘胡一菲‘,‘yifei123456‘,‘女‘,‘yifei@163.com‘,‘12138‘,‘450000‘);
insert into `user_table` (`user_id`, `nickname`, `password`, `gender`, `security_email`, `mobile_phone`, `account_balance`) values(‘3‘,‘关谷神奇‘,‘qiefuzijin‘,‘男‘,‘guangu@163.com‘,‘12138‘,‘190000‘);
insert into `user_table` (`user_id`, `nickname`, `password`, `gender`, `security_email`, `mobile_phone`, `account_balance`) values(‘4‘,‘吕子乔‘,‘lvbu123456‘,‘男‘,‘lvbu@163.com‘,‘12138‘,‘10000‘);
insert into `user_table` (`user_id`, `nickname`, `password`, `gender`, `security_email`, `mobile_phone`, `account_balance`) values(‘5‘,‘陈美嘉‘,‘meijia123456‘,‘女‘,‘meijia@163.com‘,‘12138‘,‘25000‘);
insert into `user_table` (`user_id`, `nickname`, `password`, `gender`, `security_email`, `mobile_phone`, `account_balance`) values(‘6‘,‘陆展博‘,‘zhanbo123456‘,‘男‘,‘zhanbo@163.com‘,‘12138‘,‘250000‘);
insert into `user_table` (`user_id`, `nickname`, `password`, `gender`, `security_email`, `mobile_phone`, `account_balance`) values(‘7‘,‘林宛瑜‘,‘wanyu666666‘,‘女‘,‘wanyu@163.com‘,‘12138‘,‘66000000‘);
insert into `user_table` (`user_id`, `nickname`, `password`, `gender`, `security_email`, `mobile_phone`, `account_balance`) values(‘8‘,‘唐悠悠‘,‘uu123456‘,‘女‘,‘tanguu@163.com‘,‘12138‘,‘150000‘);
insert into `user_table` (`user_id`, `nickname`, `password`, `gender`, `security_email`, `mobile_phone`, `account_balance`) values(‘9‘,‘张伟‘,‘snake123456‘,‘男‘,‘weige@163.com‘,‘12138‘,‘80000‘);
insert into `user_table` (`user_id`, `nickname`, `password`, `gender`, `security_email`, `mobile_phone`, `account_balance`) values(‘10‘,‘秦羽墨‘,‘yumo123456‘,‘女‘,‘yumo@163.com‘,‘12138‘,‘200000‘);
1.build.gradle项目依赖
dependencies {
compile group: ‘org.projectlombok‘, name: ‘lombok‘, version: ‘1.18.10‘
compile group: ‘com.alibaba‘, name: ‘druid‘, version: ‘1.1.20‘
compile group: ‘mysql‘, name: ‘mysql-connector-java‘, version: ‘8.0.12‘
compile group: ‘org.springframework.boot‘, name: ‘spring-boot-starter-web‘
compile group: ‘org.mybatis.spring.boot‘, name: ‘mybatis-spring-boot-starter‘, version: ‘2.1.0‘
}
2.application.yaml配置文件
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/user?characterEncoding=utf8&serverTimezone=GMT%2B8
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
mybatis:
mapper-locations:
- classpath:mapper/*.xml
type-aliases-package: org.wesson.springboot.mybatis.entity
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
3.启动类SpringbootMybatisApplication.java
package org.wesson.springboot.mybatis;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("org.wesson.springboot.mybatis.dao") // 扫描Mybatis的数据访问层接口
public class SpringbootMybatisApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootMybatisApplication.class, args);
}
}
4.实体类UserTable.java
package org.wesson.springboot.mybatis.entity;
import lombok.Data;
import java.io.Serializable;
@Data
public class UserTable implements Serializable {
private static final long serialVersionUID = 368351536604804313L;
/**
* 用户id
*/
private Integer userId;
/**
* 账号昵称
*/
private String nickname;
/**
* 账号密码
*/
private String password;
/**
* 性别
*/
private Character gender;
/**
* 安全邮箱
*/
private String securityEmail;
/**
* 手机号码
*/
private String mobilePhone;
/**
* 账户余额
*/
private Double accountBalance;
}
5.数据访问层接口UserTableDao.java
package org.wesson.springboot.mybatis.dao;
import org.springframework.stereotype.Repository;
import org.wesson.springboot.mybatis.entity.UserTable;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Repository
public interface UserTableDao {
/**
* 通过ID查询单条数据
*
* @param userId 主键
* @return 实例对象
*/
UserTable queryById(Integer userId);
/**
* 查询指定行数据
*
* @param offset 查询起始位置
* @param limit 查询条数
* @return 对象列表
*/
List
6.SQL映射文件UserTableDao.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="org.wesson.springboot.mybatis.dao.UserTableDao">
resultMap type="org.wesson.springboot.mybatis.entity.UserTable" id="UserTableMap">
result property="userId" column="user_id" jdbcType="INTEGER"/>
result property="nickname" column="nickname" jdbcType="VARCHAR"/>
result property="password" column="password" jdbcType="VARCHAR"/>
result property="gender" column="gender" jdbcType="OTHER"/>
result property="securityEmail" column="security_email" jdbcType="VARCHAR"/>
result property="mobilePhone" column="mobile_phone" jdbcType="VARCHAR"/>
result property="accountBalance" column="account_balance" jdbcType="NUMERIC"/>
resultMap>
select id="queryById" resultMap="UserTableMap">
select
user_id, nickname, password, gender, security_email, mobile_phone, account_balance
from user.user_table
where user_id = #{userId}
select>
select id="queryAllByLimit" resultMap="UserTableMap">
select
user_id, nickname, password, gender, security_email, mobile_phone, account_balance
from user.user_table
limit #{offset}, #{limit}
select>
select id="queryAll" resultMap="UserTableMap">
select
user_id, nickname, password, gender, security_email, mobile_phone, account_balance
from user.user_table
where>
if test="userId != null">
and user_id = #{userId}
if>
if test="nickname != null and nickname != ‘‘">
and nickname = #{nickname}
if>
if test="password != null and password != ‘‘">
and password = #{password}
if>
if test="gender != null">
and gender = #{gender}
if>
if test="securityEmail != null and securityEmail != ‘‘">
and security_email = #{securityEmail}
if>
if test="mobilePhone != null and mobilePhone != ‘‘">
and mobile_phone = #{mobilePhone}
if>
if test="accountBalance != null">
and account_balance = #{accountBalance}
if>
where>
select>
insert id="insert" keyProperty="userId" useGeneratedKeys="true">
insert into user.user_table(nickname, password, gender, security_email, mobile_phone, account_balance)
values (#{nickname}, #{password}, #{gender}, #{securityEmail}, #{mobilePhone}, #{accountBalance})
insert>
update id="update">
update user.user_table
set>
if test="nickname != null and nickname != ‘‘">
nickname = #{nickname},
if>
if test="password != null and password != ‘‘">
password = #{password},
if>
if test="gender != null">
gender = #{gender},
if>
if test="securityEmail != null and securityEmail != ‘‘">
security_email = #{securityEmail},
if>
if test="mobilePhone != null and mobilePhone != ‘‘">
mobile_phone = #{mobilePhone},
if>
if test="accountBalance != null">
account_balance = #{accountBalance},
if>
set>
where user_id = #{userId}
update>
delete id="deleteById">
delete from user.user_table where user_id = #{userId}
delete>
mapper>
7.业务逻辑层接口UserTableService.java
package org.wesson.springboot.mybatis.service;
import org.wesson.springboot.mybatis.entity.UserTable;
import java.util.List;
public interface UserTableService {
/**
* 通过ID查询单条数据
*
* @param userId 主键
* @return 实例对象
*/
UserTable queryById(Integer userId);
/**
* 查询多条数据
*
* @param offset 查询起始位置
* @param limit 查询条数
* @return 对象列表
*/
List
8.业务逻辑层实现类UserTableServiceImpl.java
package org.wesson.springboot.mybatis.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.wesson.springboot.mybatis.entity.UserTable;
import org.wesson.springboot.mybatis.dao.UserTableDao;
import org.wesson.springboot.mybatis.service.UserTableService;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserTableServiceImpl implements UserTableService {
@Autowired
private UserTableDao userTableDao;
/**
* 通过ID查询单条数据
*
* @param userId 主键
* @return 实例对象
*/
@Override
public UserTable queryById(Integer userId) {
return this.userTableDao.queryById(userId);
}
/**
* 查询多条数据
*
* @param offset 查询起始位置
* @param limit 查询条数
* @return 对象列表
*/
@Override
public List
9.控制层UserTableController.java
package org.wesson.springboot.mybatis.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.wesson.springboot.mybatis.entity.UserTable;
import org.wesson.springboot.mybatis.service.UserTableService;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/userTable")
public class UserTableController {
/**
* 服务对象
*/
@Autowired
private UserTableService userTableService;
/**
* 通过主键查询单条数据
*
* @param id 主键
* @return 单条数据
*/
@GetMapping("/selectOne")
public UserTable selectOne(Integer id) {
return this.userTableService.queryById(id);
}
}
10.测试查询数据
文章标题:SpringBoot(2.1.9.RELEASE)集成MyBatis
文章链接:http://soscw.com/index.php/essay/42666.html