1:建立数据库(dastest)和表(userinfo),这里使用mysql,如下图:
2:配置文件UsersConfig.xml,src下。
<?xml version="1.0" encoding="UTF-8"?>
<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd">
<ConnectionInfo>
<ConnectionProperties driverClass="com.mysql.jdbc.Driver"
databaseURL="jdbc:mysql://127.0.0.1/dastest" userName="root" password="123"
loginTimeout="600000" />
</ConnectionInfo>
<Command name="users" SQL="select * from userinfo" kind="Select" />
</Config>
3:java代码
package com.waysoft.intergration.dao;
import java.io.InputStream;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.List;
import org.apache.tuscany.das.rdb.Command;
import org.apache.tuscany.das.rdb.DAS;
import commonj.sdo.DataObject;
public class CustomerClient {
private DAS das = null;
private final String configFile;
public CustomerClient(String configFile) {
this.configFile = configFile;
}
protected InputStream getConfig(String fileName) {
return getClass().getClassLoader().getResourceAsStream(fileName);
}
protected DAS getDAS() {
if (this.das == null) {
this.das = DAS.FACTORY.createDAS(getConfig(this.configFile));
}
return this.das;
}
public final DataObject getRootObject() {
Command read = this.getDAS().createCommand("select * from userinfo");
DataObject root = read.executeQuery();
return root;
}
public final List<?> getusers() {
Command read = this.getDAS().createCommand("select * from userinfo");
DataObject root = read.executeQuery();
return root.getList("userinfo");
}
public final void addCustomer() {
Command read = this.getDAS().getCommand("users");
DataObject root = read.executeQuery();
DataObject newUser = root.createDataObject("userinfo");
newUser.setString("name", "chu");
newUser.setInt("id", 3);
newUser.setInt("age", 34);
newUser.setString(
"birth",
DateFormat.getDateInstance().format(
Calendar.getInstance().getTime()));
das.applyChanges(root);
}
public final void deleteCustomer() {
Command readAll = this.getDAS().getCommand("users");
DataObject root = readAll.executeQuery();
List<?> allusers = root.getList("userinfo");
DataObject lastCustomer = (DataObject) allusers
.get(allusers.size() - 1);
if (lastCustomer != null) {
System.out.println("Deleting user named: "
+ lastCustomer.getString("name"));
lastCustomer.delete();
}
das.applyChanges(root);
}
public final void changeFirstCustomerName() {
Command readAll = this.getDAS().getCommand("users");
DataObject root = readAll.executeQuery();
DataObject firstCustomer = root.getDataObject("userinfo[1]");
firstCustomer.set("name", "BlueBerry");
das.applyChanges(root);
}
public static void printList(List<?> users) {
for (int i = 0; i < users.size(); i++) {
System.out.println(" name:"
+ (((DataObject) users.get(i)).getString("name")) + " age:"
+ (((DataObject) users.get(i)).getInt("id")) + " birth:"
+ (((DataObject) users.get(i)).getString("birth")));
}
}
public void releaseResources() {
das.releaseResources();
}
public static void main(String[] args) {
String customerConfigFile = "UsersConfig.xml";
CustomerClient customerClient = new CustomerClient(customerConfigFile);
// test select
System.out.println();
System.out.println("Result:select all users");
printList(customerClient.getusers());
// //test insert
System.out.println();
System.out.println("Result:insert new userinfo");
customerClient.addCustomer();
printList(customerClient.getusers());
// test update
System.out.println();
System.out.println("Result:update first userinfo");
customerClient.changeFirstCustomerName();
printList(customerClient.getusers());
// test delete
System.out.println();
System.out.println("Result:delete last userinfo");
customerClient.deleteCustomer();
printList(customerClient.getusers());
}
}
4:控制台输出
Result:select all users
name:chu age:1 birth:2012-01-01
Result:insert new userinfo
name:chu age:1 birth:2012-01-01
name:chu age:3 birth:2012-12-13
Result:update first userinfo
name:BlueBerry age:1 birth:2012-01-01
name:chu age:3 birth:2012-12-13
Result:delete last userinfo
Deleting user named: chu
name:BlueBerry age:1 birth:2012-01-01
5:查看数据库