Mybatis中注入执行sql查询、更新、新增及建表语句案例代码
短信预约 -IT技能 免费直播动态提醒
前言
在平时的项目开发中,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 {
void insertData(@Param(value = "sql") String sql);
Integer updateData(@Param(value = "sql") String sql);
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
,此时可以这么写:
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内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341