Java 为什么从一个表中删除行有效,但从另一个表中删除行无效?
我正在尝试从表中删除行。第一个程序中的代码成功地删除了一行。第二个类似程序中的代码删除零行 但是,当从SQL命令行工具发出相同的delete命令时,它会报告一行被删除 第一个方案:Java 为什么从一个表中删除行有效,但从另一个表中删除行无效?,java,oracle,jsp,Java,Oracle,Jsp,我正在尝试从表中删除行。第一个程序中的代码成功地删除了一行。第二个类似程序中的代码删除零行 但是,当从SQL命令行工具发出相同的delete命令时,它会报告一行被删除 第一个方案: package oracle; import java.sql.DriverManager; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.text.D
package oracle;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class JDBCPreparedStatementInsertExample {
private static final String DB_DRIVER = "oracle.jdbc.driver.OracleDriver";
private static final String DB_CONNECTION = "jdbc:oracle:thin:@localhost:1521:XE";
private static final String DB_USER = "system";
private static final String DB_PASSWORD = "datta123";
public static void main(String[] argv) {
try {
insertRecordIntoTable();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
private static void insertRecordIntoTable() throws SQLException {
Connection dbConnection = null;
PreparedStatement preparedStatement = null;
try {
dbConnection = getDBConnection();
System.out.println("oracle database is connected:\n");
String deleteSQL = "DELETE DBUSER WHERE username = ?";
preparedStatement = dbConnection.prepareStatement(deleteSQL);
preparedStatement.setString(1, "Avi");
// execute delete SQL stetement
int i = preparedStatement.executeUpdate();
System.out.println("success:"+i);
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
if (preparedStatement != null) {
preparedStatement.close();
}
if (dbConnection != null) {
dbConnection.close();
}
}
}
private static Connection getDBConnection() {
Connection dbConnection = null;
try {
Class.forName(DB_DRIVER);
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
try {
dbConnection = DriverManager.getConnection(
DB_CONNECTION, DB_USER,DB_PASSWORD);
return dbConnection;
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return dbConnection;
}
}
输出:
oracle database is connected:
success:1
oracle database is connected:
success:0
输出:
oracle database is connected:
success:1
oracle database is connected:
success:0
oracle数据库已连接:
成功率:0
但通过命令行工具,相同的查询被成功执行:
SQL> delete admin where name='datta';
1 row deleted.
SQL>删除管理员,其中name='datta';
删除1行。注意:请不要使用诸如“wrk”和“frm”之类的缩写词。StackOverflow不是移动聊天。相反,创建一个简洁的标题,并将问题的全文放在问题正文中,以保持清晰易读。在
admin
中name
的数据类型是什么?有没有可能是char
而不是varchar2
?这可能与此特定问题无关,但不要使用系统
(或系统
)用户进行开发。这是一个保留的用户和模式,您永远不应该在其中创建对象。为你的应用程序创建一个新的架构,并在那里创建你的对象。可能是在命令行客户端会话中添加了管理记录而没有提交它吗?非常感谢Alex Poole。这是提交的问题,成功地运行了第二个程序。