大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 動(dòng)態(tài)MyBatis創(chuàng)建表

動(dòng)態(tài)MyBatis創(chuàng)建表

更新時(shí)間:2022-03-23 11:00:40 來源:動(dòng)力節(jié)點(diǎn) 瀏覽4235次

1.動(dòng)態(tài)添加表

映射器

int dropExistTable(@Param("tableName") String tableName);//自動(dòng)創(chuàng)建數(shù)據(jù)表

映射文件

   <update id="dropExistTable" parameterType="string" statementType="STATEMENT"> 
                CREATE TABLE ${tableName} ( 
                `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
                `name` varchar(100) DEFAULT NULL, 
                `password ` varchar(100) DEFAULT NULL, 
                `create_time` 時(shí)間戳 NULL 
                ) ENGINE=InnoDB DEFAULT CHARSET=utf8 
  </update>

控制器

    @RequestMapping("/createtable") 
    @ResponseBody 
    public String createTable(String tableName){ 
        Map<String, Object> reMap = new HashMap<String, Object>(); 
        int res = userService.dropExistTable(tableName); 
        if (res == 0) { 
            reMap.put("code",1); 
            reMap.put("msg"," 創(chuàng)建成功"); 
            logger.info("'tableNameString'+ 創(chuàng)建成功"); 
        }else{ 
            reMap.put("code",-1); 
            reMap.put("msg"," 創(chuàng)建失敗"); 
            logger.info("創(chuàng)建失敗"); 
        }
        返回 JSONUtil。獲取JSON(重新映射);
    }

添加屬性 statementType="STATEMENT"

同時(shí)將sql中因變量的值改為${xxxx},而不是#{xxx}

statementType:STATEMENT(未預(yù)編譯),PREPARED(預(yù)編譯)或CALLABLE中的任何一種,告訴你MyBatis單獨(dú)使用Statement,PreparedStatement或者CallableStatement。默認(rèn):準(zhǔn)備。這里明顯沒有預(yù)編譯,要改成非預(yù)編譯..

${xxxx}:$直接在sql中生成傳入的數(shù)據(jù),對(duì)于字符串?dāng)?shù)據(jù),需要手動(dòng)加引號(hào)

2.動(dòng)態(tài)查詢數(shù)據(jù)表

List<User> selectTable(@Param("tableName") String tableName);

項(xiàng)目中 User 表為空,有動(dòng)態(tài)創(chuàng)建的表結(jié)構(gòu),字段一致

映射文件 *mapper.xml

<select id="selectTable" parameterType="java.lang.String" resultMap="BaseResultMap" statementType="STATEMENT"> 
    select * from ${tableName}
  </選擇>

控制器

	@RequestMapping("/selectTable") 
	public String showSelectTable(String tableName){ 
		List<User> objects = userService.selecTable(tableName); 
		System.out.println("user::::"+objects); 
		logger.info("成功"); 
		返回 JSONUtil.getJSON(對(duì)象);
	}

#和$符號(hào)的區(qū)別

#{}代表占位符符號(hào),可以實(shí)現(xiàn)preparedStatement給占位符設(shè)置值,自動(dòng)加粗樣式java類型和jdbc類型轉(zhuǎn)換。#{}可以有效防止sql注入。#{}可以接受簡(jiǎn)單類型值或 pojo 屬性值。如果 parameterType 傳遞一個(gè)單一的簡(jiǎn)單類型值,#{} 可以是括號(hào)中的 value 或者其他一些名字。

${ } 表示拼接sql strand,通過 ${} 可以是 parameterType 傳入的內(nèi)容在 sql 中拼接出來的 jdbc 類型轉(zhuǎn)換,可以接受簡(jiǎn)單類型值或者 pojo 屬性值,如果 parameterType 傳遞單個(gè)簡(jiǎn)單類型值,{可以接受簡(jiǎn)單類型值或者 pojo 屬性值,如果 parameterType 傳遞單個(gè)簡(jiǎn)單類型值,可以接受簡(jiǎn)單類型值或者 pojo 屬性值,如果 parameterType 傳遞單個(gè)簡(jiǎn)單類型值,{} 只能是括號(hào)內(nèi)的值.

注意:關(guān)于 order by 下面的排序規(guī)則,表名等數(shù)據(jù)庫(kù)對(duì)象名,如果要傳入,還應(yīng)該使用${……}

3.動(dòng)態(tài)表數(shù)據(jù)添加

int insertTable(@Param("user")User user,@Param("tableName") String tableName);
insertTable() 方法中有兩個(gè)參數(shù),一個(gè)參數(shù)是 tabelName ,另一個(gè)參數(shù)是 User object ,因此 <insert> 標(biāo)簽中不能有...的參數(shù)Type參數(shù),而是使用@Param(“”)來修飾,注意,
@Param 是 import org.apache.ibatis.annotations.Param;,不要誤導(dǎo)包。

映射器.xml

  <insert id="insertTable" >
  插入 ${tableName}(名稱、密碼、create_time)
  值(#{user.name}、#{user.password}、#{user.createTime})
  </插入>

控制器實(shí)現(xiàn)方法

@RequestMapping("/addTable") 
	@ResponseBody 
	public String addTable( String name,String password,String tableName){ 
		Map<String, Object> reMap = new HashMap<String, Object>(); 
		用戶用戶=新用戶();
		user.setName(name); 
		user.setPassword(密碼); 
		user.setCreateTime(new Date()); 
		System.out.println("傳入用戶參數(shù)"+user); 
		int res = userService.insertTable(user,tableName); 
		if (res > 0) { 
			reMap.put("code",1); 
			reMap.put("msg"," 成功 "); 
			logger.info("'tableNameString'+ 成功"); 
		}else{ 
			reMap.put("code",-1); 
			重新映射.put("
		}
		返回 JSONUtil.getJSON(reMap);
	}

通過以上介紹相信大家對(duì)動(dòng)態(tài)MyBatis創(chuàng)建表的方法已經(jīng)有所了解,大家如果對(duì)此比較感興趣,想了解更多相關(guān)知識(shí),不妨來關(guān)注一下動(dòng)力節(jié)點(diǎn)的Mybatis-Plus視頻教程,里面的課程內(nèi)容由淺到深,通俗易懂,適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),希望對(duì)大家能夠有所幫助。

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 深夜在线网址 | 四虎影视精品永久免费 | 亚欧精品一区二区三区四区 | 亚洲精品久久久久网站 | 欧美日韩中文一区 | 手机福利在线观看 | 美女又黄又免费的视频 | 99国产视频 | 国产99视频精品一区 | 午夜噜噜噜私人影院在线播放 | 免费在线黄色网 | 天天干夜操| 国产亚洲精品麻豆一区二区 | 久久免费在线 | 在线观看国产一区二区三区 | 色综合天天综合中文网 | 久久天天躁夜夜躁狠狠85麻豆 | 久热这里只精品99re8久 | 国产一区二区三区欧美 | 亚洲精品国产一区二区三区在 | 久久婷婷五月综合色丁香 | 国产欧美精品一区二区三区四区 | 好吊妞免费视频 | 1000部羞羞禁止免费观看视频 | 99视频只有精品 | 夜夜爽夜夜 | 色天使色婷婷在线影院亚洲 | 99久久99这里只有免费费精品 | 久久www视频 | 国产精品免费综合一区视频 | 国产成在线人视频免费视频 | 97国内免费久久久久久久久久 | 国产亚洲精品成人一区看片 | 国产精品久久久 | 狠狠r| 四月婷婷七月婷婷综合 | 综合网亚洲 | 一级黑人 | 亚州色拍拍拍 | 2021国产精品自产拍在线 | 五月亭亭免费高清在线 |