日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Hibernate傳入Java對象創建動態表并錄入數據

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

看到Hibernate你給一個對象,他就能動態的創建配置文件里面指定的表名,然后把數據錄入到數據庫,當初感覺是很神奇,不過,好像Hibernate不能動態的分表創建表和錄入數據

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

注意:

由于業務需要,這里對于字段的支持只有int和Integer,double和Double

還有String,同時對于String統一創建為了Varchar(100)的字段

表會統一創建一個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; /** * @說明 動態插入數據和創建表 * @author 崔素強 * @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); // 保存數據 }else{ re = createTable(jt,tname,obj, noCol); // 動態創建表 if(re == 1){ re = saveObj(jt,tname,obj, noCol); // 保存數據 } } } catch (Exception e) { logger.error('公用方法插入數據入口方法錯誤', e); } return re; } /** * 保存方法,注意這里傳遞的是實際的表的名稱 */ @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('公用方法錄入數據時錯誤', e); logger.error('公用方法錄入數據語句:' + sb.toString()); } return re; } /** * 根據表名稱 和 實體屬性 創建一張表 * @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('公用方法生成表時錯誤', e); logger.error('公用方法生成表語句:' + sb.toString()); } return 0; } }

這個對于之前寫的那個動態建表,新增了過濾不需要在表中創建的字段

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费久久久久久久久| 91欧美精品| 国产精品nxnn| 欧美1区2区3| 欧美日韩1区| 91嫩草精品| 亚洲影院天堂中文av色| 中文无码日韩欧| 日韩激情一二三区| 青草国产精品久久久久久| 日本精品一区二区三区在线观看视频| 日韩美女精品| 日韩国产一区二| 国产精品白浆| 精品久久99| 日韩在线欧美| 欧美一级精品| 国产亚洲精品v| 热久久免费视频| 日韩国产高清在线| 国产探花一区在线观看| 日本不卡一区二区三区| 国产精品一二| 亚洲涩涩在线| 日韩视频久久| 亚洲一级大片| 国产亚洲精品美女久久| 成人在线黄色| 欧美日韩三区| 国产亚洲精品精品国产亚洲综合| 老司机免费视频一区二区三区| 国产91在线精品| 久久国产成人午夜av影院宅| 免费日韩av| 国产精品一线| 精精国产xxxx视频在线野外| 国产国产精品| 综合激情五月婷婷| 97精品久久| av资源中文在线天堂| 日韩欧美一区二区三区在线观看| 欧美日韩精品免费观看视频完整| 日本vs亚洲vs韩国一区三区二区| 精品久久97| 黄色av一区| 青青国产91久久久久久| 日韩一区精品字幕| 日韩欧美中文字幕一区二区三区| 国产精品激情电影| 亚洲先锋成人| 日本欧美一区二区在线观看| 免费在线日韩av| 国产99久久| 欧美天堂在线| 亚洲午夜电影| 国产乱子精品一区二区在线观看 | 日韩毛片视频| 久久亚洲国产精品一区二区| 国产欧美一级| 美女少妇全过程你懂的久久| 天堂俺去俺来也www久久婷婷| 精品久久美女| 国产精品日韩久久久| 国产精品黄色片| 免费精品视频| 成人精品高清在线视频| 中文字幕av一区二区三区人 | 亚洲一级在线| 国产一区二区三区四区大秀| 美女精品一区| 日韩一区电影| 久久激五月天综合精品| 欧美精品一区二区久久| 国产精品伦一区二区| 国产亚洲毛片| 亚洲永久av| 国产日韩免费| 99热免费精品| 九色porny丨国产首页在线| 久久狠狠亚洲综合| 亚洲免费一区二区| 中文字幕成在线观看| 欧美天堂在线| 久久国产精品亚洲77777| 欧美少妇精品| 国产欧美日韩视频在线| 老鸭窝亚洲一区二区三区| 中文字幕色婷婷在线视频| 国产欧美另类| 日韩一区二区三免费高清在线观看 | 日本久久一区| 欧美va天堂| 美女久久99| 综合欧美精品| 在线综合亚洲| 91精品国产成人观看| 精品网站aaa| 久久精品99国产精品日本| 免费久久99精品国产自在现线| 亚洲四虎影院| 在线看片福利| 国产精品欧美在线观看| 婷婷视频一区二区三区| 中日韩男男gay无套| 一区二区三区四区在线看| 最新中文字幕在线播放| 精品亚洲二区| 免费在线观看一区| 亚洲一区av| 中文字幕中文字幕精品| 久久成人国产| 丝袜美腿亚洲色图| 午夜在线观看免费一区| 国产一级久久| 极品日韩av| 亚洲二区精品| 999久久久国产精品| 黄色在线网站噜噜噜| sm捆绑调教国产免费网站在线观看 | 亚洲a级精品| 蜜臀久久99精品久久久久久9| 亚洲一级特黄| 久久天堂精品| 高清一区二区三区| 捆绑调教日本一区二区三区| 久久久久久一区二区| 福利一区和二区| 久久精品亚洲一区二区| 国产一区日韩| 国产不卡精品| 欧美sm一区| 亚洲高清毛片| 在线亚洲精品| 亚洲2区在线| 日韩精品久久理论片| 欧美精品中文字幕亚洲专区| 国产精品综合色区在线观看| 国产欧美日韩精品高清二区综合区| 欧美极品一区二区三区| 国产一区日韩| 久久久久久久久久久9不雅视频| 久久超碰99| 国产精品99久久免费| 四季av一区二区凹凸精品| 久久精品国产www456c0m| 久久在线免费| 国精品一区二区| 中文一区一区三区免费在线观| 欧美天堂一区二区| 亚洲精品韩国| 麻豆国产欧美日韩综合精品二区| 精品三级在线| 在线看片不卡| 国产精品久久久久77777丨| 成人福利视频| 综合激情一区| 欧美网站在线| 鲁鲁在线中文| 国产精品4hu.www| 亚洲视频国产精品| 亚洲国产成人精品女人| 老司机免费视频一区二区| 美女网站一区| 爽好多水快深点欧美视频| 97久久亚洲| 欧美日本精品| 国产综合视频| 精品国产一级| 欧美国产日本| 首页国产欧美久久| 欧美aⅴ一区二区三区视频| xxxxx性欧美特大| 中国女人久久久| 国产精品亚洲成在人线| 日韩美女一区二区三区在线观看| 亚洲激情二区| 国产精品99精品一区二区三区∴| 久久影视一区| 日韩欧美中文字幕电影| 日韩久久一区| 日韩精品诱惑一区?区三区| 国产一区福利| 青青久久av| 成人欧美一区二区三区的电影| 国产精品一区免费在线| 国产精品亚洲片在线播放| 免播放器亚洲一区| 亚洲色诱最新| 1024精品久久久久久久久| 国产一区二区三区四区五区传媒| 久久狠狠久久| 国产精品22p| 日韩欧美精品一区| 亚洲一区中文| 欧美伊人久久| 中文字幕免费精品| 久久激情av| 亚洲www啪成人一区二区| 久久精品国产99久久| 99热精品久久|