数据库中字段随机添加汉字

Posted 艾子琼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库中字段随机添加汉字相关的知识,希望对你有一定的参考价值。

package test;

import hibernate.News;
import hibernate.NewsDAO;

import java.io.UnsupportedEncodingException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

public class Main {
//hibernate随机插入汉字
public static void main(String[] args) {
for (int i = 0;i<10;i++) {
//数据库的表和字段
News n= new News();
String s1 = getRandomJianHan(100);
String title = getRandomJianHan(10);
n.setNtitle(title);
n.setContext(s1);
n.setPath(getRandomJianHan(5));
n.setNname(getRandomJianHan(3));
n.setNtime(getDate("2000-01-01 00:00:00","2017-11-08 00:00:00"));
NewsDAO dao = new NewsDAO();
dao.merge(n);
}
}
//设置时间格式
public static Timestamp getDate(String s,String e){
try{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long start = sdf.parse(s).getTime();
long end = sdf.parse(e).getTime();
double t = Math.random()*(end-start)+start;
return new Timestamp((long)t);
}catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
//随机获取汉字
public static String getRandomJianHan(int len){
String ret="";
for(int i=0;i<len;i++){
String str = null;
int hightPos, lowPos; // 定义高低位
Random random = new Random();
hightPos = (176 + Math.abs(random.nextInt(39))); //获取高位值
lowPos = (161 + Math.abs(random.nextInt(93))); //获取低位值
byte[] b = new byte[2];
b[0] = (new Integer(hightPos).byteValue());
b[1] = (new Integer(lowPos).byteValue());
try
{
str = new String(b, "GBk"); //转成中文
}
catch (UnsupportedEncodingException ex)
{
ex.printStackTrace();
}
ret+=str;
}
return ret;
}
}

以上是关于数据库中字段随机添加汉字的主要内容,如果未能解决你的问题,请参考以下文章

为啥在sql里的汉字在读出数据时却显示问号呢?

SQLserver排序问题,字段中含有字母、数字、汉字,如何只按数字排序

arcgis属性字段名怎么才能大于四个汉字

在js中如何实现自动获取汉字的五笔首字母?

oracle中字段类型varchar2最大长度是多少?

sqlserver中有没有办法对汉字的字段排序?