在 java 中调用 DQL

阅读(1479) 标签: java, dqlserver, dqljdbc,

本章节仅以java语言为例,介绍如何通过JDBC方式连接DQL。通过对本章节的学习,可以让您快速了解使用方法。

 

DQL JDBC连接有以下两种形式:

第一种,需要部署并启动DQL Server,部署步骤参考DQL Server部署小节,示例代码:

public void DQLServerJDBC() {

Connection con=null;

try {

//建立连接

Class.forName("com.esproc.dql.jdbc.DQLDriver");

con = DriverManager.getConnection("jdbc:esproc:dql:// 127.0.0.1:3368/datalogic","sa","sa");

//创建执行DQL语句

PreparedStatement stmt = con.prepareStatement("SELECT EmpID,Name FROM Employee", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

ResultSet set = stmt.executeQuery();

…….

} catch (SQLException e){

System.out.println(e);

}finally{

//关闭数据集

if (con!=null) con.close();

}

}

第二种 DQL JDBC嵌入式用法,部署步骤参考嵌入式DQL部署小节。

下面将结合角色+可视文件+宏文件,同时介绍如何实现用户权限控制:

通过demo.glmd文件生成可视文件oeid.gvsb,给Orders表配置条件可视:

宏配置文件macro.json内容:

{"user1":{"EmployeeID":"1"},"user2":{"EmployeeID":"2"}} 

  以上json串表示登录用户user1时通过宏传递参数EmployeeID=1,登录user2时传递参数EmployeeID=2

示例代码:

public void DQLJDBC() {

Connection con=null;

try {

//建立连接

Class.forName("com.esproc.dql.jdbc.DQLDriver");

//该示例中配置文件及元数据等文件位于项目类路径下

con = DriverManager.getConnection("jdbc:esproc:dql://?config=raqsoftConfig.xml&glmd=demo.glmd&gvsb=oeid.gvsb&macro=macro.json&user=1");

//创建执行DQL语句

PreparedStatement stmt = con.prepareStatement("SELECT * FROM Orders", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

ResultSet set = stmt.executeQuery();

…….

} catch (SQLException e){

System.out.println(e);

}finally{

//关闭数据集

if (con!=null) con.close();

}

使用角色user1,执行后返回结果:

 

使用角色user2 url改为:jdbc:esproc:dql://?config=raqsoftConfig.xml&glmd=demo.glmd&gvsb=oeid.gvsb&macro=macro.json&user=2 ,执行后返回结果:

服务器中的宏定义文件还可通过set macro命令动态修改,具体操作可参考动态修改宏