Text 长文本类型
Blob 二进制类型
LONGTEXT:text文件文本
LONGBLOB:二进制文件
首先创建一个表:
mysql> create table teacher(
-> id int primary key auto_increment,
-> text LONGTEXT,
-> img LONGBLOB
-> );
保存和读取一张图片:
注意:
可以返回指定地址的文件流
InputStream inputStream = xzxx.class.getResourceAsStream
("1.jpg");
返回指定文件的绝对路径。
String url = xzxx.class.getResource("text.txt").getPath();
public static void main(String[] args) {
//insert();
read();
}
public static void insert() {
Connection connection = null;
PreparedStatement preparedStatement = null;
String sql = "INSERT INTO teacher(img) value(?)";
try {
connection = jdbcUtil.getConnection();
preparedStatement = connection.prepareStatement(sql);
//创建流通道
InputStream inputStream = xzxx.class.getResourceAsStream("1.jpg");
preparedStatement.setBinaryStream(1, inputStream);
int count = preparedStatement.executeUpdate();
inputStream.close();
System.out.println(count);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
jdbcUtil.close(connection, preparedStatement);
}
}
public static void read() {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
String sql = "SELECT * FROM teacher";
try {
connection = jdbcUtil.getConnection();
preparedStatement = connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
if(resultSet.next()) {
//获取图片流
InputStream inputStream = resultSet.getBinaryStream("img");
//创建输出流
FileOutputStream fileOutputStream = new FileOutputStream(new File("D:\\jjc.jpg"));
byte[] buffer=new byte[1024];
int count=-1;
while((count = inputStream.read(buffer))!=-1) {
fileOutputStream.write(buffer);
}
fileOutputStream.close();
inputStream.close();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
jdbcUtil.close(connection, preparedStatement, resultSet);
}
}
插入text文本文件:
public static void insert() {
Connection connection = null;
PreparedStatement preparedStatement = null;
String sql = "INSERT INTO teacher(text) value(?)";
try {
connection = jdbcUtil.getConnection();
preparedStatement = connection.prepareStatement(sql);
//URI标记了一个网络资源,仅此而已; URL标记了一个WWW互联网资源(用地址标记),
//并给出了他的访问地址。
//getResource返回的是url getPath返回的是绝对路径:
// /C:/Users/蒋家聪/eclipse-workspace/zzz/bin/zzz/text.txt
String url = xzxx.class.getResource("text.txt").getPath();
FileReader fileReader = new FileReader(new File(url));
preparedStatement.setCharacterStream(1, fileReader);
preparedStatement.executeUpdate();
fileReader.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
jdbcUtil.close(connection, preparedStatement);
}
}
读取文本文件:
public static void read() {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
String sql = "SELECT * FROM teacher";
try {
connection = jdbcUtil.getConnection();
preparedStatement = connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
while(resultSet.next()) {
System.out.println(resultSet.getString("text"));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
jdbcUtil.close(connection, preparedStatement, resultSet);
}
}