科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道我与Db2 9新特性的零距离体验(1)

我与Db2 9新特性的零距离体验(1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在这篇文章中,我们将会向大家展示如何操作DB2 9中的新的XML数据类型。我们将通过一个示例来展示如何操作DB2 9中的XML数据类型。

来源:IT专家网 2008年6月4日

关键字: IBM 数据库 DB2

  • 评论
  • 分享微博
  • 分享邮件

读取配置文件和连接数据库的类(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();
}
}
}


    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章