JAVA访问firebird数据库之Jaybird-2.1.6JDK_1.5之综合使用实例
2009-11-24 17:20
399 查看
一、FB数据库操作类如下:
import java.io.ByteArrayInputStream;
import java.sql.*;
import org.firebirdsql.jdbc.*;
public class DataBaseOperation
{
private java.sql.Connection Connection;
public static int TEST_ROW_COUNT = 100;
public boolean FBConnection(String DBName,
String DBType,
String DBUserName,
String DBPassword)
{
org.firebirdsql.pool.FBWrappingDataSource dataSource = new org.firebirdsql.pool.FBWrappingDataSource();
dataSource.setDatabase (DBName);
dataSource.setDescription ("An example database of employees");
dataSource.setType(DBType);
dataSource.setEncoding("ISO8859_1");
try
{
dataSource.setLoginTimeout(10);
Connection = dataSource.getConnection (DBUserName, DBPassword);
}
catch (java.sql.SQLException e)
{
e.printStackTrace();
System.out.println ("sql exception: " + e.getMessage ());
}
if(Connection!=null)
return true;
else
return false;
}
public DataBaseOperation (String DBName,String DBType,String DBUserName,String DBPassword)
{
Connection=null;
this.FBConnection(DBName,DBType, DBUserName,DBPassword);
}
public void CreateFBTable(String CreateSqlText)
{
java.sql.Statement stmt=null;
try
{
stmt = Connection.createStatement();
stmt.executeUpdate(CreateSqlText);
stmt.close();
}
catch (Exception e) {}
}
public ResultSet QueryFBTable(String SelectText)
{
Statement stmt=null;//java.sql.Statement
ResultSet rs=null;//java.sql.ResultSet
try
{
stmt = Connection.createStatement();
rs=stmt.executeQuery(SelectText);
stmt.close();
}
catch (Exception e) {}
if(rs!=null)
{
return rs;
}
else
{
return null;
}
}
public String GetStringFieldFromFB(ResultSet rs,int fieldColumsID)
{
String sringField="";
try
{
FBBlob.FBBlobInputStream sringOut;
sringOut= (FBBlob.FBBlobInputStream)rs.getBinaryStream(fieldColumsID);
int blobSize = (int)sringOut.length();
byte[] fullBlob = new byte[blobSize];
sringOut.readFully(fullBlob);
sringField=new String(fullBlob);
}
catch (Exception e) {}
return sringField;
}
public void ConvertStringToFBString(String InputString,PreparedStatement ps,int fieldColumsID)
{
try
{
ByteArrayInputStream sringIn = new ByteArrayInputStream(InputString.getBytes());
ps.setBinaryStream(fieldColumsID, sringIn,InputString.getBytes().length);
}
catch (Exception e) {}
}
public void ConnectionTest()
{
String str="SELECT * FROM employee";
try
{
Statement stmt = Connection.createStatement();
ResultSet rs=stmt.executeQuery(str);
while(rs.next())
System.out.println("a1 = " + rs.getString(1));
stmt.close();
}
catch(Exception e){}
}
public void InsertTest(String InsertTxt,int fieldNum,String [] args)
{
try
{
Connection.setAutoCommit(false);
PreparedStatement ps = Connection.prepareStatement(InsertTxt);
ps.setInt(1, Integer.parseInt(args[0]));
System.out.println(args[0]);
for(int i=1;i<fieldNum;i++)
{
ConvertStringToFBString(args[i],ps,i+1);
System.out.println(args[i]);
}
ps.executeUpdate();
ps.close();
Connection.commit();
}
catch(Exception e){}
}
public void SelectStringFieldTest(String SelectTxt,int[] StringfieldIDs)
{
try
{
Statement stmt = Connection.createStatement();
ResultSet rs = stmt.executeQuery(SelectTxt);
while(rs.next())
{
System.out.println("id="+rs.getString(1));
for(int i=0;i<StringfieldIDs.length;i++)
{
String field=GetStringFieldFromFB(rs,i+2);
System.out.println("field"+(i+2)+":data="+field);
}
System.out.println();
}
stmt.close();
}
catch(Exception e){}
}
}
二、实例访问类如下:
import org.firebirdsql.jdbc.*;
import org.firebirdsql.jdbc.field.*;
public class JaybirdTest {
public static final String CREATE_TABLE =
"CREATE TABLE test_blob(" +
" id INTEGER, " +
" data BLOB SUB_TYPE 1 " +
")";
public static final String INSERT_TABLE="INSERT INTO test_blob(id, data) VALUES (?, ?)";
public static final String SELECT_TXT="SELECT id, data FROM test_blob";
public static final String DBName="../data/ROSEOUTLOOKINC.FDB";
public static final String DBType="LOCAL";
public static final String DBUserName="sysdba";
public static final String DBPassword="masterkey";
public static void main(String[] args)
{
try
{
DataBaseOperation fb=new DataBaseOperation(DBName,DBType, DBUserName,DBPassword);
fb.ConnectionTest();
String [] field={"200","中国IT实验室+CSDN网络"};
int []StringfieldIDs={2};
fb.InsertTest(INSERT_TABLE,2,field);
fb.SelectStringFieldTest(SELECT_TXT, StringfieldIDs);
//fb.CreateFBTable(CREATE_TABLE);
}
catch(Exception e)
{
System.out.println("Exception");
}
}
}
三、关于我即将发布的JAVA访问firebird数据库之Jaybird-2.1.6JDK_1.5之综合使用实例之使用方法如下:
1、解压该文件夹到D盘
2、运行D:/firebird_jaybird/FFIREBIRDfirebird数据库相关链接库文件/ 文件夹下的
Firebird-2.1.3.18185_0_Win32.exe,安装FB数据库
3、将D:/firebird_jaybird/FFIREBIRDfirebird数据库相关链接库文件/ 文件夹下的
全部DLL文件拷贝到 C:/WINDOWS/system32 目录下
4、在MyEclipse中加载加载D:/firebird_jaybird 文件夹下的jaybird工程,或者直接加载
D:/firebird_jaybird/jaybird/src 文件夹下的两个类
(但是需要将D:/firebird_jaybird 文件夹下的 data和JayBirdJar 两个文件夹拷贝到你的工程中)
5、将D:/firebird_jaybird/JayBirdJar 文件夹下的jar文件加载到当前工程中
6、运行JaybirdTest.java文件
import java.io.ByteArrayInputStream;
import java.sql.*;
import org.firebirdsql.jdbc.*;
public class DataBaseOperation
{
private java.sql.Connection Connection;
public static int TEST_ROW_COUNT = 100;
public boolean FBConnection(String DBName,
String DBType,
String DBUserName,
String DBPassword)
{
org.firebirdsql.pool.FBWrappingDataSource dataSource = new org.firebirdsql.pool.FBWrappingDataSource();
dataSource.setDatabase (DBName);
dataSource.setDescription ("An example database of employees");
dataSource.setType(DBType);
dataSource.setEncoding("ISO8859_1");
try
{
dataSource.setLoginTimeout(10);
Connection = dataSource.getConnection (DBUserName, DBPassword);
}
catch (java.sql.SQLException e)
{
e.printStackTrace();
System.out.println ("sql exception: " + e.getMessage ());
}
if(Connection!=null)
return true;
else
return false;
}
public DataBaseOperation (String DBName,String DBType,String DBUserName,String DBPassword)
{
Connection=null;
this.FBConnection(DBName,DBType, DBUserName,DBPassword);
}
public void CreateFBTable(String CreateSqlText)
{
java.sql.Statement stmt=null;
try
{
stmt = Connection.createStatement();
stmt.executeUpdate(CreateSqlText);
stmt.close();
}
catch (Exception e) {}
}
public ResultSet QueryFBTable(String SelectText)
{
Statement stmt=null;//java.sql.Statement
ResultSet rs=null;//java.sql.ResultSet
try
{
stmt = Connection.createStatement();
rs=stmt.executeQuery(SelectText);
stmt.close();
}
catch (Exception e) {}
if(rs!=null)
{
return rs;
}
else
{
return null;
}
}
public String GetStringFieldFromFB(ResultSet rs,int fieldColumsID)
{
String sringField="";
try
{
FBBlob.FBBlobInputStream sringOut;
sringOut= (FBBlob.FBBlobInputStream)rs.getBinaryStream(fieldColumsID);
int blobSize = (int)sringOut.length();
byte[] fullBlob = new byte[blobSize];
sringOut.readFully(fullBlob);
sringField=new String(fullBlob);
}
catch (Exception e) {}
return sringField;
}
public void ConvertStringToFBString(String InputString,PreparedStatement ps,int fieldColumsID)
{
try
{
ByteArrayInputStream sringIn = new ByteArrayInputStream(InputString.getBytes());
ps.setBinaryStream(fieldColumsID, sringIn,InputString.getBytes().length);
}
catch (Exception e) {}
}
public void ConnectionTest()
{
String str="SELECT * FROM employee";
try
{
Statement stmt = Connection.createStatement();
ResultSet rs=stmt.executeQuery(str);
while(rs.next())
System.out.println("a1 = " + rs.getString(1));
stmt.close();
}
catch(Exception e){}
}
public void InsertTest(String InsertTxt,int fieldNum,String [] args)
{
try
{
Connection.setAutoCommit(false);
PreparedStatement ps = Connection.prepareStatement(InsertTxt);
ps.setInt(1, Integer.parseInt(args[0]));
System.out.println(args[0]);
for(int i=1;i<fieldNum;i++)
{
ConvertStringToFBString(args[i],ps,i+1);
System.out.println(args[i]);
}
ps.executeUpdate();
ps.close();
Connection.commit();
}
catch(Exception e){}
}
public void SelectStringFieldTest(String SelectTxt,int[] StringfieldIDs)
{
try
{
Statement stmt = Connection.createStatement();
ResultSet rs = stmt.executeQuery(SelectTxt);
while(rs.next())
{
System.out.println("id="+rs.getString(1));
for(int i=0;i<StringfieldIDs.length;i++)
{
String field=GetStringFieldFromFB(rs,i+2);
System.out.println("field"+(i+2)+":data="+field);
}
System.out.println();
}
stmt.close();
}
catch(Exception e){}
}
}
二、实例访问类如下:
import org.firebirdsql.jdbc.*;
import org.firebirdsql.jdbc.field.*;
public class JaybirdTest {
public static final String CREATE_TABLE =
"CREATE TABLE test_blob(" +
" id INTEGER, " +
" data BLOB SUB_TYPE 1 " +
")";
public static final String INSERT_TABLE="INSERT INTO test_blob(id, data) VALUES (?, ?)";
public static final String SELECT_TXT="SELECT id, data FROM test_blob";
public static final String DBName="../data/ROSEOUTLOOKINC.FDB";
public static final String DBType="LOCAL";
public static final String DBUserName="sysdba";
public static final String DBPassword="masterkey";
public static void main(String[] args)
{
try
{
DataBaseOperation fb=new DataBaseOperation(DBName,DBType, DBUserName,DBPassword);
fb.ConnectionTest();
String [] field={"200","中国IT实验室+CSDN网络"};
int []StringfieldIDs={2};
fb.InsertTest(INSERT_TABLE,2,field);
fb.SelectStringFieldTest(SELECT_TXT, StringfieldIDs);
//fb.CreateFBTable(CREATE_TABLE);
}
catch(Exception e)
{
System.out.println("Exception");
}
}
}
三、关于我即将发布的JAVA访问firebird数据库之Jaybird-2.1.6JDK_1.5之综合使用实例之使用方法如下:
1、解压该文件夹到D盘
2、运行D:/firebird_jaybird/FFIREBIRDfirebird数据库相关链接库文件/ 文件夹下的
Firebird-2.1.3.18185_0_Win32.exe,安装FB数据库
3、将D:/firebird_jaybird/FFIREBIRDfirebird数据库相关链接库文件/ 文件夹下的
全部DLL文件拷贝到 C:/WINDOWS/system32 目录下
4、在MyEclipse中加载加载D:/firebird_jaybird 文件夹下的jaybird工程,或者直接加载
D:/firebird_jaybird/jaybird/src 文件夹下的两个类
(但是需要将D:/firebird_jaybird 文件夹下的 data和JayBirdJar 两个文件夹拷贝到你的工程中)
5、将D:/firebird_jaybird/JayBirdJar 文件夹下的jar文件加载到当前工程中
6、运行JaybirdTest.java文件
相关文章推荐
- JAVA访问firebird数据库之Jaybird-2.1.6JDK_1.5+相关DLL文件+使用方法
- 【java工具】使用jdbc访问数据库获取某个存储过程信息及下面参数信息
- java基础-使用jdbc访问数据库
- Domino允许使用Java编写4种Java应用来访问Domino数据库
- Java 使用JDBC、DBCP、C3P0访问数据库
- .NET C# 使用DataAdapter 和 DataSet访问数据库实例
- Java使用JDBC连接数据库完整的工具类实例
- 使用JDBC驱动程序访问SQL Server 2000数据库(实例)
- Java 使用JDBC、DBCP、C3P0访问数据库
- 使用JDBC驱动程序访问SQL Server 2005数据库(实例)
- 自学Java之Java编程(使用JDBC访问数据库)(018day)
- JAVA数据库访问控制框架设计与使用
- 第二篇 MongoDB的基本使用 --- java访问数据库
- 初识vb数据库凯发之实例3(使用数据绑定访问数据)
- 如果在本地搭一个服务器和mysql数据库环境,如果使用java来访问数据库
- Java连接数据库(JDBC)之三:java访问数据库MySQL实例
- android使用Dialog实现复选功能与数据库结合综合实例
- 使用Repeater控件进行数据访问的综合实例
- 使用mysql_query()方法操纵数据库以及综合实例
- java 程序加载过程---3--类中申明同时申明类的静态对象 创建类的实例 访问类的静态变量 调用类的静态方法 使用反射方法 初始化类的子类对象 直接使用java.exe 调用某个类