在数据库编程中经常需要将一些二进制数据保存到数据库中,这些二进制数据包括Word文件,PDF文件,*java 等
在这里先来学习保存文本格式的.java 等文件的保存
//DBUtil.java 连接数据库的类
package cn.java;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;


/** *//**
*
* @author Administrator
*/

public class DBUtil ...{

//最常与数据库操作;
//我们写一个方法几个方法;
//封装;
//注册

static ...{

try ...{
Class.forName("com.mysql.jdbc.Driver");

} catch (ClassNotFoundException e) ...{
e.printStackTrace();
}
}


public static Connection getConnection() ...{
Connection conn = null;

try ...{

String url = "jdbc:mysql://localhost/test";
String dbName = "root";
String dbPwd = "root";
conn = DriverManager.getConnection(url, dbName, dbPwd);


} catch (SQLException ex) ...{
Logger.getLogger(DBUtil.class.getName()).log(Level.SEVERE, null, ex);
}
return conn;
}


public static Statement getStatement(Connection conn) ...{
Statement stmt = null;

try ...{

stmt = conn.createStatement();


} catch (SQLException ex) ...{
Logger.getLogger(DBUtil.class.getName()).log(Level.SEVERE, null, ex);
}
return stmt;
}


public static ResultSet executeQuery(Statement stmt, String sql) ...{
ResultSet rs = null;

try ...{

rs = stmt.executeQuery(sql);

} catch (SQLException ex) ...{
Logger.getLogger(DBUtil.class.getName()).log(Level.SEVERE, null, ex);
}
return rs;
}


public static void close(ResultSet rs, Statement stmt, Connection conn) ...{

try ...{

if (rs != null) ...{
rs.close();
rs = null;
}

if (stmt != null) ...{
stmt.close();
stmt = null;
}

if (conn != null) ...{
conn.close();
conn = null;
}


} catch (SQLException ex) ...{
Logger.getLogger(DBUtil.class.getName()).log(Level.SEVERE, null, ex);
}

}
}

//将二进制写入数据库 mysql
package cn.java;

import java.io.FileInputStream;

import java.io.IOException;
import java.sql.Connection;

import java.sql.PreparedStatement;
import java.sql.SQLException;

import java.util.logging.Level;
import java.util.logging.Logger;


/** *//**
*
* @author he
*/

public class SaveER ...{


public void save(String file)...{

...{

FileInputStream fis = null;
Connection conn = null;
PreparedStatement pstmt = null;

try ...{
String sql = "insert into bindata values(7,?)";
conn = DBUtil.getConnection();
pstmt = conn.prepareStatement(sql);
fis = new FileInputStream(file);
pstmt.setBinaryStream(1,fis,fis.available());
pstmt.execute();
System.out.println("保存成功!");

} catch (IOException ex) ...{
Logger.getLogger(SaveER.class.getName()).log(Level.SEVERE, null, ex);

} catch (SQLException ex) ...{
Logger.getLogger(SaveER.class.getName()).log(Level.SEVERE, null, ex);
}


finally ...{

try ...{
fis.close();
DBUtil.close(null, pstmt, conn);

} catch (IOException ex) ...{
Logger.getLogger(SaveER.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}

public static void main(String args[])...{
SaveER er=new SaveER();
er.save("D:/Test.java");
}
}
