<?xml version="1.0"?>
<oracle_address_config>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:@192.168.0.90:1521:forecast</url>
<use-name>test</use-name>
<password>test</password>
</oracle_address_config>
这是外部配置数据库参数的XML文件。
平台提供查询,更新,删除,插入,分页5种功能。
使用例子之一:
void testpage() throws Exception {
DataManage dm = new DataManage();
dm.activity("sku");
Object[][] data = dm.getArrayData(0);
if (data.length > 0) {
for (int i = 0; i < data.length; i++) {
System.out.print("\n第" + (i + 1) + "行的数据:");
for (int j = 0; j < data[0].length; j++) {
if (data[i][j] != null) {
System.out.print(" " + data[i][j].toString());
}
}
}
}
else {
System.out.print("没有数据!");
}
dm.closeConnection(); }
注:SKU是数据库表名。
主要的动作:
1.取得DataManage实例
2.激活查询表
3.取回数据方式。
4.释放数据库资源。
<oracle_address_config>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:@192.168.0.90:1521:forecast</url>
<use-name>test</use-name>
<password>test</password>
</oracle_address_config>
这是外部配置数据库参数的XML文件。
平台提供查询,更新,删除,插入,分页5种功能。
使用例子之一:
void testpage() throws Exception {
DataManage dm = new DataManage();
dm.activity("sku");
Object[][] data = dm.getArrayData(0);
if (data.length > 0) {
for (int i = 0; i < data.length; i++) {
System.out.print("\n第" + (i + 1) + "行的数据:");
for (int j = 0; j < data[0].length; j++) {
if (data[i][j] != null) {
System.out.print(" " + data[i][j].toString());
}
}
}
}
else {
System.out.print("没有数据!");
}
dm.closeConnection(); }
注:SKU是数据库表名。
主要的动作:
1.取得DataManage实例
2.激活查询表
3.取回数据方式。
4.释放数据库资源。
解决方案 »
- 问大家一个关于业务逻辑层的问题,谢谢。
- session.isnew()为何总是返回false
- 求教c3p0的问题。
- 关于在struts2中使用urlrewrite的问题
- jsp中关于session的问题
- jsp与html
- 找工作,郁闷!!!
- 请教各位,从a.jsp到b.jsp,不通过servlet,有什么办法可以在b.jsp得到a.jsp中的文本框中的内容?
- 关于form提交值传给bean的问题
- 大家是怎么在weblogic下调试的??
- 关于scope="session"生命周期的问题
- www.jspsmart.com为什么上不了啊?,有谁可以发一份jspSmartUpload.zip给小弟,谢谢!
这只是平台的一小部分功能,插入时,提供的接口很简单,只需要给出字段名和值。
就可以进行插入。
//一般应用情况下是非常简单的
void testInsert() throws Exception {
String table = "goods";
TableDesc td = RepositoryFactory.newInstance().findTableDesc(table);
List fd = td.getFieldDescs();
genData(table, fd);
} void genData(String table, List fd) throws Exception {
DataManage dm = ConnectionFactory.retFactory().recDataManage();
dm.activity(table);
Statement stmt = null;
dm.getListData();
Properties prop = new Properties();
Properties pk = TableInfo.getPrimaryKeys(table);
Iterator it = pk.keySet().iterator();
String pkname = null;
while (it.hasNext()) {
pkname = it.next().toString();
}
dm.nextData();
int index = 1000;
while (index++ < 1001) {
for (int i = 0; i < fd.size(); i++) {
String fieldname = ( (FieldDesc) fd.get(i)).getFieldName();
if (!fieldname.equals(pkname)) {
prop.put(fieldname, dm.getParam(fieldname));
}
else {
String pkvalue = dm.getParam(fieldname);
prop.put(fieldname, new Long(new Long(pkvalue).longValue() + index));
}
} dm.addBatchInsert(table, prop);
}
dm.commit();
dm.closeConnection();
}
void testDelect() throws Exception {
DataManage dm = new DataManage(); String table = "sku";
String sql = "skuid='11' or skuid='10'";
dm.excuteDelect(table, sql);
dm.closeConnection();
}
这个操作简单,接口也简单。
//INSERT INTO SKU (skuname,skuid) VALUES ('汽水','14')
//INSERT INTO SKU (skuname,skuid) VALUES ('可乐','13')
//测试插入两条记录
void testInsert() throws Exception {
DataManage dm = new DataManage();
String table = "sku";
Properties prop = new Properties();
prop.put("skuid", "14");
prop.put("skuname", "汽水"); dm.addBatchInsert(table, prop);
prop.put("skuid", "13");
prop.put("skuname", "可乐");
dm.addBatchInsert(table, prop);
dm.commit();
dm.closeConnection();
}
//测试更新,分成批量更新与单记录更新,这里为批量更新
//UPDATE sku SET skuname='火柴' WHERE 1=1 and skuid='13'
//UPDATE goods SET goodsname='测试' WHERE 1=1 and goodsid=1 void testUpdate() throws Exception {
DataManage dm = new DataManage();
String table = "sku";
Properties prop = new Properties();
prop.put("skuname", "火柴");
String specialcondition = "skuid='13'"; dm.addBatchUpdate(table, prop, specialcondition);
table = "goods";
prop = new Properties();
prop.put("goodsname", "测试"); specialcondition = "goodsid=1";
dm.addBatchUpdate(table, prop, specialcondition);
dm.commit();
dm.closeConnection(); }
/**
* 带有条件的查询方式,这是返回LIST方式的查询,使用类似ResultSet的rs.getString(name);
*SELECT SKUID,SKUNAME,SKUDATE FROM SKU WHERE 1=1 AND skuname='可乐' AND
*skuid='11' AND skuid > 1
* @throws Exception
*/
void testListData() throws Exception {
DataManage dm = new DataManage();
dm.activity("sku");
Properties prop = new Properties();
prop.put("skuname", "可乐");
prop.put("skuid", "11");
String condition = "skuid > 1";
dm.getListData(prop, condition);
System.out.print("/***************************/\n");
while (dm.nextData()) {
System.out.print(dm.getParam("skuid") + " ");
System.out.println(dm.getParam("skuname") + " ");
} dm.closeConnection(); } /**
* 测试分页查询结果,0表示第一页的数据,每个表可自行定义自己的分页数,
* 在XML文件里进行配置
* 执行的SQL语句:
* SELECT SKUID,SKUNAME,SKUDATE FROM SKU WHERE 1=1
* @throws Exception
*/
void testpage() throws Exception {
DataManage dm = new DataManage();
dm.activity("sku");
Object[][] data = dm.getArrayData(0);
if (data.length > 0) {
for (int i = 0; i < data.length; i++) {
System.out.print("\n第" + (i + 1) + "行的数据:");
for (int j = 0; j < data[0].length; j++) {
if (data[i][j] != null) {
System.out.print(" " + data[i][j].toString());
}
}
}
}
else {
System.out.print("没有数据!");
} System.out.println("\n总共" + dm.COUNT_RECORDS + "条记录");
dm.closeConnection(); }
优点是便于管理,一次开发,处处都可使用。再次修改只需专注于
平台的修改,而不改动其他代码。