forName支持?jǐn)?shù)組類型,loadClass不支持?jǐn)?shù)組 一般情況下,這兩個(gè)方法效果一樣,都能裝載Class。但如果程序依賴于Class是否被初始化,就必須用Class.forName(name)了。 例如,在JDBC編程中,常看到這樣的用法,Class.forName("com.mysql.jdbc.Driver")
在延平等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),全網(wǎng)營(yíng)銷推廣,外貿(mào)網(wǎng)站建設(shè),延平網(wǎng)站建設(shè)費(fèi)用合理。
MySQL中,BLOB是個(gè)類型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,這幾個(gè)類型之間的唯一區(qū)別是在存儲(chǔ)文件的最大大小上不同。
MySQL的四種BLOB類型
TinyBlob: 最大 255字節(jié)
Blob: 最大 65K
MediumBlob:最大 16M
LongBlob: 最大 4G
注意:如果你存儲(chǔ)的文件過大,數(shù)據(jù)庫(kù)的性能會(huì)下降很多。
2、PHP操作BLOB案例
?php
mysql_connect( "localhost", "root", "password"); //連接數(shù)據(jù)庫(kù)
mysql_select_db( "database"); //選定數(shù)據(jù)庫(kù)
//數(shù)據(jù)插入:
$CONTENT="測(cè)試內(nèi)容"; //$CONTENT為新聞內(nèi)容
$COMPRESS_CONTENT = bin2hex(gzcompress($CONTENT));
$result=mysql_query( "insert into news (content) value ('$COMPRESS_CONTENT')");//數(shù)據(jù)插入到數(shù)據(jù)庫(kù)news表中
//展示:
$query = "select data from testtable where filename=$filename";
$result = mysql_query($query);
$COMPRESS_CONTENT=@gzuncompress($result["COMPRESS_CONTENT"]);
echo $COMPRESS_CONTENT;
?
[2]存儲(chǔ)圖片
?php
mysql_connect( "localhost", "root", "password"); //連接數(shù)據(jù)庫(kù)
mysql_select_db( "database"); //選定數(shù)據(jù)庫(kù)
//存儲(chǔ):
$filename="" //這里填入圖片路徑
$COMPRESS_CONTENT = addslashes(fread(fopen($filename, "r"), filesize($filename)));//打開文件并規(guī)范化數(shù)據(jù)存入變量$data中
$result=mysql_query( "insert into news (content) value ('$COMPRESS_CONTENT')");//數(shù)據(jù)插入到數(shù)據(jù)庫(kù)test表中
//展示:
ob_end_clean();
Header( "Content-type: image/gif");
$query = "select data from testtable where filename=$filename";
$result = mysql_query($query);
echo $result["COMPRESS_CONTENT"];
?
blob是一個(gè)對(duì)象容器,只能由js自身讀取并作為二進(jìn)制數(shù)據(jù)流上傳至服務(wù)器。
這種你得修改js代碼建立一個(gè)blob上傳至后臺(tái),然后后臺(tái)再用腳本接收并儲(chǔ)存為文件。
// 連接字符串 data source=d:\test.db3;password=1234
SQLiteConnectionStringBuilder connStr = new SQLiteConnectionStringBuilder();
connStr.DataSource = @"d:\test.db3";
connStr.Password = "1234";
conn = new SQLiteConnection(connStr.ToString());
conn.Open();
// 插入數(shù)據(jù)
string SQL = "INSERT INTO test(k) VALUES(:k)";
SQLiteCommand cmd = conn.CreateCommand();
cmd.CommandText = SQL;
// 取圖標(biāo),準(zhǔn)備插入到數(shù)據(jù)庫(kù)BLOB字段
FileStream picStream = File.OpenRead(@"d:\1.bmp");
byte[] bArray = new byte[picStream.Length];
picStream.Read(bArray, 0, bArray.Length);
picStream.Close();
cmd.Parameters.Add("k", DbType.Binary).Value = bArray; // BLOB
cmd.ExecuteNonQuery();
//取出數(shù)據(jù)
cmd.CommandText = "SELECT k FROM test";
System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
MemoryStream streamImage = new MemoryStream(reader["k"] as byte[]);
pictureBox1.Image = Image.FromStream(streamImage);
streamImage.Close(); // 關(guān)閉流
}
reader.close();
conn.close();