JSP的数据库操作,怎么无法实现插入和更新,可以进行删除和查询呢?
JSP的数据库操作,怎么无法实现插入和更新,可以进行删除和查询呢?代码语法一点错误没有的应该,数据库结也没问题。以下是我的部分代码,请求大人帮我这个小菜看看啦!!我的up...
JSP的数据库操作,怎么无法实现插入和更新,可以进行删除和查询呢?代码语法一点错误没有的应该,数据库结也没问题。
以下是我的部分代码,请求大人帮我这个小菜看看啦!!
我的updateX,java
<%@page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="java.sql.*"%>
<html>
<head><title>雇员查询</title></head>
<body>
<%
request.setCharacterEncoding("GBK");
%>
<center>
<h1>查询操作</h1>
<hr>
<%! // 定义若干个数据库的连接常量
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
public static final String DBUSER = "root" ;
public static final String DBPASS = "mysqladmin" ;
%>
<%
Connection conn = null ; // 数据库连接
PreparedStatement pstmt = null ; // 数据库预处理操作
boolean flag = false ; // 保存标记
%>
<%
try{
%>
<%
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
String sql = "UPDATE emp SET sal=?,comm=? WHERE empno=?" ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,request.getParameter("sal")) ;
pstmt.setString(2,request.getParameter("comm")) ;
pstmt.setString(3,(String)session.getAttribute("uno")) ;
int x = pstmt.executeUpdate() ; // 查询
if(x==1){
flag = true;
}
%>
修改成功!
<h3><a href="admin.jsp">返回</a>管理员页面</h3>
<%
}catch(Exception e) {
e.printStackTrace() ;
}
finally{
try{
pstmt.close() ;
conn.close() ;
} catch(Exception e){}
}
%>
<%
if(flag !=true) { // 登陆失败
%>
修改失败!
<h3><a href="admin.jsp">返回</a>管理员页面</h3>
<%
}
%>
</center>
</body>
</html>
可以运行,但是老是显示 “修改失败!”求解啊,弄了一晚上了!我的数据库应该也没问题的,因为我试过多种表了,有全是varchar的,也是一样的结果!
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,request.getParameter("sal")) ;
pstmt.setString(2,request.getParameter("comm")) ;
pstmt.setString(3,(String)session.getAttribute("uno"))
也都是对的! 中间的request 和 session 没有问题
也不是数据类型的问题!但是还是很感谢你! 展开
以下是我的部分代码,请求大人帮我这个小菜看看啦!!
我的updateX,java
<%@page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="java.sql.*"%>
<html>
<head><title>雇员查询</title></head>
<body>
<%
request.setCharacterEncoding("GBK");
%>
<center>
<h1>查询操作</h1>
<hr>
<%! // 定义若干个数据库的连接常量
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
public static final String DBUSER = "root" ;
public static final String DBPASS = "mysqladmin" ;
%>
<%
Connection conn = null ; // 数据库连接
PreparedStatement pstmt = null ; // 数据库预处理操作
boolean flag = false ; // 保存标记
%>
<%
try{
%>
<%
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
String sql = "UPDATE emp SET sal=?,comm=? WHERE empno=?" ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,request.getParameter("sal")) ;
pstmt.setString(2,request.getParameter("comm")) ;
pstmt.setString(3,(String)session.getAttribute("uno")) ;
int x = pstmt.executeUpdate() ; // 查询
if(x==1){
flag = true;
}
%>
修改成功!
<h3><a href="admin.jsp">返回</a>管理员页面</h3>
<%
}catch(Exception e) {
e.printStackTrace() ;
}
finally{
try{
pstmt.close() ;
conn.close() ;
} catch(Exception e){}
}
%>
<%
if(flag !=true) { // 登陆失败
%>
修改失败!
<h3><a href="admin.jsp">返回</a>管理员页面</h3>
<%
}
%>
</center>
</body>
</html>
可以运行,但是老是显示 “修改失败!”求解啊,弄了一晚上了!我的数据库应该也没问题的,因为我试过多种表了,有全是varchar的,也是一样的结果!
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,request.getParameter("sal")) ;
pstmt.setString(2,request.getParameter("comm")) ;
pstmt.setString(3,(String)session.getAttribute("uno"))
也都是对的! 中间的request 和 session 没有问题
也不是数据类型的问题!但是还是很感谢你! 展开
4个回答
展开全部
sal和comm是float型的,用这样的方法设置参数:pstmt.setString(1,request.getParameter("sal")) ;pstmt.setString(2,request.getParameter("comm")) ;会出问题的。
试试setFlolat();
在数据库里,sal和comm是float类型的啊,给它设置一个String型的参数怎么可能会成功呢?试试pstmt.setFloat();
可以通过设置断点或者输出控制台来debug一下,看看有什么提示信息啊。。
试试setFlolat();
在数据库里,sal和comm是float类型的啊,给它设置一个String型的参数怎么可能会成功呢?试试pstmt.setFloat();
可以通过设置断点或者输出控制台来debug一下,看看有什么提示信息啊。。
展开全部
不要在JSP里做数据库连接操作
表的数据确定没有更新吗,第一眼看上去没错
表的数据确定没有更新吗,第一眼看上去没错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有错误信息吗 吧错误也贴出来看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(x==1)在这里好像不能这样设置这样的条件吧!你把条件改成if(x>0)试试,
if(flag !=true)这里这样写也好像有点问题,你就写成if(flag){修改成功}else {修改失败},这样规范一点!我不知道这里是不是这个原因但是我在用js是做这样的判断时它总是走第一个条件中
if(flag !=true)这里这样写也好像有点问题,你就写成if(flag){修改成功}else {修改失败},这样规范一点!我不知道这里是不是这个原因但是我在用js是做这样的判断时它总是走第一个条件中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询