欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

MyBatis如何動態(tài)創(chuàng)建表

這篇文章給大家分享的是有關MyBatis如何動態(tài)創(chuàng)建表的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)公司是一家朝氣蓬勃的網(wǎng)站建設公司。公司專注于為企業(yè)提供信息化建設解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設計,網(wǎng)站模板,微信公眾號開發(fā),軟件開發(fā),成都小程序開發(fā),十多年建站對成都被動防護網(wǎng)等多個行業(yè),擁有多年的網(wǎng)站制作經(jīng)驗。

項目中業(yè)務需求的不同,有時候我們需要動態(tài)操作數(shù)據(jù)表(如:動態(tài)建表、操作表字段等)。常見的我們會把日志、設備實時位置信息等存入數(shù)據(jù)表,并且以一定時間段生成一個表來存儲,log_201806、log_201807等。在這里我們用MyBatis實現(xiàn),會用到動態(tài)SQL。

動態(tài)SQL是Mybatis的強大特性之一,MyBatis在對sql語句進行預編譯之前,會對sql進行動態(tài)解析,解析為一個BoundSql對象,也是在此對動態(tài)sql進行處理。

在動態(tài)sql解析過程中,#{ }與${ }的效果是不一樣的:

#{ } 解析為一個JDBC預編譯語句(prepared statement)的參數(shù)標記符。

如以下sql語句:

select * from user where name = #{name};

會被解析為:

select * from user where name = ?;

可以看到#{ }被解析為一個參數(shù)占位符 ? 。

${ } 僅僅為一個純粹的String替換,在動態(tài)SQL解析階段將會進行變量替換。

如以下sql語句:

select * from user where name = ${name};

當我們傳遞參數(shù)“joanna”時,sql會解析為:

select * from user where name = “joanna”;

可以看到預編譯之前的sql語句已經(jīng)不包含變量name了。

綜上所述,${ }的變量的替換階段是在動態(tài)SQL解析階段,而#{ } 的變量的替換是在DBMS中。

下面實現(xiàn)MyBatis動態(tài)創(chuàng)建表,判斷表是否存在,刪除表功能。

Mapper.xml

<?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="xx.xxx.xx.mapper.OperateTableMapper" >
  <select id="existTable" parameterType="String" resultType="Integer"> 
    select count(*) 
    from information_schema.TABLES 
    where LCASE(table_name)=#{tableName} 
  </select>
  <update id="dropTable"> 
    DROP TABLE IF EXISTS ${tableName} 
  </update> 
  <update id="createNewTable" parameterType="String"> 
    CREATE TABLE ${tableName} (
     id bigint(20) NOT NULL AUTO_INCREMENT,
     entityId bigint(20) NOT NULL,
     dx double NOT NULL,
     dy double NOT NULL,
     dz double NOT NULL,
     ntype varchar(32) NOT NULL,
     gnssTime bigint(20) NOT NULL,
     speed float DEFAULT NULL,
     direction float DEFAULT NULL,
     attributes varchar(255) DEFAULT NULL,
     PRIMARY KEY (id)) 
  </update> 
  <insert id="insert" parameterType="xx.xxx.xx.po.Trackpoint">
    insert into ${tableName}
    (entityId,dx,dy,dz,ntype,gnssTime,speed,direction,attributes)
    values
    (#{trackpoint.entityid},
    #{trackpoint.dx},
    #{trackpoint.dy},
    #{trackpoint.dz},
    #{trackpoint.ntype},
    #{trackpoint.gnsstime},
    #{trackpoint.speed},
    #{trackpoint.direction},
    #{trackpoint.attributes})
  </insert>
</mapper>

Mapper.java

package xx.xxx.xx.mapper;

import org.apache.ibatis.annotations.Param;
import xx.xxx.xx.po.Trackpoint;
public interface OperateTableMapper {
  int existTable(String tableName);
  int dropTable(@Param("tableName")String tableName);
  int createNewTable(@Param("tableName")String tableName);
  int insert(@Param("tableName")String tableName,@Param("trackpoint")Trackpoint trackpoint);
}

感謝各位的閱讀!關于“MyBatis如何動態(tài)創(chuàng)建表”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

文章題目:MyBatis如何動態(tài)創(chuàng)建表
網(wǎng)頁網(wǎng)址:http://www.aaarwkj.com/article28/gihicp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站網(wǎng)頁設計公司、網(wǎng)站排名、商城網(wǎng)站、網(wǎng)站設計、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
成人性生交大片免费看中文 | 蜜臀av人妻一区二区三区| 国产一级成人免费视频| 亚洲国产日韩精品自拍av| 亚洲国产精品日韩专区av有中文| 精品欧美日韩国产一区| 亚洲国产偷拍在线观看| 亚洲欧美日韩特级黄片| 亚洲精品国产精品粉嫩av| 中文字慕日韩精品欧美一区| 91性感视频在线播放| 熟女人妻丰满视频中文字幕| 国产欧美日韩91成人| 男女生做刺激性视频网站| 欧美三级特黄在线播放| 最近日本免费高清完整版| 在线观看亚洲av日韩av| 深夜视频在线观看成人| 久久久国产精品调教网站| 国产91九色蝌蚪在线观看| 国产又粗又长又大又长| 日韩精品一区二区视频| 国产精品亚洲国产精品| 未满十八禁止免费视频| 亚洲精品成人福利网站| 亚洲黄色暴力一区视频| 亚洲国产第一av导航| 中文字幕变态另类一区二区| 外国男人搞亚洲女人在线| 久久这里只有精品伊人网| 欧美在线观看黄片视频| 亚洲最新精品一区二区| 真实国产熟女一区二区三区| 日本中文字幕一二三四区| 精品国产欧美成人一区| 日本h电影一区二区三区| 久久国产欧美日韩精品免费| 亚洲成人自拍在线视频| 欧美日韩综合精品无人区| 蜜臀综合亚洲国产精品| 亚洲精品不卡在线观看|