第一步: 创建一个SpringBoot的工程,在其中的Maven依赖配置中添加对JDBC、MyBatis、Mysql Driver的依赖具体如下:

<!-- JDBC -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!-- MySQL Driver -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>

第二步:在SprintBoot的配置文件application-dev.yml中添加mybatis、数据源的配置:

mybatis:
mapper-locations: classpath:mapping/*.xml
type-aliases-package: com.cs.pojo
mapper-locations:扫描指定路径下的*.xml的映射文件
type-aliases-package:完全限定名来指定这些POJO的引用
datasource:
username: 数据库登录用户名
password: 数据库登录密码
url: jdbc:mysql://数据库ip地址:端口/数据库名称?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
driver-class-name: com.mysql.jdbc.Driver

第三步:使用 Navicat在数据库上创建一个用于测试的数据库和数据表

数据库名称为:cs_orchard

表名和结构:login_user{

id int
user_name varchar
password varchar
description varchar

}

写入几条记录:

第四步:代码工程结构创建

  • 四个包以com.cs.pojo、com.cs.mapper、com.cs.service、com.cs.controller
  • 在src/main/resources下创建mapping文件夹用于存放mybatis的映射xml

第五步:编写代码

  1. 在pojo报下创建一个实体类如:LoginUser
@Component
public class LoginUser {
private int id;
private String user_name;
private String password;
private String description; public LoginUser(){} public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
} public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
} public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}

  2. 创建Mybatis的接口

@Mapper
public interface LoginUserMapper {
//获取用户名单
public List<LoginUser> getLoginUser() throws Exception; //根据id删除用户
public void deleteLoginUser(int id)throws Exception; //新增用户
public void addLoginUser(LoginUser user)throws Exception;
}

  3. 编写LoginUser的映射文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://www.mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cs.mapper.LoginUserMapper">
<select id="getLoginUser" resultType="com.cs.pojo.LoginUser">
select * from login_user
</select>
<delete id="deleteLoginUser" parameterType="Integer">
delete from login_user where id =#{id}
</delete>
<insert id="addLoginUser" parameterType="com.cs.pojo.LoginUser">
insert into login_user(user_name, password, description) values (#{user_name}, #{password}, #{description})
</insert>
</mapper>

其中注意每个操作与mapper接口类的对应,resultType和parameterType的类型。

  4. 业务层的接口与实现类:LoginUserService.java  LoginUserServiceImp.java

public interface LoginUserService {

    public List<LoginUser> getLoginUser() throws Exception;

    public void deleteUser(int id) throws Exception;

    public void addLoginUser(LoginUser user) throws Exception;
@Service
public class LoginUserServiceImp implements LoginUserService {
@Autowired
private LoginUserMapper loginUserMapper; public List<LoginUser> getLoginUser(){
try {
return loginUserMapper.getLoginUser();
} catch (Exception e) {
e.printStackTrace();
}
return null;
} public void deleteUser(int id) {
try {
loginUserMapper.deleteLoginUser(id);
} catch (Exception e) {
e.printStackTrace();
}
} public void addLoginUser(LoginUser user) {
try {
loginUserMapper.addLoginUser(user);
} catch (Exception e) {
e.printStackTrace();
}
}
}

  5.  前端控制器类:LoginUserController

@RestController
@RequestMapping("/loginuser")
public class LoginUserController { @Autowired
private LoginUserService loginUserService;
@Autowired
private LoginUser user; //显示用户
@RequestMapping("/list")
public List<LoginUser> index() throws Exception {
return loginUserService.getLoginUser();
} //删除用户
@RequestMapping("/delete/{id}")
public String delete(@PathVariable int id) throws Exception {
loginUserService.deleteUser(id);
return "你已经删掉了id为"+id+"的用户";
} //增加用户
@RequestMapping("/addLoginUser")
public String addLoginUser() throws Exception {
user.setUser_name("阿花2");
user.setPassword("ddccs那还");
user.setDescription("这是我阿花的行配置");
loginUserService.addLoginUser(user);
return "增加用户";
}
}

调试运行,在浏览器中输入地址访问测试。

附上UML图:图用的是visio不太好表示

Spring Boot 与 Mybatis、Mysql整合使用的例子的更多相关文章

  1. Spring Boot数据访问之整合Mybatis

    在Mybatis整合Spring - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中谈到了Spring和Mybatis整合需要整合的点在哪些方面,需要将Mybatis中数据库连接池等相关对 ...

  2. spring boot(二)整合mybatis plus+ 分页插件 + 代码生成

    先创建spring boot项目,不知道怎么创建项目的 可以看我上一篇文章 用到的环境 JDK8 .maven.lombok.mysql 5.7 swagger 是为了方便接口测试 一.Spring ...

  3. Spring boot教程mybatis访问MySQL的尝试

    Windows 10家庭中文版,Eclipse,Java 1.8,spring boot 2.1.0,mybatis-spring-boot-starter 1.3.2,com.github.page ...

  4. spring boot + druid + mybatis + atomikos 多数据源配置 并支持分布式事务

    文章目录 一.综述 1.1 项目说明 1.2 项目结构 二.配置多数据源并支持分布式事务 2.1 导入基本依赖 2.2 在yml中配置多数据源信息 2.3 进行多数据源的配置 三.整合结果测试 3.1 ...

  5. Spring Boot 实战 —— MyBatis(注解版)使用方法

    原文链接: Spring Boot 实战 -- MyBatis(注解版)使用方法 简介 MyBatis 官网 是这么介绍它自己的: MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过 ...

  6. spring boot集成mybatis只剩两个sql 并提示 Cannot obtain primary key information from the database, generated objects may be incomplete

    前言 spring boot集成mybatis时只生成两个sql, 搞了一个早上,终于找到原因了 找了很多办法都没有解决, 最后注意到生成sql的时候打印了一句话: Cannot obtain pri ...

  7. 使用intelliJ创建 spring boot + gradle + mybatis站点

    Spring boot作为快速入门是不错的选择,现在似乎没有看到大家写过spring boot + gradle + mybatis在intellij下的入门文章,碰巧.Net同事问到,我想我也可以写 ...

  8. spring boot与jdbcTemplate的整合案例2

    简单入门了spring boot后,接下来写写跟数据库打交道的案例.博文采用spring的jdbcTemplate工具类与数据库打交道. 下面是搭建的springbootJDBC的项目的总体架构图: ...

  9. Spring Boot集成MyBatis开发Web项目

    1.Maven构建Spring Boot 创建Maven Web工程,引入spring-boot-starter-parent依赖 <project xmlns="http://mav ...

  10. 详解Spring Boot集成MyBatis的开发流程

    MyBatis是支持定制化SQL.存储过程以及高级映射的优秀的持久层框架,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集. spring Boot是能支持快速创建Spring应用的Java框 ...

随机推荐

  1. [记录]优化Linux 的内核参数来提高服务器并发处理能力

    优化Linux 的内核参数来提高服务器并发处理能力PS:在服务器硬件资源额定有限的情况下,最大的压榨服务器的性能,提高服务器的并发处理能力,是很多运维技术人员思考的问题.要提高Linux 系统下的负载 ...

  2. visual studio 容器工具首次加载太慢 vsdbg\vs2017u5 exists, deleting 的解决方案

    ========== 正在准备容器 ========== 正在准备 Docker 容器... C:\Windows\System32\WindowsPowerShell\v1.\powershell. ...

  3. 一次使用InfluxDB数据库的总结

    前言 因当前的项目需要记录每秒钟服务器的状态信息,例如负载.cpu等等信息,这些数据都是和时间相关联的. 因为一秒钟就要存储挺多的数据.而且我还在前端做了echart的折线图,使用websocket实 ...

  4. 运用KeyCode在浏览器中按WASD使图形运动

    如何实现在浏览器中按WASD四个键使图形上下左右运动呢? 其实很简单,用keyCode方法就可以实现了. 先放个div在html中: <div id="ball" style ...

  5. fjnuoj 1004 游戏 (博弈论)

    思路: N 为1或质数 先手必赢 N 为质数X质数的积 后手必赢 先手取两个质数的积则赢 #include #include #define ll long long using namespace ...

  6. os模块习题

    os 1.使用python代码统计一个文件夹中所有文件的总大小 import os def func(path): size_sum = 0#文件总大小为0 name_lst = os.listdir ...

  7. Git学习(二):Git的初步使用

    一.Git的最小配置 1.使用如下命令创建Git的用户名和邮箱,如下所示: $git config --global user.name 'your_name' $git config --globa ...

  8. Linux学习笔记05之网络基础知识

    一.OSI参考模型:适用于所有网络,现有模型,后有协议 1.应用层:应用程序.用户接口 2.表示层:编码转换.压缩.解压.加密等 3.会话层:建立.维护.拆除会话 4.传输层规定了应用程序的的接口 协 ...

  9. 史上最强Java开发环境搭建

    在项目产品开发中,开发环境搭建是软件开发的首要阶段,也是必须阶段,只有开发环境搭建好了,方可进行开发,良好的开发环境搭建,为后续的开发工作带来极大便利. 对于大公司来说,软件开发环境搭建工作一般是由运 ...

  10. Python实现淘宝秒杀聚划算自动提醒源码

    快来加入群[python爬虫交流群](群号570070796),发现精彩内容. 本实例能够监控聚划算的抢购按钮,在聚划算整点聚的时间到达时发出提醒(音频文件自己定义位置)并自动弹开页面(URL自己定义 ...