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

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

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

瀏覽:37日期: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久久,三上悠亚国产精品一区二区三区
日韩有码av| 亚洲一区中文| 亚洲三级毛片| 免费观看在线色综合| 色爱av综合网| 97精品一区二区| 国产精品不卡| 日韩三区免费| 亚洲高清二区| 久久香蕉精品| 日韩中文字幕一区二区高清99| 亚洲97av| 欧美午夜三级| 卡一精品卡二卡三网站乱码| 精品五月天堂| 婷婷六月综合| 亚洲精品欧美| 国产精品亚洲综合久久| 捆绑调教美女网站视频一区| 日韩88av| 久久伊人久久| 日韩中文视频| 国产午夜精品一区二区三区欧美| 亚洲欧美激情诱惑| 亚洲a成人v| 久久久久伊人| 日韩成人亚洲| 中文在线一区| 欧美亚洲tv| 国产精品久久观看| 亚洲成人一区在线观看| 亚洲作爱视频| 日韩区一区二| 久久在线91| 久久久久久久久丰满| 中文日韩在线| 国内自拍视频一区二区三区| 久久精品国产大片免费观看| 天使萌一区二区三区免费观看| 青青草精品视频| 91亚洲国产成人久久精品| 欧美中文一区二区| 综合一区在线| 精品一区二区三区视频在线播放 | 久久九九99| 老牛国产精品一区的观看方式| 国产亚洲一区二区三区啪| 国产激情欧美| 免费久久久久久久久| 麻豆国产在线| 免费成人av在线播放| 国产精品激情电影| 激情视频一区二区三区| 日本在线不卡视频一二三区| 美女福利一区二区三区| 久久福利精品| 国产日产精品_国产精品毛片| 日韩av片子| 首页国产欧美久久| 久久只有精品| 免费在线看一区| 国产+成+人+亚洲欧洲在线| 亚洲国产一区二区三区在线播放| 日韩精品免费视频人成| 热三久草你在线| 亚洲精品影视| 久久要要av| 嫩呦国产一区二区三区av| 美女毛片一区二区三区四区 | 日韩精品一卡二卡三卡四卡无卡| 久久精品三级| 亚洲精品黄色| 久久久天天操| 国产精品久久久久77777丨| 蜜桃久久av| 欧洲av不卡| 天堂久久av| 欧美日韩国产探花| 精品成av人一区二区三区| 亚洲午夜久久| 色88888久久久久久影院| 国产精品亚洲欧美一级在线| 欧美午夜不卡影院在线观看完整版免费| 青青草视频一区| 久久国产成人| 99精品视频在线| 精品视频高潮| 欧美日韩1区| 麻豆91精品| 日韩成人高清| 美女国产一区二区三区| 奶水喷射视频一区| 中文字幕高清在线播放| 久久国产精品免费精品3p| 久久大逼视频| 免费欧美一区| 秋霞影视一区二区三区| 成人在线超碰| 国产精品丝袜在线播放| 综合亚洲视频| 香蕉久久夜色精品国产| 欧美亚洲国产精品久久| 国产一区二区三区天码| 青草综合视频| 日韩手机在线| 亚洲色图网站| 91成人网在线观看| 欧美日韩免费观看视频| 国产精品对白| 欧美性www| 日韩高清成人在线| 日韩中文字幕1| 亚洲精品a级片| 欧美日中文字幕| 欧美日韩国产免费观看视频| 日本免费一区二区三区四区| 精品视频在线一区二区在线| 久久av网址| 国产精品sss在线观看av| 欧美日韩一视频区二区| 日本精品在线播放| 蜜芽一区二区三区| 国产亚洲午夜| 欧美日韩视频| 亚洲国产日韩欧美在线| 激情欧美亚洲| 91久久黄色| 亚洲经典在线| 久久亚洲美女| 亚洲狼人精品一区二区三区| 一区二区国产精品| 亚洲精品中文字幕99999| 亚洲aa在线| 国产精品一区高清| 国产福利一区二区三区在线播放| 国产精品视频一区二区三区四蜜臂| 亚洲欧美在线综合| 在线日韩成人| 天堂va欧美ⅴa亚洲va一国产| 日韩av中文字幕一区二区三区| 国产亚洲欧美日韩精品一区二区三区| 欧美综合社区国产| 国产情侣久久| 精品视频一区二区三区四区五区| 国产成人调教视频在线观看| se01亚洲视频| 宅男噜噜噜66国产日韩在线观看| 在线看片一区| 欧美有码在线| 国内精品麻豆美女在线播放视频| 日韩不卡一区| 亚洲精品.com| 好吊一区二区三区| 亚洲精品进入| 国产精品久久久久av蜜臀| 国产成人精品亚洲线观看| 日韩欧美中文| 六月天综合网| 欧美日韩视频免费看| 精品深夜福利视频| 蜜桃精品在线| 蜜臀av性久久久久蜜臀aⅴ流畅 | 久久成人一区| 国产伦精品一区二区三区千人斩 | 日韩精品dvd| 午夜欧美精品久久久久久久| 日本亚洲最大的色成网站www| 久久99蜜桃| 久久精品高清| 日韩和欧美一区二区| 国产一区2区| 伊人久久成人| 国产三级一区| 蜜桃av.网站在线观看| 99国产精品| 欧美日韩在线精品一区二区三区激情综合| 国产91欧美| 亚洲在线成人| 麻豆精品av| 性色av一区二区怡红| 麻豆精品国产91久久久久久| 欧美精品一二| 国产高清亚洲| 伊人久久婷婷| 国产免费久久| 五月精品视频| 国产精品欧美大片| 亚洲婷婷在线| 91精品一区| 亚洲高清不卡| 国产精品99精品一区二区三区∴| 久久一级电影| 青青草国产成人99久久| 成人午夜国产| 国产精品网站在线看| 欧美日韩国产一区精品一区| 九九久久国产| 免费久久精品视频| 黄色在线观看www| 日本不卡一区二区三区|