5、springcloud整合mybatis注解方式

简介: 本篇内容学习springcloud整合mybatis注解方式。

上一篇学习了服务提供者provider,但是并不是单单就学习了服务提供者。中间还穿插使用了Hikari数据源和spring cloud整合mybatis。但是上篇使用mybatis时还是沿用了老的方式,需要配置mapper对应的xml文件。


1、先来看看上篇使用mybatis的主要步骤


一、 pom.xml文件引用


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


二、application.yml配置文件加入mybtias配置项


mybatis:
  mapperLocations: classpath:sc/provider/dao/*.xml
  #configLocation: classpath:mybatis-config.xml


三、编写mapper文件user-mapper.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="sc.provider.dao.UserDao" >
   <select id="getUser" parameterType="java.lang.Long"  resultType="sc.provider.model.User">
      select id, userName, age, position from t_user where id = #{id,jdbcType=INTEGER}
   </select>
   <select id="listUser" resultType="sc.provider.model.User">
      select id, userName, age, position from t_user
   </select>
   <insert id="addUser" parameterType="sc.provider.model.User">
      insert into t_user (
         id, userName, age, position
      ) values (
         #{id,jdbcType=INTEGER},
         #{userName,jdbcType=VARCHAR},
         #{age,jdbcType=INTEGER},
         #{position,jdbcType=VARCHAR}
      )
   </insert>
   <update id="updateUser" parameterType="sc.provider.model.User">
        update t_user set
         userName = #{userName,jdbcType=VARCHAR},
         age = #{age,jdbcType=INTEGER},
         position = #{position,jdbcType=VARCHAR}
        where id = #{id,jdbcType=INTEGER}
   </update>
   <delete id="deleteUser" parameterType="java.lang.Long">
    delete from t_user
      where id = #{id,jdbcType=INTEGER}
   </delete>
</mapper>


四、编写UserDao.java


package sc.provider.dao;
import java.util.List;
import sc.provider.model.User;
public interface UserDao {
   User getUser(Long id);
   List<User> listUser();
   int addUser(User user);
   int updateUser(User user);
   int deleteUser(Long id);
}


五、 在ProviderApplication.java添加@MapperScan(basePackages="sc.provider.dao")


经过上面五个步骤才能使用mybatis。本篇将和大家看看不能简化spring cloud 整合mybatis的步骤(在sc-eureka-client-provider工程上改造)


一、 依赖必不可少


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


二、 删除application.yml关于mybatis的配置


三、 删除mapper文件user-mapper.xml文件


四、改造UserDao.java类


package sc.provider.dao;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import sc.provider.model.User;
@Mapper
public interface UserDao {
   @Select(value="select id, userName, age, position from t_user where id = #{id,jdbcType=INTEGER}")
   User getUser(Long id);
   @Select(value="select id, userName, age, position from t_user")
   List<User> listUser();
   @Insert(value="insert into t_user (id, userName, age, position) values ( #{id,jdbcType=INTEGER},#{userName,jdbcType=VARCHAR},#{age,jdbcType=INTEGER},#{position,jdbcType=VARCHAR})")
   int addUser(User user);
   @Update(value="update t_user set userName = #{userName,jdbcType=VARCHAR},age = #{age,jdbcType=INTEGER},position = #{position,jdbcType=VARCHAR} where id = #{id,jdbcType=INTEGER}")
   int updateUser(User user);
   @Delete(value=" delete from t_user where id = #{id,jdbcType=INTEGER}")
   int deleteUser(Long id);
}


五、 @MapperScan注解必不可少


package sc.provider;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication
@EnableEurekaClient
@MapperScan(basePackages="sc.provider.dao")
public class ProviderApplication {
   public static void main(String[] args) {
      SpringApplication.run(ProviderApplication.class, args);
   }
}


经过以上步骤就把使用xml方式的mybatis改造成使用annotation方式的mybatis了。


2、启动注册中心sc-eureka-server,启动sc-eureka-client-provider-annotation(使用sc-eureka-client-provider项目改造),验证是否改造成功


方式一:


微信图片_20220501130115.png


方法二:


微信图片_20220501130118.png


圈住的名字是在application.yml配置的


微信图片_20220501130121.png


3、使用postman方法相应restful接口,这里就不一一访问了,可以参考上一篇文章的访问方式


添加:


http://127.0.0.1:8300/user/addUser


查询:


http://127.0.0.1:8300/user/getUser/4


列表:


http://127.0.0.1:8300/user/listUser


更新:


http://127.0.0.1:8300/user/updateUser


删除:


http://127.0.0.1:8300/user/deleteUser/2

相关文章
|
4月前
|
SQL Java 数据库连接
手写mybatis 注解版
手写mybatis 注解版
26 0
|
5月前
|
SQL XML Java
源码分析系列教程(08) - 手写MyBatis(注解版)
源码分析系列教程(08) - 手写MyBatis(注解版)
43 0
|
5月前
|
SQL XML Java
mybatis的注解开发之三种动态sql
mybatis的注解开发之三种动态sql
|
4月前
|
XML Java 数据库连接
MyBatis深入探索:原生API与注解方式实现CRUD操作
MyBatis深入探索:原生API与注解方式实现CRUD操作
71 0
|
16天前
|
SQL XML Java
【mybatis】第二篇:@Select注解中加入字段判断
【mybatis】第二篇:@Select注解中加入字段判断
|
4月前
|
XML Java 数据库连接
MyBatis--映射关系一对一和MyBatis--映射关系多对一 -都有基于xml和注解的教程
MyBatis--映射关系一对一和MyBatis--映射关系多对一 -都有基于xml和注解的教程
90 0
|
16天前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
|
27天前
|
Java 数据库连接 mybatis
mybatis plus字段为null或空字符串把原来的数据也更新了,只需要注解
mybatis plus字段为null或空字符串把原来的数据也更新了,只需要注解
17 0
|
1月前
|
Java 数据库连接 网络安全
mybatis使用全注解的方式案例(包含一对多关系映射)
mybatis使用全注解的方式案例(包含一对多关系映射)
12 0
|
1月前
|
关系型数据库 Java 数据库连接
如何利用Mybatis-Plus自动生成代码(超详细注解)
如何利用Mybatis-Plus自动生成代码(超详细注解)
26 1