TINYBLOB最大長度為255(2^[8]–1)位元組的BLOB列。
TINYTEXT最大長度為255(2^[8]–1)字元的TEXT列。
BLOB[(M)]最大長度為65,535(2^[16]–1)位元組的BLOB列。可以給出該型別的可選長度M。如果給出,則MySQL將列建立為最小的但足以容納M位元組長的值的BLOB型別。
TEXT[(M)]最大長度為65,535(2^[16]–1)字元的TEXT列。可以給出可選長度M。則MySQL將列建立為最小的但足以容納M字元長的值的TEXT型別。
MEDIUMBLOB最大長度為16,777,215(2^[24]–1)位元組的BLOB列。
MEDIUMTEXT最大長度為16,777,215(2^[24]–1)字元的TEXT列。
LONGBLOB最大長度為4,294,967,295或4GB(2^[32]–1)位元組的BLOB列。LONGBLOB列的最大有效(允許的)長度取決於客戶端/伺服器協議中配置最大包大小和可用的記憶體。
LONGTEXT最大長度為4,294,967,295或4GB(2^[32]–1)字元的TEXT列。LONGTEXT列的最大有效(允許的)長度取決於客戶端/伺服器協議中配置最大包大小和可用的記憶體。
id int(11) not null auto_increment,
name varchar(50) not null,
pswd varchar(50) default null,
pic longblob,
remark longtext,
primary key (id)
);
import java.io.*;
import java.sql.*;
/**
* 操作MySQL5的blob欄位
*
* @author leizhimin 2009-12-3 11:34:50
*/
public class BlobTest {
public static void main(String[] args) {
insertBlob();
queryBlob();
}
public static void insertBlob() {
Connection conn = DBToolkit.getConnection();
PreparedStatement ps = null;
try {
String sql = “insert into testdb.user (name, pswd, pic) values (?, ?, ?)”;
ps = conn.prepareStatement(sql);
ps.setString(1, “zhangsan”);
ps.setString(2, “111”);
//設定二進位制引數
File file = new File(“D:\new\dbtools\src\res\PIC.PNG”);
InputStream in = new BufferedInputStream(new FileInputStream(file));
ps.setBinaryStream(3, in, (int) file.length());
ps.executeUpdate();
in.close();
} catch (IOException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBToolkit.closeConnection(conn);
}
}
public static void queryBlob() {
Connection conn = DBToolkit.getConnection();
PreparedStatement ps = null;
Statement stmt = null;
ResultSet rs = null;
try {
String sql = “select pic from user where id = 24”;
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
if (rs.next()) {
InputStream in = rs.getBinaryStream(1);
File file = new File(“D:\new\dbtools\src\res\PIC_COPY.PNG”);
OutputStream out = new BufferedOutputStream(new FileOutputStream(file));
byte[] buff = new byte[1024];
for (int i = 0; (i = in.read(buff)) > 0;) {
out.write(buff, 0, i);
}
out.flush();
out.close();
in.close();
}
rs.close();
stmt.close();
} catch (IOException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBToolkit.closeConnection(conn);
}
}
}
import lavasoft.common.DBToolkit;
import java.io.*;
import java.sql.*;
/**
* 操作MySQL5的Clob欄位
*
* @author leizhimin 2009-12-3 13:56:16
*/
public class ClobTest {
public static void main(String[] args) {
insertClob();
queryClob();
}
public static void insertClob() {
Connection conn = DBToolkit.getConnection();
PreparedStatement ps = null;
try {
String sql = “insert into testdb.user (name, pswd, remark) values (?, ?, ?)”;
ps = conn.prepareStatement(sql);
ps.setString(1, “zhangsan”);
ps.setString(2, “111”);
//設定二進位制引數
File file = new File(“D:\new\dbtools\src\res\PIC.PNG”);
// InputStreamReader reader = new InputStreamReader(new FileInputStream(“D:\new\dbtools\src\res\TEXT.txt”),”GB18030″);
InputStreamReader reader = new InputStreamReader(new FileInputStream(“D:\new\dbtools\src\res\TEXT.txt”));
ps.setCharacterStream(3, reader, (int) file.length());
ps.executeUpdate();
reader.close();
} catch (IOException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBToolkit.closeConnection(conn);
}
}
public static void queryClob() {
Connection conn = DBToolkit.getConnection();
PreparedStatement ps = null;
Statement stmt = null;
ResultSet rs = null;
try {
String sql = “select remark from user where id = 1”;
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
if (rs.next()) {
Reader reader = rs.getCharacterStream(1);
File file = new File(“D:\new\dbtools\src\res\TEXT_COPY.txt”);
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file));
// OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file),”ISO-8859-1″);
// OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file),”GB18030″);
char[] buff = new char[1024];
for (int i = 0; (i = reader.read(buff)) > 0;) {
writer.write(buff, 0, i);
}
writer.flush();
writer.close();
reader.close();
}
rs.close();
stmt.close();
} catch (IOException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBToolkit.closeConnection(conn);
}
}
}