Mybatis中注入執(zhí)行sql查詢、更新、新增及建表語(yǔ)句案例代碼
前言
在平時(shí)的項(xiàng)目開發(fā)中,mybatis應(yīng)用非常廣泛,但一般都是直接CRUD
類型sql的執(zhí)行。
本片博客主要說明一個(gè)另類的操作,注入sql,并使用mybatis執(zhí)行
。
案例
dao和mapper編寫
三層架構(gòu)中,dao層主要用于對(duì)數(shù)據(jù)庫(kù)的操作。當(dāng)項(xiàng)目配置好數(shù)據(jù)庫(kù)的連接配置后,在dao層中可以編寫如下的接口
。
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @Mapper @Repository public interface CommonSqlMapper { /** * 根據(jù)注入的sql,新增數(shù)據(jù) * @param sql */ void insertData(@Param(value = "sql") String sql); /** * 根據(jù)注入的sql,更新數(shù)據(jù) * @param sql * @return */ Integer updateData(@Param(value = "sql") String sql); /** * 依據(jù)條件,查詢滿足條件的所有數(shù)據(jù)集信息 * @param selectSql * @return */ List<MakeUpDataPo> queryData(@Param(value = "selectSql") String selectSql); }
XXXmapper.xml編寫
編寫一個(gè)與CommonSqlMapper.java
與之對(duì)應(yīng)映射的CommonSqlMapper.xml
文件,其中可以對(duì)對(duì)應(yīng)的方法,編寫如下的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>
編寫業(yè)務(wù)層代碼,進(jìn)行注入調(diào)用
@Service public class TestService{ @Autowired private CommonSqlMapper commonSqlMapper; public void test(){ String sql = "select * from xj_test where name = 'xj'"; commonSqlMapper.queryData(sql); } }
額外擴(kuò)展–創(chuàng)建表語(yǔ)句
如果想要使用mybatis
執(zhí)行建表sql
,此時(shí)可以這么寫:
/** * 新增數(shù)據(jù)表 * @param tableName 表名稱 * @param rowSql 表字段拼接sql */ void createTable(@Param(value = "tableName") String tableName,@Param(value = "rowSql") String rowSql);
對(duì)應(yīng)的xxxx.xml
中,編寫如下語(yǔ)句:
<!-- 創(chuàng)建表 --> <insert id="createTable" statementType="STATEMENT"> create table ${tableName} ( id VARCHAR2(32) NOT NULL, ${rowSql}, PRIMARY KEY (id) ) </insert>
【注意】
這里并不能直接進(jìn)行 ${cresteTableSql} 的執(zhí)行,必須寫成上面的這種方式,否則將不能成功!
到此這篇關(guān)于Mybatis中注入執(zhí)行sql查詢、更新、新增以及建表語(yǔ)句的文章就介紹到這了,更多相關(guān)Mybatis中注入執(zhí)行sql內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java Gradle項(xiàng)目中的資源正確獲取方式
這篇文章主要介紹了Java Gradle項(xiàng)目中的資源正確獲取方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11Mybatis日期格式自動(dòng)轉(zhuǎn)換需要用到的兩個(gè)注解說明
這篇文章主要介紹了Mybatis日期格式自動(dòng)轉(zhuǎn)換需要用到的兩個(gè)注解說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08java固定大小隊(duì)列的幾種實(shí)現(xiàn)方式詳解
隊(duì)列的特點(diǎn)是節(jié)點(diǎn)的排隊(duì)次序和出隊(duì)次序按入隊(duì)時(shí)間先后確定,即先入隊(duì)者先出隊(duì),后入隊(duì)者后出隊(duì),這篇文章主要給大家介紹了關(guān)于java固定大小隊(duì)列的幾種實(shí)現(xiàn)方式,需要的朋友可以參考下2021-07-07Java程序執(zhí)行過程及內(nèi)存機(jī)制詳解
本講將介紹Java代碼是如何一步步運(yùn)行起來的,還會(huì)介紹Java程序所占用的內(nèi)存是被如何管理的:堆、棧和方法區(qū)都各自負(fù)責(zé)存儲(chǔ)哪些內(nèi)容,感興趣的朋友跟隨小編一起看看吧2020-12-12intelij?idea?2023創(chuàng)建java?web項(xiàng)目的完整步驟
這篇文章主要給大家介紹了關(guān)于intelij?idea?2023創(chuàng)建java?web項(xiàng)目的完整步驟,該教學(xué)主要針對(duì)各位剛剛接觸javaweb開發(fā)的小伙伴,各位學(xué)習(xí)java的朋友也難免會(huì)經(jīng)歷這個(gè)階段,需要的朋友可以參考下2023-10-10springboot統(tǒng)一異常處理(返回json)并格式化異常
這篇文章主要介紹了springboot統(tǒng)一異常處理(返回json)并格式化異常,對(duì)spring boot的默認(rèn)異常處理方式進(jìn)行修改,要統(tǒng)一返回?cái)?shù)據(jù)格式,優(yōu)雅的數(shù)據(jù)交互,優(yōu)雅的開發(fā)應(yīng)用,需要的朋友可以參考下2023-07-07Java8 使用流抽取List<T>集合中T的某個(gè)屬性操作
這篇文章主要介紹了Java8 使用流抽取List<T>集合中T的某個(gè)屬性操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02