成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

Hibernate傳入Java對象創(chuàng)建動態(tài)表并錄入數(shù)據(jù)

瀏覽:7日期:2022-08-21 16:47:54

看到Hibernate你給一個(gè)對象,他就能動態(tài)的創(chuàng)建配置文件里面指定的表名,然后把數(shù)據(jù)錄入到數(shù)據(jù)庫,當(dāng)初感覺是很神奇,不過,好像Hibernate不能動態(tài)的分表創(chuàng)建表和錄入數(shù)據(jù)

我這里寫了一個(gè)公用的類,你給一個(gè)對象,告訴我按年還是按月生成表,并告訴我那個(gè)字段是不需要在表中創(chuàng)建的,該類就可以動態(tài)的分表創(chuàng)建需要的表,并錄入數(shù)據(jù)

注意:

由于業(yè)務(wù)需要,這里對于字段的支持只有int和Integer,double和Double

還有String,同時(shí)對于String統(tǒng)一創(chuàng)建為了Varchar(100)的字段

表會統(tǒng)一創(chuàng)建一個(gè)id自增主鍵

package com.xd.nms.util; import java.lang.reflect.Field; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.jdbc.core.JdbcTemplate; /** * @說明 動態(tài)插入數(shù)據(jù)和創(chuàng)建表 * @author 崔素強(qiáng) * @version 1.0 * @since */ public class CommonTableInsert { public static Log logger = LogFactory.getLog(CommonTableInsert.class); /** * 入口方法 * @param tableName 表前綴 * @param dateFormat 格式化方法 * @param obj 保存的對象 * @return */ @SuppressWarnings('unchecked') public static int insertObject(String tableName,String dateFormat,Object obj, Map noCol){ int re = 0; try { JdbcTemplate jt = (JdbcTemplate) SpringFactory.getObject('jdbcTemplate'); SimpleDateFormat format = new SimpleDateFormat(dateFormat); String tname = tableName + '_' + format.format(new Date()); if(CommonDBUtil.getAllTableName(jt,tname)){ // 如果有某表 re = saveObj(jt,tname,obj, noCol); // 保存數(shù)據(jù) }else{ re = createTable(jt,tname,obj, noCol); // 動態(tài)創(chuàng)建表 if(re == 1){ re = saveObj(jt,tname,obj, noCol); // 保存數(shù)據(jù) } } } catch (Exception e) { logger.error('公用方法插入數(shù)據(jù)入口方法錯誤', e); } return re; } /** * 保存方法,注意這里傳遞的是實(shí)際的表的名稱 */ @SuppressWarnings('unchecked') private static int saveObj(JdbcTemplate jt,String tableName,Object obj, Map noCol){ int re = 0; StringBuffer sb = new StringBuffer(''); try{ sb.append(' insert into ' + tableName + ' ('); Map<String,String> map = ObjectUtil.getProAndValMap(obj); // 對象的屬性和屬性值 Map<String,String> mapType = ObjectUtil.getProTypeMap(obj); // 對象的屬性類型列表 Set<String> set = map.keySet(); for(String key : set){ // 如果該列不是 非處理列 if(noCol.get(key) == null){ sb.append(key + ','); } } sb.append(' tableName ) '); sb.append(' values ( '); for(String key : set){ if(noCol.get(key) == null){ if(mapType.get(key).equals('class java.lang.String')){ sb.append('’' + (map.get(key) + '’,')); }else{ sb.append(map.get(key) + ','); } } } sb.append('’' + tableName + '’); ');re = jt.update(sb.toString()); } catch (Exception e) { logger.error('公用方法錄入數(shù)據(jù)時(shí)錯誤', e); logger.error('公用方法錄入數(shù)據(jù)語句:' + sb.toString()); } return re; } /** * 根據(jù)表名稱 和 實(shí)體屬性 創(chuàng)建一張表 * @param tableName * @param obj 具體生成什么樣的表看該對象 */ @SuppressWarnings('unchecked') private static int createTable(JdbcTemplate jt,String tableName,Object obj, Map noCol){ StringBuffer sb = new StringBuffer(''); sb.append('CREATE TABLE `' + tableName + '` ('); sb.append(' `id` int(11) NOT NULL AUTO_INCREMENT,'); Class c = obj.getClass(); Field field[] = c.getDeclaredFields(); for (Field f : field) { if(noCol.get(f.getName()) == null){ String type = f.getType().toString(); if(type.equals('class java.lang.String')){// Str sb.append('`' + f.getName() + '` varchar(100) DEFAULT NULL,'); }else if(type.equals('int') || type.equals('class java.lang.Integer')){// int sb.append('`' + f.getName() + '` int(11) DEFAULT NULL,'); }else if(type.equals('double') || type.equals('class java.lang.Double')){// double sb.append('`' + f.getName() + '` double DEFAULT NULL,'); } } } sb.append(' `tableName` varchar(255) DEFAULT NULL,'); sb.append(' PRIMARY KEY (`id`)'); sb.append(') ENGINE=InnoDB DEFAULT CHARSET=utf8;'); try { jt.update(sb.toString()); return 1; } catch (Exception e) { logger.error('公用方法生成表時(shí)錯誤', e); logger.error('公用方法生成表語句:' + sb.toString()); } return 0; } }

這個(gè)對于之前寫的那個(gè)動態(tài)建表,新增了過濾不需要在表中創(chuàng)建的字段

原理就是讀取對象的各個(gè)字段屬性,如果能加以配置文件或者讀取對象屬性的標(biāo)記,那其實(shí)能做到基本和Hibernate一致,不但能支持多種類型,還能做字段校驗(yàn)等

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美日韩国产一级片| 亚洲黄色免费电影| 欧美人成网站| 在线看无码的免费网站| 久久女同精品一区二区| 国产精品丝袜久久久久久app| 欧美精品一区二区高清在线观看| 亚洲精品成人少妇| 懂色av中文字幕一区二区三区 | 99久久精品免费| 在线精品一区| 欧美在线观看禁18| 8v天堂国产在线一区二区| 精品国产乱码久久久久久夜甘婷婷| 亚洲精品一区二区三区四区高清 | 亚洲妇女屁股眼交7| 日韩国产高清影视| 韩国女主播成人在线| 日韩一区二区不卡| 中文字幕在线视频一区| 一区二区日韩电影| 懂色av一区二区夜夜嗨| 最新亚洲一区| 欧美成人性福生活免费看| 亚洲国产精品久久一线不卡| 国产在线精品一区二区三区不卡| 成人精品国产免费网站| 欧美videos中文字幕| 欧美日本在线看| 亚洲妇熟xx妇色黄| 国产一区二区三区久久久| 欧美大片在线观看一区| 精品日本一线二线三线不卡 | 色偷偷88欧美精品久久久| 日韩av中文字幕一区二区三区| 狠狠狠色丁香婷婷综合久久五月| 一本一本大道香蕉久在线精品| 黄色日韩三级电影| 亚洲国产三级| 久久久91精品国产一区二区三区| 久久99热这里只有精品| 六月婷婷久久| 亚洲一区在线视频| 亚洲清纯自拍| 国产精品国产三级国产aⅴ原创| 国产99久久久国产精品潘金网站| 91国在线观看| 日韩av不卡一区二区| 校园激情久久| 国产99精品在线观看| 色婷婷综合久久久中文一区二区| 一区二区在线观看av| 在线视频国内自拍亚洲视频| 国产蜜臀av在线一区二区三区| eeuss鲁一区二区三区| 欧美一区二区视频免费观看| 国内一区二区在线| 欧美日韩久久久| 国产一区亚洲一区| 欧美高清一级片在线| 国产福利精品一区二区| 日韩一区二区麻豆国产| www.99精品| 国产精品视频九色porn| 黄色精品免费| 一区二区三区在线看| 亚洲一区不卡| 亚洲r级在线视频| 欧美做爰猛烈大尺度电影无法无天| 免费看欧美美女黄的网站| 欧美乱熟臀69xxxxxx| 成人午夜短视频| 国产日韩欧美一区二区三区综合| 国产综合网站| 一区二区视频在线| 日本韩国欧美国产| 国产精品中文字幕一区二区三区| 日韩小视频在线观看专区| 97超碰欧美中文字幕| 自拍偷自拍亚洲精品播放| 国产精品毛片va一区二区三区| 丝袜美腿成人在线| 337p亚洲精品色噜噜狠狠| 91在线一区二区三区| 日韩理论片中文av| 在线视频综合导航| 粉嫩久久99精品久久久久久夜| 久久精品一区二区三区不卡牛牛 | 亚洲国产经典视频| av午夜一区麻豆| 精品日韩在线观看| 成人小视频在线| 亚洲精品在线免费播放| 成人影视亚洲图片在线| 日韩一区二区免费在线电影| 国产另类ts人妖一区二区| 欧美日韩国产一级片| 国模少妇一区二区三区| 日韩精品成人一区二区在线| 欧美精品在线观看播放| 欧美日韩国产精品一卡| 亚洲成人av免费| 欧美一级二级三级蜜桃| 黄色精品免费| 韩日精品视频一区| 国产精品女同互慰在线看| 在线免费观看成人短视频| 91丝袜国产在线播放| 五月综合激情网| xfplay精品久久| 久久综合一区二区三区| 99在线精品观看| 日本在线观看不卡视频| 国产日产精品1区| 一本大道av一区二区在线播放| 波多野结衣在线aⅴ中文字幕不卡| 欧美成人在线免费观看| 亚洲午夜精品17c| 精品久久一区二区三区| 久久久久久九九九九| 成人免费毛片a| 日韩中文字幕一区二区三区| 精品国产百合女同互慰| 色偷偷88欧美精品久久久| 欧美国产高潮xxxx1819| 老司机精品视频线观看86| 中文字幕在线不卡一区 | 久久99久久久欧美国产| 精品一区二区在线看| 国产精品免费av| 欧美日韩1234| 国产日韩欧美在线播放不卡| 成人网男人的天堂| 日韩国产高清影视| 亚洲欧美日韩久久| 精品久久人人做人人爱| 在线看日本不卡| aa国产精品| 91美女视频网站| 国产成人综合网站| 蜜臀久久99精品久久久画质超高清| 国产精品蜜臀在线观看| 久久久一区二区三区捆绑**| 欧美午夜电影一区| 亚洲尤物精选| 亚洲视频在线二区| 99re视频精品| 成人综合激情网| 国产麻豆一精品一av一免费| 日韩激情视频网站| 亚洲与欧洲av电影| 亚洲精品一二三区| 亚洲视频免费看| 欧美日韩一区在线| 欧美日韩成人一区二区三区| 高清不卡一二三区| 激情图片小说一区| 六月丁香综合在线视频| 日韩精品乱码免费| 国产日韩欧美精品一区| 欧美网站大全在线观看| 日韩天堂av| 91丨九色丨尤物| 蜜桃av一区二区三区| 亚洲欧洲一区二区三区| 精品少妇一区二区三区视频免付费 | 国产目拍亚洲精品99久久精品| 欧美精品一区二区三| 久久综合久久鬼色中文字| 精品久久久久久久久久久久包黑料 | 91免费国产在线| 午夜国产精品视频免费体验区| 91免费国产在线| 欧美日韩视频在线一区二区观看视频 | 日韩视频在线观看一区二区| 日韩一区二区三区电影在线观看| 91精品国产免费| 精品国产乱码久久久久久夜甘婷婷| 日韩欧美国产系列| 欧美精品一区二区三区蜜臀| 欧美成人性战久久| 国产校园另类小说区| 国产精品麻豆网站| 亚洲欧美另类图片小说| 亚洲一区二区3| 日本在线播放一区二区三区| 九九久久精品视频| 成人教育av在线| 激情欧美日韩| 亚洲欧美日韩国产综合精品二区 | 91蝌蚪国产九色| 亚洲日本欧美| 色天天综合色天天久久| 欧美日韩精品高清| 久久综合视频网| 国产精品久久久久久妇女6080| 亚洲综合免费观看高清完整版在线| 日韩电影在线一区二区三区| 国产福利精品一区| 亚洲特色特黄|