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

相关文章
|
1月前
|
SQL XML Java
Mybatis基础使用知识(注解)
mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句。 最后 mybatis 框架执行sql 并将结果映射为java对象并返回。采用ORM(对象关系映射)思想解决了实体和数据库映射问题,对jdbc进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作。
343 0
|
4月前
|
SQL XML Java
MyBatis注解的运用于条件搜索实践
通过上述的实践,我们可以看出MyBatis注解不仅能够实现条件搜索的需求,还能够提供灵活而强大的SQL构造能力,极大地简化了代码的复杂度,提高了开发效率。在实际的项目开发中,结合实际的业务需求合理选择MyBatis的配置方式(注解或XML),能够让数据持久层代码变得更加清晰和易维护。
110 11
|
6月前
|
存储 Java 数据库连接
Mybatisplus中的主要使用注解
3.有些注解需要配合其他配置使用。例如,@Version需要配合乐观锁插件使用,@EnumValue需要配合对应的TypeHandler使用。
323 11
|
7月前
|
SQL XML Java
MyBatis——选择混合模式还是全注解模式?
在MyBatis开发中,Mapper接口的实现方式有两种:全注解模式和混合模式。全注解模式直接将SQL嵌入代码,适合小规模、简单逻辑项目,优点是直观简洁,但复杂查询时代码臃肿、扩展性差。混合模式采用接口+XML配置分离的方式,适合大规模、复杂查询场景,具备更高灵活性与可维护性,但学习成本较高且调试不便。根据项目需求与团队协作情况选择合适模式至关重要。
150 4
|
8月前
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于注解的整合
本文介绍了Spring Boot集成MyBatis的两种方式:基于XML和注解的形式。重点讲解了注解方式,包括@Select、@Insert、@Update、@Delete等常用注解的使用方法,以及多参数时@Param注解的应用。同时,针对字段映射不一致的问题,提供了@Results和@ResultMap的解决方案。文章还提到实际项目中常结合XML与注解的优点,灵活使用两者以提高开发效率,并附带课程源码供下载学习。
696 0
|
SQL Java 数据库连接
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
MyBatis-Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。本文讲解了最新版MP的使用教程,包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段等核心功能。
1846 5
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
|
SQL 缓存 Java
MyBatis如何关闭一级缓存(分注解和xml两种方式)
MyBatis如何关闭一级缓存(分注解和xml两种方式)
469 5
|
Java 数据库连接 mybatis
Mybatis使用注解方式实现批量更新、批量新增
Mybatis使用注解方式实现批量更新、批量新增
295 3
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
文章介绍了MyBatis的简单增删改查操作,包括创建数据表、实体类、配置文件、Mapper接口及其XML文件,并解释了`#{}`预编译参数和`@Param`注解的使用。同时,还涵盖了resultType与resultMap的区别,并提供了完整的代码实例和测试用例。
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
|
SQL 存储 数据库
深入理解@TableField注解的使用-MybatisPlus教程
`@TableField`注解在MyBatis-Plus中是一个非常灵活和强大的工具,能够帮助开发者精细控制实体类与数据库表字段之间的映射关系。通过合理使用 `@TableField`注解,可以实现字段名称映射、自动填充、条件查询以及自定义类型处理等高级功能。这些功能在实际开发中,可以显著提高代码的可读性和维护性。如果需要进一步优化和管理你的MyBatis-Plus应用程
967 3