springboot整合mybatis, 增删改查

这篇文章是介绍 Spring Boot整合mybatis的,一个简单的增删改查。

建表
DROP TABLE IF EXISTS tbl_user;

CREATE TABLE tbl_user (
  id int(11) NOT NULL AUTO_INCREMENT,
  user_name varchar(255) NOT NULL,
  password varchar(255) NOT NULL,
  age int(11) DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

在pom文件里添加mybatis依赖:

<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>1.3.2</version>
</dependency>

在application.properties配置文件中配置数据源、Mybatis的实体和配置文件路径:

spring.datasource.url=jdbc:mysql://localhost:3306/springboot_demo
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

mybatis.typeAliasesPackage: cn.yideng.mybatis.entity
mybatis.mapperLocations: classpath:mapper/*.xml

建立包结构:entity dao service controller
创建一个实体类:

public class User {

  private Integer id;
  private String userName;
  private String password;
  private Integer age;

  public User() {}

  public User(Integer id, String userName, String password, Integer age) {
    this.id = id;
    this.userName = userName;
    this.password = password;
    this.age = age;
  }

  // 省略 getter/setter, toString()
}

DAO接口:

public interface UserDao {

  List<User> findAll(); //查询所有记录

  void addUser(User user); // 新增

  void updateUser(User user); // 修改

  int deleteUser(Integer id); //根据id删除

}

Service接口:

public interface UserService {

  List<User> findAll();

  void addUser(User user);

  void updateUser(User user);

  int deleteUser(Integer id);

}

Service接口的实现类:

@Service(value="userService")
public class UserServiceImpl implements UserService{

  @Autowired
  private UserDao userDao;

  @Override
  public List<User> findAll() {
    return userDao.findAll();
  }

  @Override
  public void addUser(User user) {
    userDao.addUser(user);
  }

  @Override
  public void updateUser(User user) {
    userDao.updateUser(user);
  }

  @Override
  public int deleteUser(Integer id) {
    return userDao.deleteUser(id);
  }

}
```
UserMapper.xml映射文件:路径是 \resources\mapper\UserMapper.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="cn.yideng.mybatis.dao.UserDao">

<resultMap id="userResultMap" type="cn.yideng.mybatis.entity.User">
  <id column="id" property="id" jdbcType="INTEGER" />
  <result column="user_name" property="userName" jdbcType="VARCHAR" />
  <result column="password" property="password" jdbcType="VARCHAR" />
  <result column="age" property="age" jdbcType="INTEGER" />
</resultMap>

  <sql id="user_column_list">
  id, user_name, password, age
  </sql>

<select id="findAll" resultMap="userResultMap">
  select
  <include refid="user_column_list" />
  from tbl_user
</select>

<insert id="addUser" parameterType="cn.yideng.mybatis.entity.User">
  insert into tbl_user (user_name, password, age)
  values (
  #{userName,jdbcType=VARCHAR},
  #{password,jdbcType=VARCHAR},
  #{age,jdbcType=INTEGER})
</insert>

<update id="updateUser" parameterType="cn.yideng.mybatis.entity.User">
  update tbl_user set
  user_name= #{userName,jdbcType=VARCHAR},
  password = #{password,jdbcType=VARCHAR},
  age= #{age,jdbcType=INTEGER}
  where id= #{id,jdbcType=INTEGER}
</update>

<delete id="deleteUser" parameterType="java.lang.Integer">
  delete from tbl_user where id= #{id,jdbcType=INTEGER}
</delete>

</mapper>

Controller类

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(value = "/user")
public class UserController {

  @Autowired
  private UserService userService;

  @PostMapping(value = "/add")
  private void addUser(User user){
    userService.addUser(user);
  }

  @GetMapping("/getList")
  private List<User> getAllUser(){
    return userService.findAll();
  }

  @PutMapping(value = "update/{id}")
  private void updateUser(User user){
    userService.updateUser(user);
  }

  @DeleteMapping(value = "delete/{id}")
  private int deleteUser(Integer id){
    return userService.deleteUser(id);
  }

}

修改启动类,添加@MapperScan注解,使其可以扫描DAO层接口:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@EnableAutoConfiguration
@MapperScan("cn.yideng.mybatis.dao")
public class DemoApplication {

  public static void main(String[] args) {
  SpringApplication.run(DemoApplication.class, args);
  }
}

然后用postman 模拟测试,

原文地址:https://www.cnblogs.com/wxc-xiaohuang/p/9427902.html

时间: 2024-11-11 15:57:11

springboot整合mybatis, 增删改查的相关文章

ztree使用系列三(ztree与springmvc+spring+mybatis整合实现增删改查)

在springmvc+spring+mybatis里整合ztree实现增删改查,上一篇已经写了demo,下面就只贴出各层实现功能的代码: Jsp页面实现功能的js代码如下: <script> //用于捕获分类编辑按钮的 click 事件,并且根据返回值确定是否允许进入名称编辑状态 function beforeEditName(treeId, treeNode) { var zTree = $.fn.zTree.getZTreeObj("treeDemo"); zTree.

MyBatis增删改查模板

1. 首先,和Spring整合一下 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springfra

Mybatis增删改查实例

Mybatis增删改查实例 编写一个简单的mybatis进行插入数据的实例 1 数据库建表  其中建表dob=Date of Birth 的意思 create table students (stud_id number primary key, name varchar2(20), email varchar2(20), dob date ); Oracle数据库中出现表已创建,则表示创建成功,如果出现名称已被使用,则可在建表之前进行删除操作:drop table students;或者进行级

【Mybatis】简单的mybatis增删改查模板

简单的mybatis增删改查模板: <?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="com.sunee

myBatis增删改查之入门(1)

myBatis增删改查入门 增(insert) 在Mapper.xml文件中加入<mappers>标签 里面加入<insert>标签来添加sql语句 例:insert into t_customer ( NAME, gender, telephone, address ) VALUES ( #{name}, #{gender}, #{telephone}, #{address} ); 需要按照此格式来写 上面定义的变量对应 下面自定义相对应的. 添加<serelt>实现

springboot&amp;mybatis 增删改查系列(二)

数据库篇 我的数据库名为data0525,数据表名为user,其中有五列uid,uname,upass,usex,umessage.uid为主键并且自动生成,由于是练习表,所以并没有考虑设计的合理性. 生产者篇 在我们已创建好的父项目中创建一个子项目. 依赖如下(注意:生产的的依赖需要写在生产者的pom文件中): <dependencies> <dependency> <groupId>org.springframework.boot</groupId> &

SpringBoot JPA实现增删改查、分页、排序、事务操作等功能

今天给大家介绍一下SpringBoot中JPA的一些常用操作,例如:增删改查.分页.排序.事务操作等功能.下面先来介绍一下JPA中一些常用的查询操作: //And --- 等价于 SQL 中的 and 关键字,比如 findByHeightAndSex(int height,char sex): public List<User> findByHeightAndSex(int height,char sex); // Or --- 等价于 SQL 中的 or 关键字,比如 findByHeig

mac下使用MyBatis增删改查(mysql,Java)

1.安装mysql 下载地址为http://dev.mysql.com/downloads/mysql/,选择dmg类型的直接下载,跳转的页面要求注册或登录,可以直接点击页面最下面的 No thanks, just start my download. 下载,安装 安装结束会提示默认密码: 2016-01-26T03:15:17.366026Z 1 [Note] A temporary password is generated for [email protected]: o)pa_.adT2

springboot+jpa+thymeleaf增删改查的示例(转)

这篇文章介绍如何使用jpa和thymeleaf做一个增删改查的示例. 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个demo来试试它的效果,越简单越容易上手最好.在网上找相关资料的时候总是很麻烦,有的文章写的挺不错的但是没有源代码,有的有源代码但是文章介绍又不是很清楚,所在找资料的时候稍微有点费劲.因此在我学习Spring Boot的时候,会写一些最简单基本的示例项目,一方面方便其它朋友以最快的方式去了解,一方面如果我的项目需要用到相关技术的时候,直

springboot(十五):springboot+jpa+thymeleaf增删改查示例

这篇文章介绍如何使用jpa和thymeleaf做一个增删改查的示例. 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个demo来试试它的效果,越简单越容易上手最好.在网上找相关资料的时候总是很麻烦,有的文章写的挺不错的但是没有源代码,有的有源代码但是文章介绍又不是很清楚,所在找资料的时候稍微有点费劲.因此在我学习Spring Boot的时候,会写一些最简单基本的示例项目,一方面方便其它朋友以最快的方式去了解,一方面如果我的项目需要用到相关技术的时候,直