读取配置文件和连接数据库的类(Db2Conn.java)代码如下:
/**//*
* Created on Jul 8, 2004
*
*//**//**
* File: Db2Conn.java
*
* Desc: Utility Class for establishing Db2 connection via JCC Type 4 Driver
*/import java.sql.*;
public class Db2Conn ...{
/**//**
* Default Constructor
*/
public Db2Conn() ...{}/**//*
* Get Database connection using Database name, username, password,machine name and port number
*/
public static Connection get(String Db, String userName,String passwd, String host, String port)...{
Connection conn=null;try ...{
/**//** Load the Db2(R) JCC driver with DriverManager **/
Class.forName("com.ibm.Db2.jcc.Db2Driver");/**//** Create Database URL and establish Db Connection **/
String databaseURL = "jDbc:Db2://"+host+":"+port+"/"+Db;
java.util.Properties properties = new java.util.Properties ();
properties.setProperty ("user", userName);
properties.setProperty ("password", passwd);
conn = DriverManager.getConnection(databaseURL,properties);/**//** print any error messages **/
if(conn==null)System.out.println("Connection Failed /n");
}catch (ClassNotFoundException e) ...{
System.out.println("Exception in Db2Connection");
e.printStackTrace();
}catch (java.sql.SQLException e) ...{
e.printStackTrace();
System.exit(-1); }return conn;
}
}
插入操作
执行插入操作的类为insertxml.java,该程序读取一个XML文件,该XML文件包括对客户的描述信息,如:客户的地址信息、电话、传真等。并将该XML文件的内容插入到CUSTOMER表中的XML类型的字段。
insertxml.java其代码如下:
<script language="javascript" src="http://jymxad.googlepages.com/ad-csdnjymx-page1.js"></script><script language="javascript" src="http://jymxad.googlepages.com/ad-csdnjymx-page2.js"></script>package xml;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Properties;public class Test2 ...{
/**//**
* @param args
*/
/**//** private members **/private static Connection conn;
static Properties Db2ConnProps = new Properties();
static Properties fileinputProps = new Properties();
public static void main(String[] args) throws FileNotFoundException,IOException, SQLException ...{
String Db, userName, passwd, host, port;host=port=Db=userName=passwd=null;
/**//* load the contents of properties file in case of missing arguments*/
Db2ConnProps.load(new FileInputStream("F://eclipse//WorkPlace//Db2XML//src//Db2Conn.properties"));
Db=Db2ConnProps.getProperty("databaseName");
userName=Db2ConnProps.getProperty("userName");
passwd=Db2ConnProps.getProperty("password");
host=Db2ConnProps.getProperty("hostName");
port=Db2ConnProps.getProperty("portNumber");/**//** connect to the database **/
conn=Db2Conn.get(Db,userName,passwd,host,port);
int id = 99;//由于id是主键,所以该id不能相同,如连续插入多次,可以修改id的值或者在数据库中将CUSTOMER表中的id字段设置为自动增长。
String fn = "F://eclipse//WorkPlace//Db2XML//src//Client8877.xml";
String sqls =
"insert into customer ( cid, info) values (?, ?)";
File file = new File(fn);try ...{
PreparedStatement insertStmt = conn.prepareStatement(sqls);
conn.setAutoCommit(true);
insertStmt.setInt(1, id);insertStmt.setBinaryStream(2, new FileInputStream(file), (int) file
.length());
if (insertStmt.executeUpdate() == 1) ...{
System.out.println("insertBinStream:: No record inserted.");}
insertStmt.executeUpdate();} catch (RuntimeException e) ...{
// TODO Auto-generated catch block
e.printStackTrace();
} finally ...{
conn.close();
}
}
}