Spring-boot + MySQL + MyBatis

Spring-boot + MySQL + MyBatis

准备工作

  • IntelliJ IDEA旗舰版2019.1.4
  • MySQL 8.0.12

创建一个user表

  • 在数据库demo中创建一个user表,包含字段id,name,gender
    数据库的基本知识可查看:小磊福利
  • 命令如下:
create database if not exists demo character set utf8;use demo;create table user(id int,name varchar(20),gender varchar(1));insert into user(id,name,gender) values(01,'张三','男');insert into user(id,name,gender) values(02,'李四','女');insert into user(id,name,gender) values(03,'王五','男');select id,name,gender from user;
  • 返回如下信息:

搭建Spring Boot框架

pox.xml中添加如下依赖,注意自己的MySQL版本

 <!-- 添加 MyBatis --><dependency>  		<groupId>org.mybatis.spring.boot</groupId>  		<artifactId>mybatis-spring-boot-starter</artifactId>       <!-- 注意官网的更新,旧版也不是不可以 -->  		<version>1.3.2</version></dependency> <!-- 添加 MySQL -->   <dependency>       <groupId>mysql</groupId>       <artifactId>mysql-connector-java</artifactId>	<!-- 我的版本是8.0.12 -->       <version>8.0.12</version>   </dependency>

在 resources/application.properties中添加下列语句连接–数据库

spring.datasource.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghaispring.datasource.username=rootspring.datasource.password=rootspring.datasource.driver-class-name=com.mysql.cj.jdbc.Drivermybatis.type-aliases-package=com.example.demo.mapperserver.port=8081
  • spring.datasource.url数据库连接字符串,3306是MySQL的默认端口,demo是表所在的数据库,后面的参数直接复制即可,之前有个时区参数忘记加上去总是报错
  • spring.datasource.username:数据库用户名
  • spring.datasource.password:用户名密码
  • spring.datasource.driver-class-name 驱动类型
  • mybatis.type-aliases-package 配置mapper包名

源码来了

分为三部分:实体类、Mapper接口、Controller类,Controller类直接调用Mapper接口进行数据持久化处理。
实体类
  • 新建一个entity包,在里面新建一个User类
package com.example.demo.entity;public class User {  		private int id;   	private String name;   	private String gender;}

右键-Generate…-Getter and Setter 或 Alt+Insert+Getter and Setter,全都选上点击OK。

Mapper接口
  • 新建一个mapper包,在这个包中新建一个UserMapper接口。具体代码如下:
package com.example.demo.mapper;import com.example.demo.entity.User;import org.apache.ibatis.annotations.*;import org.springframework.stereotype.Repository;import java.util.List;@Repositorypublic interface UserMapper {    @Select("SELECT * FROM user")    @Results({            @Result(property = "name", column = "name")    })    List<User> getAll();    @Select("select * from user where id=#{id}")    User getById(int id);    @Insert({"insert into user(id,name,gender) values(#{id},#{name},#{gender})"})    void install(User user);    @Update({"update user set name=#{name},gender=#{gender} where id=#{id}"})    void Update(User user);    @Delete("delete from user where id=#{id}")    void delete(int id);}
  • @Select查询注解
  • @Results结果集标识,用来对应数据库列名,如果实体类属性和数据库属性名保持一致,可以 忽略此参数
  • @Insert插入注解
  • @Update修改注解
  • @Delete删除注解
    完成上述操作后,在主程序入口添加@Mapper(‘com.example.demo.mapper’)。
Controller类
package com.example.demo.web;import com.example.demo.entity.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.RestController;import java.util.List;@RestControllerpublic class UserController {    @Autowired    private UserMapper userMapper;    @GetMapping("/getAll")    public List<User> getAll(){        return userMapper.getAll();    }    @GetMapping("/install")    public List<User> install(User user){        userMapper.install(user);        return userMapper.getAll();    }    @GetMapping("/delete")    public List<User> delete(int id){        userMapper.delete(id);        return userMapper.getAll();    }    @GetMapping("/update")    public List<User> update(User user){        userMapper.Update(user);        return userMapper.getAll();    }    @GetMapping("/get")    public User get(int id){        return userMapper.getById(id);    }}
测试阶段
  • 查询所有数据 :localhost:8081/getAll
  • 查询单挑记录 : localhost:8081/get?id=3
  • 增加数据 : localhost:8081/install?id=4&name=石磊&gender=男
  • 删除数据 : localhost:8081/delete?id=1
  • 修改数据 : localhost:8081/update?id=4&name=小磊真帅&gender=男
别忘了打赏哟


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2113132982@qq.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值