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>
时间: 2024-10-20 19:54:17