Mybatis中注入执行sql查询、更新、新增及建表语句案例代码
作者:专注写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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!