300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Mybatis——注入执行sql查询 更新 新增以及建表语句

Mybatis——注入执行sql查询 更新 新增以及建表语句

时间:2023-08-09 08:23:02

相关推荐

Mybatis——注入执行sql查询 更新 新增以及建表语句

文章目录

前言案例dao和mapper编写XXXmapper.xml编写编写业务层代码,进行注入调用 额外扩展--创建表语句

前言

在平时的项目开发中,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@Repositorypublic 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 "-////DTD Mapper 3.0//EN" "/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.monSqlMapper"><!-- 修改 --><update id="updateData" >${sql}</update><!-- 新增 --><insert id="insertData">${sql}</insert><!-- 查询所有 --><select id="queryData" resultType="com.xxx.xxx.po.MakeUpDataPo">${selectSql}</select></mapper>

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

@Servicepublic class TestService{@Autowiredprivate 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} 的执行,必须写成上面的这种方式,否则将不能成功!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。