mybatis3动态创建表,判断表是否存在,删除表
Posted Dreamer who
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis3动态创建表,判断表是否存在,删除表相关的知识,希望对你有一定的参考价值。
1.mybatis3动态创建表,判断表是否存在,删除表
mapper配置文件:
<span style="font-size:18px;"><?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.doctor.mybatis3practice.mapper.BlogMapper" >
<resultMap type="Blog" id="baseResultMap">
<id property="id" column="id"/>
<result property="authorId" column="author_id"/>
<result property="title" column="title"/>
</resultMap>
<sql id="all_collum">
id,author_id,title
</sql>
<insert id="insertBlog" useGeneratedKeys="true" keyProperty="id">
insert into blog ( author_id,title)
values (#authorId,#title)
</insert>
<select id="queryById" parameterType="Long" resultMap="baseResultMap">
select <include refid="all_collum"/>
from blog
where id = #id
</select>
<select id="existTable" parameterType="String" resultType="Integer">
select count(1)
from sys.systables
where LCASE(tablename)=#tableName
</select>
<update id="dropTable">
drop table $tableName
</update>
<update id="createNewTable" parameterType="String">
create table $tableName (
id int not null generated by default as identity,
author_id int not null,
title varchar(255),
primary key (id))
</update>
</mapper></span>
注意配置文件中的$tableName 和#tableName的区别.
mapper接口如下:
<span style="font-size:18px;">package com.doctor.mybatis3practice.mapper;
import org.apache.ibatis.annotations.Param;
import com.doctor.mybatis3practice.domain.Blog;
public interface BlogMapper
Blog queryById(Long id);
int insertBlog(Blog blog);
int createNewTable(@Param("tableName") String tableName);
int dropTable(@Param("tableName") String tableName);
int existTable(String tableName);
</span>
注意
<span style="font-size:18px;">@Param("tableName") 的注解.</span>
以上是关于mybatis3动态创建表,判断表是否存在,删除表的主要内容,如果未能解决你的问题,请参考以下文章
oracle创建表之前判断表是不是存在,如果存在则删除已有表