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

 更新时间:2023年02月13日 10:09:24   作者:专注写bug  
这篇文章主要介绍了Mybatis中注入执行sql查询、更新、新增以及建表语句,主要说明一个另类的操作,注入sql,并使用mybatis执行,结合案例代码详解讲解,需要的朋友可以参考下

前言

在平时的项目开发中,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);
	}
}

额外扩展–创建表语句

如果想要使用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} 的执行,必须写成上面的这种方式,否则将不能成功!

到此这篇关于Mybatis中注入执行sql查询、更新、新增以及建表语句的文章就介绍到这了,更多相关Mybatis中注入执行sql内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java发送短信的实现步骤

    java发送短信的实现步骤

    下面小编就为大家带来一篇java发送短信的实现步骤。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Java Gradle项目中的资源正确获取方式

    Java Gradle项目中的资源正确获取方式

    这篇文章主要介绍了Java Gradle项目中的资源正确获取方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Mybatis日期格式自动转换需要用到的两个注解说明

    Mybatis日期格式自动转换需要用到的两个注解说明

    这篇文章主要介绍了Mybatis日期格式自动转换需要用到的两个注解说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • java固定大小队列的几种实现方式详解

    java固定大小队列的几种实现方式详解

    队列的特点是节点的排队次序和出队次序按入队时间先后确定,即先入队者先出队,后入队者后出队,这篇文章主要给大家介绍了关于java固定大小队列的几种实现方式,需要的朋友可以参考下
    2021-07-07
  • Java程序执行过程及内存机制详解

    Java程序执行过程及内存机制详解

    本讲将介绍Java代码是如何一步步运行起来的,还会介绍Java程序所占用的内存是被如何管理的:堆、栈和方法区都各自负责存储哪些内容,感兴趣的朋友跟随小编一起看看吧
    2020-12-12
  • intelij idea 2023创建java web项目的完整步骤

    intelij idea 2023创建java web项目的完整步骤

    这篇文章主要给大家介绍了关于intelij idea 2023创建java web项目的完整步骤,该教学主要针对各位刚刚接触javaweb开发的小伙伴,各位学习java的朋友也难免会经历这个阶段,需要的朋友可以参考下
    2023-10-10
  • springboot统一异常处理(返回json)并格式化异常

    springboot统一异常处理(返回json)并格式化异常

    这篇文章主要介绍了springboot统一异常处理(返回json)并格式化异常,对spring boot的默认异常处理方式进行修改,要统一返回数据格式,优雅的数据交互,优雅的开发应用,需要的朋友可以参考下
    2023-07-07
  • Java WindowBuilder 安装及基本使用的教程

    Java WindowBuilder 安装及基本使用的教程

    这篇文章主要介绍了Java WindowBuilder 安装及基本使用的教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 在IDEA中配置Maven镜像的最新方法

    在IDEA中配置Maven镜像的最新方法

    这篇文章主要给大家介绍了关于在IDEA中配置Maven镜像的最新方法,Maven是一个流行的Java项目构建工具,它依赖于互联网上的Mave中央仓库来下载和管理项目依赖库,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • Java8 使用流抽取List<T>集合中T的某个属性操作

    Java8 使用流抽取List<T>集合中T的某个属性操作

    这篇文章主要介绍了Java8 使用流抽取List<T>集合中T的某个属性操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02

最新评论