上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。

1.引入依赖

<!--springboot的web起步依赖--><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId></dependency>
<!-- Mybatis起步依赖 -->
<dependency>
       <groupId>org.mybatis.spring.boot</groupId>
       <artifactId>mybatis-spring-boot-starter</artifactId>
       <version>2.1.0</version>
</dependency>    
<!-- MySql连接驱动 --><dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId>    <scope>runtime</scope></dependency>

2.entity实体类

@TableName(value = "tb_user")//使用mybatis-plus时需要添加,与数据库中的表建立关系
public class SysUser implements Serializable {

    @TableId(type = IdType.AUTO)//使用mybatis-plus时需要添加,主键生成策略
    private Long id;

    private String username;

    private String password;

    private String salt;
    private String avatar;
    private String introduce;
    private String remark;
    //省略get,set方法
}

3.创建application.properties配置文件

#DB Configuration数据库信息:spring.datasource.driverClassName=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql:///testspring.datasource.username=rootspring.datasource.password=rootspring.datasource.type=com.zaxxer.hikari.HikariDataSource

#spring集成Mybatis环境#pojo别名扫描包mybatis.type-aliases-package=cn.zhq.system.entity#加载Mybatis映射文件mybatis.mapper-locations=classpath:mapper/*Mapper.xml

# 打印sql#打印sql到控制台logging.level.cn.zhq.system.mapper=debug
mybatis.type-aliases-package是实体所在包的位置,mybatis.mapper-locations是配置文件所在的位置。初次使用的时候最好加上打印sql的配置,如果出现错误的话,这样容易找出错误原因。

4.创建UserMapper类

@Mapper
public interface UserMapper {

}

5.在spring boot的application加上注解

@EntityScan("cn.zhq.system.entity")//填写 entity类所在包的位置。

加上这个注解后,springboot就可以扫描能实体类。

6.进行增删改查

6.1 使用mapper.xml进行增删改查

6.1.1 编写UserMapper类中的方法

    /**
     * 根据Name查询用户数据
     *
     * @param username
     * @return
     */
    SysUser findByName(String username);

6.1.2  在resources的mapper目录下创建UserMapper.xml配置文件

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.zhq.system.mapper.UserMapper">
    <select id="findByName" resultType="sysuser" parameterType="String">
      select * from tb_user where username = #{username}
    </select>
</mapper>

使用select标签执行查询语句,使用update标签进行 增,删,改操作。其中 id是UserMapper类中方法的名称,resultType是返回值的类型,parameterType是接收的参数类型。

6.2 使用注解进行增删改查

    /**
     * 更新用户名
     * @param username
     */
    @Update("update tb_user set username= #{username} where id = #{id}")
    void updateByAvatar(String username,Long id);

使用@Update注解后,就无需再编写UserMapper配置文件了,同理@Updae可以进行增删改操作。此外使用@Select进行查询。当进行一对多,多对多关系的查询时,还可以使用@Results注解指定返回结果的数据类型,这里就不细说了。

以上两种方式各有利弊,使用配置文件编写sql语句好处是耦合度低但过于麻烦,使用注解的方式相对于配置文件来说比较简单,但是耦合度高。如果是简单语句,建议是使用注解,如果是复杂语句,使用配置文件的方式。具体使用哪种方式,可以视实际情况而定。

6.3 使用mybatis-plus进行增删改查

mybatis-plus类似于spring data jpa , 内置查询,更新,删除,插入语句,使我们无需再写那些简单的sql语句。

6.3.1 引入依赖

 <!-- Mybatis Plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>

6.3.2 application.yml配置文件

# mybatis-plus
mybatis-plus:
  type-aliases-package: cn.zhq.system.entity
  mapper-locations: classpath:mapper/*.xml
  configuration:
    jdbc-type-for-null: null
  global-config:
    banner: false
type-aliases-package填写Entity实体类所在包的位置。mapper-locations:填写映射文件所在的位置,如果不写的话,在你的resources下的mapper配置文件会报错。

6.3.3 相关service,serviceImpl,mapper类

service:

public interface UserService  extends IService<SysUser> {

    /**
     * 更新
     *
     * @param sysUser
     */
    void update(SysUser sysUser);
}

serviceImpl:

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, SysUser> implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    @Transactional
    public void update(SysUser sysUser) {
        userMapper.updateById(sysUser);
    }
}

mapper:

@Mapper
public interface UserMapper extends BaseMapper<SysUser> {
}

虽然我们在UserMapper中没有定义任何方法,但是mybatisPlus集成了很多方法可供我们使用。

执行后,打印的sql语句结果如下

原文地址:https://www.cnblogs.com/Code-Handling/p/12040533.html

时间: 2024-10-16 10:59:49

上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。的相关文章

abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之六(三十二)

abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二) abp(net core)+easyui+efcore实现仓储管理系统——领域层创建实体(三) abp(net core)+easyui+efcore实现仓储管理系统——定义仓储并实现 (四) abp(net core)+easyui

搭建第一个web项目:实现用户的增删改查(三)

每个程序员都有自己写代码的习惯吧,用公司编代码的方式习惯了之后,就按照公司的方法在后台建立了一些工具类. util类——JPAUtil.java(与数据库打交道)备注:只是一部分,只做了增删改查. package cn.itcast.oa.util; import java.io.Serializable; import java.util.List; import org.springframework.beans.BeansException; import org.springframew

通用DAO之MyBatis封装,封装通用的增删改查(三)

曾将发布过俩篇关于Mybatis封装的文章,当时曾曾承诺过当测试没有问题后阿海会整理一下然后将原代码发布出来. 那么今天正好朋友找我要一份那套mybatis封装的源码,我便整理了一份,想想这么长时间了并没有发现什么明显的bug,于是决定将它发出来. 喜欢的朋友可以在这里下载: http://aiyiupload.oss-cn-beijing.aliyuncs.com/blog/img/2016/06/28/15/6d69ad50-ab53-4f4f-b4e7-1fed010bfdb9.rar 关

Web框架之Django_02基本操作(Django项目启动配置、数据库连接、orm、增删改查)

摘要: Django项目简单现实过程 pycharm连接数据库 Django之orm简单操作增删改查 一.新建Django项目.配置.设置: 新建Django项目:(为了熟悉Django操作,暂时全部用cmd形式来实现,很多地方需要手动添加)项目目录D:\Django: >>管理员权限打开cmd,通过cmd命令进入项目目录 >>django-admin startproject my_Dproject (创建项目) >>cd my_Dproject (进入项目文件夹)

对文件的增删改查 以及 ---三次登陆

文件 global log 127.0.0.1 local2 daemon maxconn 256 log 127.0.0.1 local2 info defaults log global mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms option dontlognull listen stats :8888 stats enable stats uri /admin stats a

Hibernate、Spring、myBatis下增删改查的Dao与DaoImpI

Hibernate Dao //Dao.java import java.util.List; /**  * @author Administrator  *   */ public interface Dao { void saveObject(Object object); void updateObject(Object object); void deleteObject(Object object); Object getObject(String HQL); List<?> fin

如何用Spring框架的&lt;form:form&gt;标签实现REST风格的增删改查操作

1.首先创建两个bean类,Employee(职工)和Department(部门),一个部门可以有多个职工 Employee类(属性:职工ID:id:姓名:lastName:邮箱:email:性别:gender:所属部门:department) 1 package com.bwlu.bean; 2 public class Employee { 3 private Integer id; 4 private String lastName; 5 private String email; 6 /

【java学习】spring mvc 公共dao的实现,定义基本的增删改查

接口类: package com.blog.db.dao; import com.blog.util.Pagination; import java.util.List; public interface PublicDao<T> { public void setMapper(Class t); public void setTableName(String tn); public List<T> queryList(Pagination pagination); public

MyBatis(三)MyBatis的增删改查

(1)接口中编写方法 1 public Emp getEmp(Integer id); 2 3 public void addEmp(Emp emp); 4 5 public void deleteEmp(Integer id); 6 7 public void updateEmp(Emp emp); (2)编写Mapper文件 1 <select id="getEmp" resultType="com.eu.bean.Emp"> 2 select id