很早之前就听闻过IBM DB2的威名一直没有机会得以实践,今天就来一瞥DB2的风采。增删改查(CRUD)操作使用JDBC是最简单同时也是最原始的数据库连接测试方式。
什么是DB2
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本。
DB2的特性
DB2除了可以提供主流的OS/390和VM操作系统,以及中等规模的AS/400系统之外,IBM还提供了跨平台(包括基于UNIX的LINUX,HP-UX,SunSolaris,以及SCOUnixWare;还有用于个人电脑的OS/2操作系统,以及微软的Windows 2000和其早期的系统)的DB2产品。DB2数据库可以通过使用微软的开放数据库连接(ODBC)接口,Java数据库连接(JDBC)接口,或者CORBA接口代理被任何的应用程序访问。
DB2的应用场景
DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下。 DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。 DB2以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。 DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。
DB2 JDBC CRUD 操作
//:Db2ConnTest
/**
*功能:实现连接DB2数据库,并实现基本获取数据功能
*jiangbin
*/
import java.sql.*;
import java.util.*;
@SuppressWarnings("unchecked")
public class Db2ConnTest{
Connection conn;
Statement stat;
ResultSet rs;
ResultSetMetaData rsmd;
PreparedStatement pstat; //预编译
List ll = new ArrayList();
/**
*建立连接
*/
public void connDb2(){
try{
//第一步:加载驱动
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
//第二步:得到连接
conn = DriverManager.getConnection("jdbc:db2:mydb","db2admin","123");
//第三步:建立statement,同一时间每个 Statement 对象在只能打开一个 ResultSet 对象。
stat = conn.createStatement();
}
catch(ClassNotFoundException ee){
System.out.println("ClassNotFoundException:"+ee.getMessage());
}
catch(SQLException e){
System.out.println(e);
}
}
/**
*断开连接
*/
public void closeDb2(){
try{
if(rs!=null) rs.close();
if(stat!=null) stat.close();
if(conn!=null) conn.close();
}
catch(SQLException e){
System.out.println(e);
}
}
/**
*查询数据
*/
public void searchData(){
try{
//得到结果集
rs = stat.executeQuery("select * from db.tblStudent");
//用于获取关于 ResultSet 对象中列的类型和属性信息的对象
rsmd = rs.getMetaData();
while(rs.next()){
Map rowData = new HashMap();
for(int i=1;i<=rsmd.getColumnCount();i++)
rowData.put(rsmd.getColumnName(i),rs.getString(i));
ll.add(rowData);
}
}
catch(SQLException e){
System.out.println(e);
}
}
/**
*打印数据
*/
public void printData(){
for(int i=0;i<ll.size();i++ ){
System.out.println(ll.get(i));
}
}
/**
*插入数据
*/
public void insert(){
try{
//插入语句
String str = "INSERT INTO db.tblStudent(strName,intAge,strAddress,strSex,grandId)"
+"VALUES(?,?,?,?,?)";
pstat = conn.prepareStatement(str);
pstat.setString(1,"王文远");
pstat.setInt(2,20);
pstat.setString(3,"北京");
pstat.setString(4,"T");
pstat.setInt(5,4);
int record = pstat.executeUpdate();
System.out.println("插入"+record+"数据");
}
catch(SQLException e){
System.out.println(e);
}
}
/**
*删除数据
*/
public void delete(){
try{
//删除语句
String str = "DELETE FROM db.tblStudent where strName='王五'";
stat.executeUpdate(str);
}
catch(SQLException e){
System.out.println(e);
}
System.out.println("删除数据成功");
}
/**
*修改数据
*/
public void update(){
try{
//修改语句
String str = "UPDATE db.tblstudent SET strAddress='北京',intAge=intAge+5 where intId=1";
stat.executeUpdate(str);
}
catch(SQLException e){
System.out.println(e);
}
System.out.println("修改数据成功");
}
public static void main(String[] args){
Db2ConnTest dc = new Db2ConnTest();
dc.connDb2();
dc.insert();
//dc.searchData();
//dc.delete();
//dc.update();
dc.searchData();
dc.printData();
dc.closeDb2();
}
}
参考资料
2. DB2-百度百科
DB2下载地址:ftp://public.dhe.ibm.com/software/hk/cobra/(一般下载ESE-win7旗舰版也支持)
DB2_ESE_9.7_trial_VA_32bit.exe
| 2110054 KB | 2009/6/30 | 上午12:00:00 | |
| 2110054 KB | 2009/7/3 | 上午12:00:00 | |
| 144347 KB | 2009/6/30 | 上午12:00:00 | |
| 365342 KB | 2009/6/30 | 上午12:00:00 | |
| 409249 KB | 2009/6/30 | 上午12:00:00 | |
| 451445 KB | 2009/6/30 | 上午12:00:00 | |
| 398956 KB | 2009/6/30 | 上午12:00:00 | |
| 404869 KB | 2009/6/30 | 上午12:00:00 | |
| 460759 KB | 2009/6/30 | 上午12:00:00 | |
| 85180 KB | 2009/6/30 | 上午12:00:00 | |
| 1456 KB | 2009/6/30 | 上午12:00:00 | |
| 319613 KB | 2009/6/30 | 上午12:00:00 | |
| 275373 KB | 2009/6/30 | 上午12:00:00 | |
| 325758 KB | 2009/6/30 | 上午12:00:00 | |
| 187829 KB | 2009/6/30 | 上午12:00:00 | |
| 29663 KB | 2009/6/30 | 上午12:00:00 | |
| 897988 KB | 2009/6/30 | 上午12:00:00 | |
| 873956 KB | 2009/6/30 | 上午12:00:00 | |
| 460874 KB | 2009/6/30 | 上午12:00:00 | |
| 657271 KB | 2009/6/30 | 上午12:00:00 | |
| 642490 KB | 2009/6/30 | 上午12:00:00 | |
| 776774 KB | 2009/6/30 | 上午12:00:00 | |
| 559758 KB | 2009/6/30 | 上午12:00:00 | |
| 617464 KB | 2009/6/30 | 上午12:00:00 | |
| 734868 KB | 2009/6/30 | 上午12:00:00 | |
| 602428 KB | 2009/6/30 | 上午12:00:00 |