对于如下表类型字段:
Data type Column
Column name schema Data type name Length Scale Nulls
------------------------------- --------- ------------------- ---------- ----- ------
PART_NUM SYSIBM CHARACTER 15 0 No
CNTRY_CODE SYSIBM CHARACTER 3 0 No
ISO_CURRNCY_CODE SYSIBM CHARACTER 3 0 No
SAP_DISTRIBTN_CHNL_CODE SYSIBM CHARACTER 2 0 No
PRICE_START_DATE SYSIBM DATE 4 0 No
PRICE_END_DATE SYSIBM DATE 4 0 No
SRP_PRICE SYSIBM DECIMAL 19 4 Yes
SVP_LEVEL_A SYSIBM DECIMAL 19 4 Yes
SVP_LEVEL_B SYSIBM DECIMAL 19 4 Yes
SVP_LEVEL_C SYSIBM DECIMAL 19 4 Yes
SVP_LEVEL_D SYSIBM DECIMAL 19 4 Yes
SVP_LEVEL_E SYSIBM DECIMAL 19 4 Yes
SVP_LEVEL_F SYSIBM DECIMAL 19 4 Yes
SVP_LEVEL_G SYSIBM DECIMAL 19 4 Yes
SVP_LEVEL_H SYSIBM DECIMAL 19 4 Yes
SVP_LEVEL_I SYSIBM DECIMAL 19 4 Yes
SVP_LEVEL_J SYSIBM DECIMAL 19 4 Yes
SVP_LEVEL_ED SYSIBM DECIMAL 19 4 Yes
SVP_LEVEL_GV SYSIBM DECIMAL 19 4 Yes
SAP_EXTRCT_DATE SYSIBM TIMESTAMP 10 6 No
ADD_BY_USER_NAME SYSIBM CHARACTER 12 0 No
SAP_ODS_ADD_DATE SYSIBM TIMESTAMP 10 6 No
MOD_BY_USER_NAME SYSIBM CHARACTER 12 0 No
SAP_ODS_MOD_DATE SYSIBM TIMESTAMP 10 6 No
24 record(s) selected.
select a.tabschema,a.tabname,decimal(b.pagesize*a.npages/1024/1024,20,5) tablesize from syscat.tables a left join syscat.tablespaces b on a.tbspaceid=b.tbspaceid where a.TABSCHEMA='WWPP2' and a.TABNAME='CNTRY_PRICE' and a.type='T' order by a.tbspace
C:\Program Files (x86)\IBM\SQLLIB\BIN>db2 select a.tabschema,a.tabname,decimal(b.pagesize*a.npages/1024/1024,20,5) tablesize from syscat.tables a left join syscat.tablespaces b on a.tbspaceid=b.tbspaceid where a.TABSCHEMA='WWPP2' and a.TABNAME='CNTRY_PRICE' and a.type='T' order by a.tbspace
TABSCHEMA TABNAME
使用JadePool很简单,分三步实现。
第一步:建立数据库连接,JadePool支持两种数据库连接方式
1、通过db.xml配置数据库连接信息
2、通过Java代码建立数据库连接
两种方式,可任选一种
第二步:在以下例举的四个类中选择一款合适的Jdml工具,大多数情况下,推荐使用Jade
1、ProcessVO //用于事务型数据库,需要用户打开并关闭事务、处理异常
2、Jade //用于事务型数据库,已经处理了异常,默认打开了事务,调用j.commit();执行并关闭事务。
3、Access //用于非事务型数据库,需要用户处理异常
4、Base //用于非事务型数据库,已经处理异常
第三步:创建Jade对象,调用Jade方法
举例:
第一步:建立数据库连接
方式一、配置db.xml数据库连接信息
db.xml文件应当保存在应用程序的classes/META-INF/目录下,与Hibernate、JPA的数据库连接文件的位置相同。注意:classes/META-INF对应软件工程中的java源文件的根目录下的/META-INF目录,在创建软件工程时,将db.xml文件放入此目录中。
1、完整的db.xml文件样例:
<?xml version="1.0" encoding="GBK"?> <!-- Document : db.xml Created on : 2009-06-25 00:21:48 Author : hkm Description : Purpose of the document as following. --> <!DOCTYPE db [ <!ELEMENT db (resource|password|user|driver|url)*> <!ELEMENT url (#PCDATA)> <!ELEMENT driver (#PCDATA)> <!ELEMENT user (#PCDATA)> <!ELEMENT password (#PCDATA)> <!ELEMENT resource (#PCDATA)> ]> <db> <url>jdbc:sqlserver://127.0.0.1\\dbo:1436;databaseName=javafaces2012</url> <driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver> <user>root</user> <password>123</password> <resource>java:comp/env/jdbc/hkm_javafaces2012</resource> </db>
如果配置了数据源,简洁的写法是:
<?xml version="1.0" encoding="GBK"?> <db> <url></url> <driver></driver> <user></user> <password></password> <resource>java:comp/env/jdbc/hkm_javafaces2012</resource> </db>
如果没有配置数据源,简洁的写法是:
<?xml version="1.0" encoding="GBK"?> <db> <url>jdbc:sqlserver://127.0.0.1\\dbo:1436;databaseName=javafaces2012</url> <driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver> <user>root</user> <password>123</password> <resource></resource> </db>
如果配置了db.xml文件,可以这样创建Jade对象:
Jade j=new Jade();
j.方法();//执行各种CRUD操作的方法
j.commit();
方式二、通过Java代码建立数据库连接,例如:
public static synchronized Connection getCon() { Connection con = null; String url = "jdbc:sqlserver://127.0.0.1\\dbo:1436;databaseName=javafaces2012"; String userName = "root"; String password = "123"; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); con = DriverManager.getConnection(url, userName, password); } catch (SQLException ex1) { ex1.printStackTrace(); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } return con; }
此时,创建Jade对象的方法是这样
Jade j = new Jade(getCon());
j.方法();//执行各种CRUD操作的方法
j.commit();
第二步:创建Jdml对象
如果使用db.xml配置的连接,调用默认的构造函数创建对象,如:
ProcessVO pvo=new ProcessVO();
Jade j=new Jade();
Access a=new Access();
Base b=new Base();
如果使用Jave代码配置的连接,调用带参数的构造函数创建对象,如:
ProcessVO pvo=new ProcessVO(getCon());
Jade j=new Jade(getCon());
Access a=new Access(getCon());
Base b=new Base(getCon());
第三步:调用dml方法:
Jade j=new Jade(); boolean b = j.executeSqlFile("d:\\insertRecord.sql"); //执行sql文件 String s0 = j.queryDbInfo();//查询数据库的结构信息 String s1 = j.queryTableInfo(tableName);//查询数据库表的结构信息 int num0=j.insert(tableName, list);//插入一组记录 int num1=j.update(tableName, list);//更新一组记录 Object keyValue=j.saveOne(tableName, m);//插入或更新一条记录,返回主键 int num2=j.save(tableName, m);//插入或更新一条记录,返回保存的记录数 Map m=j.queryOne(querySql);//可以是任意复杂的查询语句 List<Map> list=j.query(querySql);//可以是任意复杂的查询语句 int num3=j.delete(deleteSql);//sql删除语句 j.commit();//事务提交并关闭连接 j.cancel();//事务回滚,并关闭连接