Jdbc Jar包:https://www.lanzous.com/i5cbved
JDBC操作二进制
将 emp.xml文件放到数据库中:
<?xml version="1.0" encoding="UTF-8"?>
<Employee>
<id>100</id>
<firt>Zara</firt>
<last>Ali</last>
<salary>1000</salary>
<Dob>8-5-2019</Dob>
</Employee>
创建java类:
package com.jdbc.jdbc二进制操作;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JdbcDemo1 {
public static void main(String[] args) {
Connection conn=null;
PreparedStatement pstat=null;//创建数据库
PreparedStatement pstat2=null; //添加数据
PreparedStatement pstat3=null;//读取数据
ResultSet rs=null;
try {
//1 驱动加载
Class.forName("com.mysql.jdbc.Driver");
//2 获取连接
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/javastudy?useSSL=false","root","");
String sql1="Drop table if exists xmltable;";
String sql2="create table xmltable (id int primary key,data text);";
//3 创建命令对象
pstat=conn.prepareStatement(sql1);
//删除表
boolean b=pstat.execute();
//创建表
boolean b2=pstat.execute(sql2);
// System.out.println("创建表成功");
//4 添加数据
pstat2=conn.prepareStatement("insert into xmltable(id,data) values(?,?)");
pstat2.setInt(1, 10);
File file=new File("src/com/jdbc/jdbc二进制操作/emp.xml");
FileInputStream fis=new FileInputStream(file);
pstat2.setAsciiStream(2, fis);
// pstat2.setCharacterStream(2, new InputStreamReader(fis));//字符流
// pstat2.setBinaryStream(2, fis);//图片的存放
int r=pstat2.executeUpdate();
if(r>0){
System.out.println("添加成功");
}
//5 读取数据
pstat3=conn.prepareStatement("Select * from xmltable where id=10;");
rs=pstat3.executeQuery();
if(rs.next()){
int id=rs.getInt("id");
System.out.println(id);
InputStream is=rs.getAsciiStream("data");
ByteArrayOutputStream baos=new ByteArrayOutputStream();
byte[] buf=new byte[1024];
int len=0;
while((len=is.read(buf))!=-1){
baos.write(buf, 0, len);
}
System.out.println(baos.toString());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(pstat!=null){
try {
pstat.close();//关闭
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(pstat2!=null){
try {
pstat2.close();//关闭
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(pstat3!=null){
try {
pstat3.close();//关闭
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}