当前位置:主页 > java教程 > Mybatis建表语句

Mybatis中注入执行sql查询、更新、新增及建表语句案例代码

发布:2023-04-07 09:50:02 59


给寻找编程代码教程的朋友们精选了相关的编程文章,网友崔念露根据主题投稿了本篇教程内容,涉及到Mybatis中注入执行sql、Mybatis建表语句、Mybatis建表语句相关内容,已被547网友关注,下面的电子资料对本篇知识点有更加详尽的解释。

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内容请搜索码农之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农之家!


参考资料

相关文章

网友讨论