[学习笔记]二进制数据的处理(1) 普通二进制数据处理 A -------保存到数据库

来源:互联网 发布:js集合添加元素 编辑:程序博客网 时间:2024/05/18 12:30

              在数据库编程中经常需要将一些二进制数据保存到数据库中,这些二进制数据包括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");
   }

    
}

原创粉丝点击