【发布时间】:2014-01-20 12:36:37
【问题描述】:
我试图使用 iBatis 为 Oracle 数据库执行 DDL 命令。 我想使用 iBatis 执行下面的查询,我应该如何执行。我正在使用 struts 1.2 进行编码。
CREATE USER USER1..;
我曾尝试使用 iBatis 的元素,但它不起作用。 请任何人为我提供相同的快速解决方案。
【问题讨论】:
我试图使用 iBatis 为 Oracle 数据库执行 DDL 命令。 我想使用 iBatis 执行下面的查询,我应该如何执行。我正在使用 struts 1.2 进行编码。
CREATE USER USER1..;
我曾尝试使用 iBatis 的元素,但它不起作用。 请任何人为我提供相同的快速解决方案。
【问题讨论】:
iBatis 官方不支持 DDL,但在 iBatis 中仍然多次成功执行。
我采用了一个简单的 DDL 命令来创建用户,该命令在 Oracle 中可以正常运行。
CREATE USER MYUSER IDENTIFIED BY PASSWORD;
然后在 iBatis 中使用了映射语句。 <statement> 映射语句可以包含任何 SQL 语句。我从this 链接引用了 iBatis 的映射语句。
然后我用 create user DDL 为 iBatis 创建了语句,并传递了一个参数类为UserToCreate。
<statement id="createUser" parameterClass="UserToCreate">
CREATE USER #userName# IDENTIFIED BY PASSWORD
</statement>
UserToCreate.java 文件是一个 bean,其中包含与要创建的用户相关的数据。
public class UserToCreate{
private String userName;
// Any other field variable
//Getter Setter methods
}
现在调用 Create User iBatis 语句只需编写使用代码:
UserToCreate user = new UserToCreate();
user.setName("MYUSER");
// sqlMap is an object of ibatis SqlMapClient
sqlMap.update("createUser", user);
这将创建一个新的 Oracle 用户,由变量 userName 中的用户名指定。
【讨论】: