Mybatis中注入执行sql查询、更新、新增及建表语句案例代码

作者:专注写bug 时间:2023-03-07 18:53:55 

前言

在平时的项目开发中,mybatis应用非常广泛,但一般都是直接CRUD类型sql的执行。

本片博客主要说明一个另类的操作,注入sql,并使用mybatis执行

案例

dao和mapper编写

三层架构中,dao层主要用于对数据库的操作。当项目配置好数据库的连接配置后,在dao层中可以编写如下的接口

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

@Mapper
@Repository
public interface CommonSqlMapper {
/**
    * 根据注入的sql,新增数据
    * @param sql
    */
   void insertData(@Param(value = "sql") String sql);

/**
    * 根据注入的sql,更新数据
    * @param sql
    * @return
    */
   Integer updateData(@Param(value = "sql") String sql);

/**
    * 依据条件,查询满足条件的所有数据集信息
    * @param selectSql
    * @return
    */
   List<MakeUpDataPo> queryData(@Param(value = "selectSql")  String selectSql);
}

XXXmapper.xml编写

编写一个与CommonSqlMapper.java与之对应映射的CommonSqlMapper.xml文件,其中可以对对应的方法,编写如下的sql:

<?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.xxx.xxx.CommonSqlMapper">
<!-- 修改 -->
   <update id="updateData" >
       ${sql}
   </update>

<!-- 新增 -->
   <insert id="insertData">
       ${sql}
   </insert>
<!-- 查询所有 -->
   <select id="queryData" resultType="com.xxx.xxx.po.MakeUpDataPo">
       ${selectSql}
   </select>

</mapper>

编写业务层代码,进行注入调用

@Service
public class TestService{
@Autowired
private CommonSqlMapper commonSqlMapper;

public void test(){
String sql = "select * from xj_test where name = 'xj'";
commonSqlMapper.queryData(sql);
}
}

额外扩展&ndash;创建表语句

如果想要使用mybatis执行建表sql,此时可以这么写:

/**
    * 新增数据表
    * @param tableName 表名称
    * @param rowSql 表字段拼接sql
    */
void createTable(@Param(value = "tableName") String tableName,@Param(value = "rowSql") String rowSql);

对应的xxxx.xml中,编写如下语句:

<!-- 创建表 -->
<insert id="createTable" statementType="STATEMENT">
   create table ${tableName} (
       id VARCHAR2(32) NOT NULL,
       ${rowSql},
       PRIMARY KEY (id)
   )
</insert>

【注意】

这里并不能直接进行 ${cresteTableSql} 的执行,必须写成上面的这种方式,否则将不能成功!

来源:https://blog.csdn.net/qq_38322527/article/details/128970507

标签:Mybatis,注入,sql,建表
0
投稿

猜你喜欢

  • 可伸缩的textview详解(推荐)

    2021-11-06 00:34:51
  • springboot应用访问zookeeper的流程

    2021-11-28 00:34:56
  • C# TreeView无限目录树实现方法

    2023-04-20 03:05:46
  • idea首次使用需要配置哪些东西

    2022-05-16 20:01:37
  • Git工具 conflict冲突问题解决方案

    2023-07-27 10:27:30
  • 深入剖析构建JSON字符串的三种方式(推荐)

    2023-09-26 07:47:22
  • Toast类避免显示时间叠加的方法

    2021-08-20 02:01:42
  • android读取Assets图片资源保存到SD卡实例

    2022-12-18 19:50:24
  • C#实现农历日历的方法

    2022-08-17 21:27:29
  • jmeter+ant+jenkins自动化测试环境配置搭建过程

    2023-11-17 23:38:06
  • Mybatis中的like模糊查询功能

    2023-09-25 11:57:28
  • Idea springboot springCloud热加载热调试两种常用方式

    2021-06-11 22:20:06
  • Apache SkyWalking 修复TTL timer 失效bug详解

    2023-08-18 08:09:53
  • Android中的全局变量与局部变量使用小结

    2023-12-07 10:11:49
  • MyBatisPlus3.x中使用代码生成器(全注释)

    2022-04-06 19:34:38
  • Java泛型<T> T与T的使用方法详解

    2021-07-12 10:58:42
  • 深入理解Java注解类型(@Annotation)

    2022-11-14 17:28:42
  • 基于Android AIDL进程间通信接口使用介绍

    2021-12-28 05:15:22
  • Android7.0 工具类:DiffUtil详解

    2023-02-24 01:43:46
  • 浅析SpringBoot2底层注解@Conditional@ImportResource

    2023-08-01 23:35:51
  • asp之家 软件编程 m.aspxhome.com