package weaver.interfaces.workflow.action;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import weaver.general.BaseBean;
import weaver.general.StaticObj;
//泛微OA调用外部数据源源代码
//bw.ren 2019年12月2日16:33:04
public class DataSourceDemo extends BaseBean {
public void testDatasource() {
//此处是取得上文定义的数据源dt1,如果需要操作其他系统的数据才需要该定义
Connection conn = getConnection("datasource.local");
try {
//通过jdbc获取人数
PreparedStatement s = conn.prepareStatement("select count(*) as counthrm from hrmresource");
ResultSet rs = s.executeQuery();
if (rs.next()) {
String counthrm = rs.getString("counthrm");
//输出到控制台
System.out.println("人数:" + counthrm);
writeLog("人数:" + counthrm);
}
rs.close();//关闭记录集
s.close();//关闭statement
} catch (Exception e) {
writeLog(e);
} finally {
try {
closeConnection(conn);//关闭连接
} catch (Exception e) {
writeLog(e);
}
}
}
/**
* 获取自定义datasource的connection
*
* @param datasourceid 数据源id,为"datasource"+数据源配置里面的数据源名称,
* 比如配置了一个数据源名称为local,那么这个数据源id为:datasource.local
* @return
*/
public Connection getConnection(String datasourceid) {
Connection conn = null;
try {
weaver.interfaces.datasource.DataSource datasource = (weaver.interfaces.datasource.DataSource) StaticObj.getServiceByFullname(datasourceid, weaver.interfaces.datasource.DataSource.class); //获取数据源的信息
conn = datasource.getConnection(); //和数据源取得连接
} catch (Exception e) {
}
return conn;
}
/**
* 关闭Connection
*
* @param conn
*/
public void closeConnection(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
writeLog(e);
}
}
}
}
泛微OA 调用外部数据源
最新推荐文章于 2024-06-14 10:42:30 发布