您好,登錄后才能下訂單哦!
問(wèn)題:在項(xiàng)目中,當(dāng)保存數(shù)據(jù)超過(guò)數(shù)據(jù)庫(kù)字段列長(zhǎng)度限制時(shí),如何解決?
一種常見(jiàn)的解決辦法是:截串存取。顧名思義,就是對(duì)大文本數(shù)據(jù)按指定長(zhǎng)度進(jìn)行截取,返回結(jié)果集依截取順序存儲(chǔ)在新表中。并通過(guò)在新表中創(chuàng)建一個(gè)type字段來(lái)標(biāo)識(shí)新表中截取的內(nèi)容對(duì)應(yīng)舊表中的字段名,而舊表中相應(yīng)的字段不再直接存放大文本數(shù)據(jù),而是存放標(biāo)識(shí)符。
這里,提供一種工具類(lèi),用來(lái)分割文本字符串,返回List結(jié)果集供下一步使用。
public class StringUtil { /** * @Name: getContentByList * @Description: 字符串切割 * @Author: 張(作者) * @Version: V1.00 (版本號(hào)) * @Create Date: 2017-6-26(創(chuàng)建日期) * @Parameters: wholecontent:傳遞的文本字符串; cutcount:切割字符串的長(zhǎng)度 * @Return: List:切割字符串形成的集合,存放結(jié)果集 */ public static List<String> getContentByList(String wholecontent,int cutcount){ List<String> list = new ArrayList<String>(); //獲取完整內(nèi)容字符串的總長(zhǎng)度 int contentlen = wholecontent.length(); //內(nèi)容截取,用內(nèi)容總長(zhǎng)和截取長(zhǎng)度進(jìn)行比較,無(wú)須截取的話(huà)直接插入 if (contentlen < cutcount){ list.add(wholecontent); } //內(nèi)容長(zhǎng)度超過(guò)截取長(zhǎng)度 else{ //定義并初始化內(nèi)容段落 String contentpart =""; //定義并初始化被截取的段落數(shù)量 int contentround =0; //開(kāi)始截取的位置 int begincount = 0; //判斷截取的段落數(shù) int contentcutpart = contentlen/cutcount; int contentcutparts = contentlen%cutcount; //求余數(shù) //若余數(shù)為0,說(shuō)明被整除,內(nèi)容的長(zhǎng)度正好是截取長(zhǎng)度的倍數(shù)。 if (contentcutparts==0){ contentround = contentcutpart; } else{ contentround = contentcutpart+1; } //循環(huán)截取內(nèi)容 for (int i = 1; i <= contentround; i++) { //如果不是最后一個(gè)截取部分 if (i != contentround){ //按照截?cái)嚅L(zhǎng)度截取內(nèi)容 contentpart = wholecontent.substring(begincount, cutcount*i); } else{ //截取最后一部分內(nèi)容 contentpart = wholecontent.substring(begincount, contentlen); } //賦值下一截取部分的起點(diǎn)位置 begincount = cutcount*i; list.add(contentpart); } } return list; } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。