免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3111 | 回复: 19
打印 上一主题 下一主题

[求助]我快疯了,调试三天了,到底在哪错了呀? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-23 21:57 |只看该作者 |倒序浏览
jsp1.5+tomcat5.5+MYSQL5.0

插入一条数据在school数据库的teacher表内:

<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY bgcolor=pink ><Font size=5>
<% //获取提交的学号:int类型
    String number111=request.getParameter("number");
         
    //获取提交的姓名:
    String name111=request.getParameter("name");
     byte  a[]=name111.getBytes("ISO-8859-1");
     name111=new String(a);     
     //获取提交的性别:
    String sex111=request.getParameter("sex");
     byte  b[]=sex111.getBytes("ISO-8859-1");
     sex111=new String(b);     
    //获取提交的生日:date类型
    String birthday111=request.getParameter("birthday");
     byte  c[]=birthday111.getBytes("ISO-8859-1");
     birthday111=new String(c);     
     //获取提交的年龄 int类型
     String age111=request.getParameter("age");
         
   
    out.println("完成获取");

    String driver="com.mysql.jdbc.Driver";
    String url="jdbc:mysql://localhost:3306/school";
    String userid="root";
    String passwd="chen";

    try{
       Class.forName(driver);
       }
    catch(Exception e){
        out.println("无法载入"+driver+"驱动程序!");
        e.printStackTrace();
    }
try {
        Connection con=DriverManager.getConnection(url,userid,passwd);
            if(!con.isClosed())
               out.println("成功连接数据库!");
        Statement sql=con.createStatement();

       String condition="INSERT INTO teacher VALUES ("+number111+",'"+name111+"','"+sex111+"','"+birthday111+"',"+age111+",);";
      
       sql.executeUpdate(condition); //执行添加操作
}
catch(SQLException SQLe){
        out.println("无法插入数据!");
    }                              
%>

     <P>添加新记录后的表:          //显示添加新记录后表中的记录:省略


</Font>
</BODY>
</HTML>

论坛徽章:
0
2 [报告]
发表于 2006-03-23 22:00 |只看该作者
运行结果:

jsp.JPG (16.94 KB, 下载次数: 50)

jsp.JPG

论坛徽章:
0
3 [报告]
发表于 2006-03-23 22:03 |只看该作者
屏蔽了异常当然不容易调试了~如果没有做特殊的异常处理,一般要把stacktrace打出来 : e.printStackTrace();

论坛徽章:
0
4 [报告]
发表于 2006-03-23 22:07 |只看该作者
String condition="INSERT INTO teacher VALUES ("+number111+",'"+name111+"','"+sex111+"','"+birthday111+"',"+age111+",);";

这句大概没什么问题,需要注意一点就是name111,birthday111等数据中是否有单引号,这点能从异常栈看出来,祝你好运:em11:

论坛徽章:
0
5 [报告]
发表于 2006-03-23 22:33 |只看该作者
屏蔽了异常?

运行结果就是哪样呀~~

condition这条语句没问题吗?

插入日期型数据和插入字符有区别吗?请你给一条insert语句!谢谢谢谢~~~~~~

论坛徽章:
0
6 [报告]
发表于 2006-03-23 22:38 |只看该作者
String condition="INSERT INTO teacher VALUES ("+number111+",'"+name111+"','"+sex111+"','"+birthday111+"',"+age111+",);";

多了个逗号吧?

       String condition="INSERT INTO teacher VALUES ("+number111+",'"+name111+"','"+sex111+"','"+birthday111+"',"+age111+");";

论坛徽章:
0
7 [报告]
发表于 2006-03-23 22:42 |只看该作者
PreparedStatement sql=con.prepareStatement("INSERT INTO teacher VALUES (?,?,?,?,?)");
       sql.setString(1,number111),
       sql.setString(1,name111),
       sql.setString(1,sex111),
       sql.setInt(1,age111),
       sql.setString(1,number111),

        sql.executeUpdate(condition); //执行添加操作}

照你的,插入前先把condition打印出来看看是否对再说,另外查看下数据结构是否符合你要插入的记录
catch里面e.printStackTrace();

还有。在jsp以及其他任何语言操作数据库的时候,构造sql语句不用带分号,但一般来讲带了也不错


复制粘贴果然改错了。。。汗

[ 本帖最后由 艾斯尼勒 于 2006-3-24 10:21 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2006-03-23 22:43 |只看该作者
噢,谢谢!

但现在的情况:
org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 5 in the jsp file: /newDatabase.jsp
Generated servlet error:
birthday cannot be resolved

插入日期型数据和插入字符有区别吗?请你给一条insert语句!谢谢谢谢~~~~~~

论坛徽章:
0
9 [报告]
发表于 2006-03-23 22:44 |只看该作者
原帖由 xiaoshinn 于 2006-3-23 22:38 发表
String condition="INSERT INTO teacher VALUES ("+number111+",'"+name111+"','"+sex111+"','"+birthday111+"',"+age111+",);";

多了个逗号吧? ...


眼睛贼!!

论坛徽章:
0
10 [报告]
发表于 2006-03-23 22:45 |只看该作者
我突然想起了foxbase的ctod。。。
我这个sql不是很熟悉,但一个通用的测试方法是你先在数据库的标准客户端里面试试你的语句是否可以成功
若 没问题再写到程序里面

[ 本帖最后由 艾斯尼勒 于 2006-3-23 22:46 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP