如何在jdbc程序中使用dll

时间:2013-04-01 05:27:40

标签: java dll jdbc

我正在开发一个简单的jdbc程序。如何在jdbc程序中使用扩展的dll功能。

这是我的代码:

import java.sql.*;

public class jdbc2
{

    // JDBC driver name and database URL
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    static final String DB_URL = "jdbc:mysql://localhost:3306/somesh";

    //  Database credentials
    static final String USER = "root";
    static final String PASS = "";

    public static void main(String[] args)
    {
        Connection conn = null;
        Statement stmt = null;
        try{
            //STEP 2: Register JDBC driver
            Class.forName("com.mysql.jdbc.Driver");

            //STEP 3: Open a connection
            // System.out.println("Connecting to database...");
            conn = DriverManager.getConnection(DB_URL,USER,PASS);
            System.out.println("Connecting to database...");
            //STEP 4: Execute a query
            System.out.println("Creating statement...");
            stmt = conn.createStatement();
            String sql;
            sql = " select id,image from images1 ";
            ResultSet rs  = stmt.executeQuery(sql);

            //STEP 5: Extract data from result set
            while(rs.next())
            {
                //Retrieve by column name
                System.out.println("\n");
                int no = rs.getInt("id");
                System.out.print("\t USER_I_ID: " +no);
                /*String std_name = rs.getString("name");
                System.out.print(" \t First_name : " + std_name);
                String std_course = rs.getString("course");
                System.out.print(" \t course : " + std_course);*/
                Blob std_image = rs.getBlob("image");
                System.out.print(" \t std_images : SS" + std_image);
            }
        }

        catch(SQLException se)
        {
            //Handle errors for JDBC
            se.printStackTrace();
        }catch(Exception e)
        {
            //Handle errors for Class.forName
            e.printStackTrace();
        }finally
        {
            //finally block used to close resources
            try{
                if(stmt!=null)
                    stmt.close();
            }catch(SQLException se2){
            }// nothing we can do
            try{
                if(conn!=null)
                    conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }//end catch try

        }//end finally

    }//end main
}//end FirstExample

现在我用到dll函数是:

int AddFpUser ( BOOL bSorC, BYTE FacID, int nTmlSize, BYTE *pTemplate, const char *UserName, const char *UserID, BYTE GroupID, BYTE FingerID, BYTE UserType ).

所以请使用上述程序的这个功能。该函数定义包含用于存储图像..所以请给出答案。                谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

在我看来就像一个简单的数据库插入操作。

首先: 为什么要尝试使用“c”函数进行此操作。这个函数写的是java没有提供的。 如果没有,那么在java中重写相同的函数。就像没有充分理由搞乱语言一样。

其次, 我不认为在这里创建一个jdbc连接是有用的,因为如果你想使用一个用dll编写的函数,它应该创建自己的db-connection。

对于使用dll函数,请查看JNI。

http://docs.oracle.com/javase/6/docs/technotes/guides/jni/