Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103643951
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-24 09:51:39

作者: 宗一 出处:  

读取配置文件和连接数据库的类(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其代码如下:

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();
}
}
}

阅读(442) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~