第一步: 创建一个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. [HAOI2006]聪明的猴子 题解

    题意: 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着,部分植物的树冠露在水面上.猴子不会游泳,但跳跃能力比较强,它们仍然可以在 ...

  2. Button事件的三种实现方法

    onclick事件的定义方法,分为三种,分别为在xml中进行指定方法:在Actitivy中new出一个OnClickListenner():实现OnClickListener接口三种方式. 1.在xm ...

  3. 个人永久性免费-Excel催化剂功能第79波-自动及手动备份功能,比Onedrive还好用

    在OFFICE365里,有个自动保存功能,可惜保存的地址是在Onedrive里,在中国国情下,备份十分卡顿,近乎难以忍受的慢.虽然现在收费性的网盘部分是可以有文件版本的备份功能,但也是繁琐且最要命的是 ...

  4. C#3.0新增功能09 LINQ 基础03 LINQ 和泛型类型

    连载目录    [已更新最新开发文章,点击查看详细] LINQ 查询基于 .NET Framework 版本 2.0 中引入的泛型类型. 无需深入了解泛型即可开始编写查询. 但是,可能需要了解 2 个 ...

  5. HashMap源码之resize

    final Node<K,V>[] resize() { //创建一个Node数组用于存放table中的元素, Node<K,V>[] oldTab = table; //获取 ...

  6. 三、SQL server 2008数据库的备份与还原

    一.SQL数据库的备份:   1.依次打开 开始菜单 → 程序 → Microsoft SQL Server 2008 → SQL Server Management Studio → 数据库:Dsi ...

  7. JDK(Windows)

    百度云:链接:http://pan.baidu.com/s/1dEEsIUd     密码:15cn 官网下载网址:http://www.oracle.com/technetwork/java/jav ...

  8. python中的*args和** kwargs区别

    写了几个月的oython了总感觉除了if else for while什么都不太会,看了架构师的代码参数传递总是使用*args,**kwargs,一直搞不太明白,只是模仿着用,最近有时间想系统的学习一 ...

  9. java基础知识必备(一)

    一,开发前奏        a.Java语言的发展历史.       Java语言是美国Sun公司(Stanford University Network/斯坦福大学网络公司),       在199 ...

  10. golang在多个go routine中进行map或者slice操作应该注意的对象。

    因为golang的map和列表切片都是引用类型,且非线程安全的,所以在多个go routine中进行读写操作的时候,会产生“map read and map write“的panic错误. 某一些类型 ...