publicclassTest002CreateUser{/**驱动程序在jdbc的jar包中*/publicfinalStringDBDRIVER="oracle.jdbc.driver.OracleDriver";/**连接地址是由各个数据库生产商单独提供的,需要单独记住...
public class Test002CreateUser {
/**驱动程序在jdbc的jar包中*/
public final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
/**连接地址是由各个数据库生产商单独提供的,需要单独记住*/
public final String DBURL = "jdbc:oracle:thin:@localhost:1521:ORCL";
/**连接数据库的用户名*/
public String DBUSER = "sys as sysdba";
/**连接数据库的密码*/
public String DBPASSWORD = "sys";
/**数据库连接对象*/
public Connection conn;
/**数据库操作对象*/
public Statement stmt;
/**SQL语句*/
public String sql_query;
/**加载数据库驱动程序包*/
public void loadOracleDriver() {
try {
/**使用Class类加载驱动程序*/
Class.forName(DBDRIVER);
} catch (ClassNotFoundException e) {}
}
/**打开到数据库的连接*/
public void openConnect() {
try {
/**连接数据库*/
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
} catch (SQLException e) { }
/**进行打印,测试连接对象是否存在*/
System.out.println("连接对象:" + conn);
}
/**创建数据库操作对象*/
public void createStatment() {
try {
/**Statement接口需要通过Connection接口进行实例化操作*/
stmt = conn.createStatement();
} catch (SQLException e) {}
/**进行打印,测试连接对象是否存在*/
System.out.println("操作对象:" +stmt);
}
/**执行SQL语句*/
public void executeSQL() {
sql_query = "CREATE USER rxsj IDENTIFIED BY rxsj;";
try {
/**stmt作为数据库操作对象,执行sql语句*/
stmt.executeQuery(sql_query);
} catch (SQLException e) { }
}
/**关闭与数据库的连接*/
public void closeConnect(){
try {
/**关闭数据库*/
conn.close();
} catch (SQLException e) { }
}
/**测试*/
public void test() {
this.loadOracleDriver();
this.openConnect();
this.createStatment();
this.executeSQL();
this.closeConnect();
}
}
执行test()方法后,提示“stmt.executeQuery(sql_query);”出错
我也尝试过stmt.execute(sql_query)和stmt.executeUpdate(sql_query),但是都一样提示出错。
连接过程是正常的,查询数据也可以,但是却无法创建用户?求指教。
java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:194)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:1000)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1307)
at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1814)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1779)
at oracle.jdbc.driver.OracleStatementWrapper.executeUpdate(OracleStatementWrapper.java:277)
展开