卡盟網(wǎng)站建設(shè)搜索引擎優(yōu)化排名技巧
文章目錄
- 前言
- 案例
- dao和mapper編寫
- XXXmapper.xml編寫
- 編寫業(yè)務(wù)層代碼,進行注入調(diào)用
- 額外擴展--創(chuàng)建表語句
前言
在平時的項目開發(fā)中,mybatis應(yīng)用非常廣泛,但一般都是直接CRUD
類型sql的執(zhí)行。
本片博客主要說明一個另類的操作,注入sql,并使用mybatis執(zhí)行
。
案例
dao和mapper編寫
三層架構(gòu)中,dao層主要用于對數(shù)據(jù)庫的操作。當項目配置好數(shù)據(jù)庫的連接配置后,在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編寫
編寫一個與CommonSqlMapper.java
與之對應(yīng)映射的CommonSqlMapper.xml
文件,其中可以對對應(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ù)層代碼,進行注入調(diào)用
@Service
public class TestService{@Autowiredprivate CommonSqlMapper commonSqlMapper;public void test(){String sql = "select * from xj_test where name = 'xj'";commonSqlMapper.queryData(sql);}
}
額外擴展–創(chuàng)建表語句
如果想要使用mybatis
執(zhí)行建表sql
,此時可以這么寫:
/*** 新增數(shù)據(jù)表* @param tableName 表名稱* @param rowSql 表字段拼接sql*/
void createTable(@Param(value = "tableName") String tableName,@Param(value = "rowSql") String rowSql);
對應(yīng)的xxxx.xml
中,編寫如下語句:
<!-- 創(chuàng)建表 -->
<insert id="createTable" statementType="STATEMENT">create table ${tableName} (id VARCHAR2(32) NOT NULL,${rowSql},PRIMARY KEY (id))
</insert>
【注意】
這里并不能直接進行 ${cresteTableSql} 的執(zhí)行,必須寫成上面的這種方式,否則將不能成功!