- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我试图通过 AJAX 调用 servlet 来编辑 JSP 页面中的行,该 servlet 进一步转到编辑函数,但 k
的值始终为 1。
这是 servlet 代码:
try {
k=obj.editportal(env, region, url, user, rnode, password,envid,attuid);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("value of k is = "+k);
if(k==0)
{
res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
pw.write("Internal server error");
}
else if(k==1)
{
res.setStatus(HttpServletResponse.SC_OK);
pw.write("Row updated Successfully");
}
这是我的 Java 函数:
try {
Connection con = db.getConnection();
String query = "update ENV_MOTS_DETAILS set " +
"ENV_NAME= ? , CONSOLE_URL= ? , REMOTE_NODE= ? , CONSOLE_TO_LOGON=? , " +
"REGION=? , DELETE_FLAG='Y' , ADMIN_PWD=? , " +
"COMPONENT='' , COMMENTS='' , LAST_UPDATED_BY=?, " +
"LAST_UPDATED_ON=to_date(to_char(SYSDATE,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS') WHERE ENV_ID = ?";
log.info("[Editconsole Method Call Query]"+query);
ps = con.prepareStatement(query);
ps.setString(1,env);
ps.setString(2,url);
ps.setString(3,rnode);
ps.setString(4,user);
ps.setString(5,region);
ps.setString(6,password);
ps.setString(7,attuid);
ps.setInt(8,envid);
ret=ps.executeUpdate();
ps.close();
//con.commit();
con.close();
}
catch (Exception e)
{
log.fatal("[SQL Exception in retrieving Server Details]"+e.getMessage());
throw e;
}
return ret;
}
有时它的返回值为0
,但这种情况很少见。但是一旦它返回 0
,即使我重新输入正确的条目,它也总是给出 0
,
最佳答案
您的错误java.sql.SQLException:ORA-12899:列“INFRAJEWL”的值太大。“ENV_MOTS_DETAILS_NEW”。“ADMIN_PWD”
是由
ps.setString(6,password);
password
中包含的字符串比表中定义的 ADMIN_PWD
列长。
检查表定义并检查您的密码
长度。
返回值 0 只是表明:没有更新任何行,而返回值 1 则标识“1”行已更新。由于您的 ENV_ID
很可能是表的主键,因此您永远不会看到任何其他值是完全可以的。
注意:您可以更新 0 行,并且该语句工作正常。当更新没有更改数据时就会出现这种情况(值与之前相同)
通过编写 try-with-resource
风格,您可以删除对变量 ret
的依赖,在出现异常时始终返回 0:
String query = "update ENV_MOTS_DETAILS set " +
"ENV_NAME= ? , CONSOLE_URL= ? , REMOTE_NODE= ? , CONSOLE_TO_LOGON=? , " +
"REGION=? , DELETE_FLAG='Y' , ADMIN_PWD=? , " +
"COMPONENT='' , COMMENTS='' , LAST_UPDATED_BY=?, " +
"LAST_UPDATED_ON=to_date(to_char(SYSDATE,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS') WHERE ENV_ID = ?";
try(Connection con = db.getConnection();
ps = con.prepareStatement(query)) {
log.info("[Editconsole Method Call Query]"+query);
ps.setString(1,env);
ps.setString(2,url);
ps.setString(3,rnode);
ps.setString(4,user);
ps.setString(5,region);
ps.setString(6,password);
ps.setString(7,attuid);
ps.setInt(8,envid);
int numAffected = ps.executeUpdate();
log.info("Statement affected " + numAffected + " rows");
return 1; //Worked.
}
catch (Exception e) {
log.fatal("[SQL Exception in retrieving Server Details]"+e.getMessage());
}
return 0;
}
关于java - executeUpdate() 总是返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34810885/
这个问题已经困扰两天了。尝试了我能想到的一切。非常感谢您在这个问题上给我的任何帮助。提前致谢。` try { // try get tx records Class.forName("com
我有如下代码: using (var session = this.sessionCreator.OpenSession()) using (var transaction = session.Beg
我有以下代码: sql = update [myTable] set content = '" map.getString() + "' where id = " map.getKey(); stmt
我创建了这样的声明: String query = "INSERT INTO ZMONES (ID, PAVADINIMAS, SLAPTAZODIS) VALUES(" +sum+" ,"+
请我想向数据库添加一个元素,但我仍然遇到此错误,我不知道错误到底在哪里,并且我确定 sql 查询和我的数据库 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxEr
我想知道,如何关闭 JAVA(JDBC) 中的executeUpdate 语句? 例如: String sql = "UPDATE. .. . .. Whatever..."; ResultSet
PreparedStatement updatestmt1 = con.prepareStatement("update BASE_TX set tx_vl=replace(tx_vl,?,?)");
使用 readline 5.1 运行 mysql Ver 15.1 Distrib 5.5.44-MariaDB,适用于 Linux (x86_64) 我编写了一个 Java servlet,它在 S
今天我遇到了这样的情况:程序启动,正常运行,显示数据已正确输入数据库,但没有执行。我再次运行脚本,它运行良好,但有趣的是它没有抛出异常,尽管它未能插入数据。 是否存在 Statement.execut
你好,祝大家新年快乐。 我正在开发一个 JDBC 程序,它获取服务器中的每个数据库,访问每个表并收集有关这些列的信息。最后,我想将表中的每一行信息添加为行。我的程序可以正确编译和运行,但表总是返回 E
我得到一个异常(exception) com.microsoft.sqlserver.jdbc.SQLServerException: String or binary data would be t
我正在尝试在某些应用程序中进行手动订购。更新字段的 JPAQL 是这样的: update SortableBean s set s.position = s.position + 1 where s.
这是我的代码: String insertQuery = "INSERT INTO Links(PageId, LinkId) values(?, ?)"; PreparedStatement pre
我一直在尝试执行以下查询: SQL_ADDPROJECT = "INSERT INTO project (name, description, duration, departement, chef)
我的目标是向我创建的现有表中添加一个新行。但是,我收到以下错误。 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have
如果我有一个使用以下架构创建的表: CREATE TABLE names (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR); 还有一个 List na
我正在 JBehave 非 Maven 框架中工作,并且正在运行一个文本文件内的插入语句,我将其作为 qry 传递给我的方法。插入语句为: Insert into croutreach.ACME_OU
我正在修改一个 Java Web 应用程序,该应用程序是以前(由其他人)编写的,它使用 JDBC。该数据库是使用 PHPMyAdmin 创建的。在此过程中,我需要重命名其中一张表。我在代码中用正确的名
所以我试图将信息从java应用程序存储到数据库中,但我收到此错误:“”AWT-EventQueue-0“java.lang.NullPointerException”并且我一生都找不到原因。我尝试更改
我使用以下代码通过 postgres 的更新查询更改密码。 @POST @Path("/changepassword") @Consumes(MediaType.APPLICATION_JSON) p
我是一名优秀的程序员,十分优秀!