discuz論壇用sql語句批量插入測試資料(百萬級別)
{
public final static String path = "D:/ComsenzEXP/wwwroot/discuz/attachments/testLog.txt";
public static void main (String[] agrs)
{
//System.out.println(toHexString("測試"));
//System.out.println(toStringHex("0x74657374"));
insertData(300000,4,100000,"test","test");
}
/*
* @deprecated 插入資料
* @param startNumber
* @param endNumber
* @param fourmid
* @param postsNumber
* @param todayposts
*/
public static void insertData(long insertNumber,int fourmid,long todayposts,String title,String content)
{
String message = "插入:" + insertNumber + "條記錄";
System.out.println(message);
appendMethod(path,message);
long startTime = System.nanoTime();
message = "insertData startTime:" + startTime;
System.out.println(message);
appendMethod(path,message);
DBManager dbm = new DBManager("localhost:6033", "discuz", "discuz", "discuzexp");
String sql = "";
String pid = getLastRowByColumnValue(dbm,"cdb_posts","pid");
long startNumber = Long.parseLong(pid) + 1;
long endNumber = startNumber + insertNumber;
long i = 1;
//content = toHexString(content);
//0x6d4b8bd551855bb9
//0x6d4b8bd5
//String insertTitle = title;
for(i = startNumber; i < endNumber; i++)
{
//insertTitle = insertTitle + i;
//insertTitle = toHexString(insertTitle + i);
sql = "INSERT INTO cdb_posts VALUES ('" + i + "','" + fourmid + "','" + i + "','1',0x61646d696e,'1',0x74657374,'1221120302',0x74657374,0x3139322e3136382e302e3335,'0','0','0','0','-1','-1','0','0','0','0','0')";
dbm.executeUpdate(sql);
sql = "INSERT INTO cdb_threads VALUES ('" + i + "','" + fourmid + "','0','0','0','0',0x61646d696e,'1',0x74657374,'1221120302','1221120302',0x61646d696e,'1','0','0','0','0','0','0','0','0','0','0','0','0','0','0')";
dbm.executeUpdate(sql);
/*
sql = "INSERT INTO cdb_posts VALUES ('" + i + "','" + fourmid + "','" + i + "','1',0x61646d696e,'1','" + insertTitle + "','1221120302','" + content + "',0x3139322e3136382e302e3335,'0','0','0','0','-1','-1','0','0','0','0','0')";
dbm.executeUpdate(sql);
sql = "INSERT INTO cdb_threads VALUES ('" + i + "','" + fourmid + "','0','0','0','0',0x61646d696e,'1','" + insertTitle + "','1221120302','1221120302',0x61646d696e,'1','0','0','0','0','0','0','0','0','0','0','0','0','0','0')";
dbm.executeUpdate(sql);
*/
}
todayposts = endNumber - 499999;
sql = "UPDATE cdb_forums SET lastpost='0x74657374', threads=" + endNumber + ", posts=" + endNumber + ", todayposts=" + todayposts + " WHERE fid=" + fourmid;
dbm.executeUpdate(sql);
message = "insertData endTime:" + System.nanoTime();
System.out.println(message);
appendMethod(path,message);
long estimatedTime = System.nanoTime() - startTime;
message = "相差(用時):" + estimatedTime + "納秒," + estimatedTime/1000000000 + "秒/r/n/r/n";//1秒=10億納秒
System.out.println(message);
appendMethod(path,message);
}
/*
* @deprecated 獲取最後一行某列的值
* @param table
* @param column
*/
public static String getLastRowByColumnValue(DBManager dbm,String table,String column)
{
String sql = "";
sql = "select " + column + " from " + table + " order by " + column + " desc limit 1";
ResultSet rs = dbm.executeQuery(sql);
String str = "";
try {
while( rs.next())
{
str = rs.getString(column);
}
} catch (SQLException e) {
e.printStackTrace();
}
return str;
}
//轉化字串為十六進位制編碼
public static String toHexString(String s)
{
String str="";
for (int i=0;i<s.length();i++)
{
int ch = (int)s.charAt(i);
String s4 = Integer.toHexString(ch);
str = str + s4;
}
return "0x" + str;
}
//轉化十六進位制編碼為字串
public static String toStringHex(String s)
{
if("0x".equals(s.substring(0, 2)))
{
s =s.substring(2);
}
byte[] baKeyword = new byte[s.length()/2];
for(int i = 0; i < baKeyword.length; i++)
{
try
{
baKeyword[i] = (byte)(0xff & Integer.parseInt(s.substring(i*2, i*2+2),16));
}
catch(Exception e)
{
e.printStackTrace();
}
}
try
{
s = new String(baKeyword, "utf-8");//UTF-16le:Not
}
catch (Exception e1)
{
e1.printStackTrace();
}
return s;
}
/**
* B方法追加檔案:使用FileWriter
* @param fileName
* @param content
*/
public static void appendMethod(String fileName, String content){
try {
//開啟一個寫檔案器,建構函式中的第二個引數true表示以追加形式寫檔案
FileWriter writer = new FileWriter(fileName, true);
writer.write(content + "/r/n");
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
相關推薦
discuz論壇用sql語句批量插入測試資料(百萬級別)
public class InsertIntoSQL {public final static String path = "D:/ComsenzEXP/wwwroot/discuz/attachments/testLog.txt";public static void main (String[] agrs
sql語句批量插入測試資料
修改執行一下sql: declare cmd varchar2(100); i number(10) :=1; item varchar2(50); begin for i in 1..40000
藉助資料庫執行sql語句批量生成測試資料
本人在學習selenium2java和資料庫使用的過程中,需要測試兌換卡購買課程的功能。測試的兌換卡之前都是手動新增的比較麻煩,自己寫了一個方法,批量生成測試兌換卡。 //新增兌換卡 public static void addCoupon() throws Class
T-sql語句批量插入資料
-- 使用declare 宣告變數 declare @i int declare @sumPhone int -- 使用 set 為變更賦值 set @i = 1 set @sumPhone = 1
SQL批量插入測試資料
方法一:直接使用insert into...select...方法 CREATE TABLE test( id int ); --count表示插入的次數 insert into test
用sql語句快速備份表資料
1.Sql Server 資料庫 --DataTable 原資料表 --DataTable_20150717 要備份的新表名 select * into DataTable_20150717 fro
SQL Server 批量主分割槽備份(Multiple Jobs)
USE [msdb] GO /****** 物件: Job [Barefoot_Opinion_9565] 指令碼日期: 01/06/2013 14:07:27 ******/ BEGIN TRANSACTION DECLARE @ReturnCode INT SELECT @Retur
SQL Server 批量主分割槽備份(One Job)
--批量備份資料庫 DECLARE @DBName VARCHAR(100) DECLARE @CurrentTime VARCHAR(50) DECLARE @FileName VARCHAR(200) DECLARE @WithType CHAR(20) DECLARE @Backup_Da
關於sql語句中的一些函式(長期更新)
前言在最近看別人的sql的時候,看到一些函式,比如left(),right()等等,好奇是什麼意思,查詢之後覺得還是挺有用的,特此記錄下來。部落格會在遇到新的函式的時候定期更新。—————————————————————————————————————————————————
經典sql語句大全-非常有用(特指Mysql)
7、說明:新增主鍵: Alter table tabname add primary key(col) 說明:刪除主鍵: Alter table tabname drop primary key(col) 8、說明:建立索引:create [unique] index idxname on tabname(c
用SQL語句向表格中插入資料
向表格中插入資料 SQL語言使用insert語句向資料庫表格中插入或新增新的資料行。Insert語句的使用格式如下: insert into tablename (first_column,...last_column) values (first_v
SQL Server2012使用導入和導出向導時,用sql語句作為數據源,出現數據源類型會變成202或者203
tegra 程序 保存 ons tail nis sdn 信息 ping 用MS SqlServer2012進行數據導出時,使用的查詢語句導出,但是出現了錯誤: “發現 xx個未知的列類型轉換您只能保存此包“ 點擊列查看詳細錯誤信息時,可以看到: [源信息]源位置: 192
用SQL語句查表
bsp from eache http src com 查表 舉例 語句 (計應154蘭家才)格式 舉例 select 教師編號,教師職稱 from dbo.Teacher 用SQL語句查表
第八章,用SQL語句操作數據
values 通過 select語句 sql 定義 開頭 更新數據 算數運算 優先級 SQL的組成: (1)DML(Data Manipiation Language ,數據操作語言,)用來插入,修改和刪除數據庫中的數據,如:INSERT,UPDATE,DELETE等。
【存儲過程】用SQL語句獲得一個存儲過程返回的表
into log 返回 dbo emp ins 過程 arc 存儲過程 定義一個存儲過程如下: create proc [dbo].[test1] @id int as select 1 as id,‘abc‘ as name union all select @id
用SQL語句創建和刪除Access數據庫中的表;添加列和刪除列
建立 ... logs ted 字段 table eat rop 長度 用SQL語句創建和刪除Access數據庫中的表;添加列和刪除列 Posted on 2009-08-11 13:42 yunbo 閱讀(1240) 評論(0) 編輯 收藏 用SQL語句創建和刪除A
列出各個部門中工資高於本部門的平均工資的員工數和部門號,並按部門號排序(用sql語句來表達)。
AR 思路 進行 info family order size table ID 查詢出各個部門中工資高於本部門的平均工資的員工數和部門號,並按部門號排序(用sql語句來表達) 1.創建的表格 2.思路: (1)首先查詢各個部門的平均工資 1 select dept
用SQL語句操作數據
大小寫 存在 dcl 算數運算 變量 UC 函數 creat nio 使用T-SQL插入數據 1.SQL簡介 (1)SQL是什麽 structured Query Language:結構化查詢語句 *不區分
用SQL語句操作數據------解析
解析 語句 錯誤 表名 標識 組成 nio 分隔 數據 一.SQL 結構化查詢語言 1.T-SQL 和 SQL的關系 T-SQL是SQL的增強版 2.SQL的組成 2.1 DML (數據操作語言) 增加,修改,刪除等數據操作 2.2 DCL (數據控制語言) 存儲許可,存儲
用SQL語句向數據庫添加date類型字段
是我 insert date 通過 string 增長 ring style info 在開發的時候,經常要寫條SQL語句將信息插入表中,插入的數據如果字段是date類型,就必須將date類型轉換成字符串String類型在通過sql語句插入數據庫。這是我找到添加該字段的方法