<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<html>
<head>
<title>添加数据</title>
</head>
<body><center>
<strong>向数据库中添加数据</strong>
<br><hr>
<%
     try{
        //驱动程序名
        String driverName="com.mysql.jdbc.Driver";
        //数据库用户名
        String userName="root";
        //密码
        String userPasswd="1128";
        //数据库名
        String dbName="contact";
        //表明
        String tableName="contact";
        //连接字符串
        String url="jdbc:mysql://localhost:3306/"+dbName+"?user="+userName+"&password="+userPasswd; 
        //加载驱动程序
         Class.forName("com.mysql.jdbc.Driver").newInstance();         Connection conn=DriverManager.getConnection(url);
          //创建执行语句 
           //使用PreparedStatement添加多条记录
           String sql="insert into contact values(?,?,?,?,?,?)";
           PreparedStatement pstmt=conn.prepareStatement(sql);
           //添加第一条记录
             pstmt.setString(1,"张斌");
              pstmt.setString(2,"13456789123");
              pstmt.setString(3,"039412365478");
              pstmt.setString(4,"[email protected]");
              pstmt.setDate(5,new java.sql.Date(new java.util.Date().getTime()));
              pstmt.setString(6,"大小三年级,是计算机系学生");
              //执行插入数据操作
               pstmt.executeUpdate();
               //添加第二条记录
               pstmt.setString(1,"王晓");
               pstmt.setString(2,"1365478921");
                pstmt.setString(3,"036985474");
                pstmt.setString(4,"[email protected]");
                pstmt.setDate(5,new java.sql.Date(new java.util.Date().getTime()));
                pstmt.setString(6,"清华学生,大学三年级");
                pstmt.executeUpdate();
                //添加第三条记录
                pstmt.setString(1,"王娜");
                pstmt.setString(2,"13658954621");
                pstmt.setString(3,"039472065478");
                pstmt.setString(4,"[email protected]");
                pstmt.setDate(5,new java.sql.Date(new java.util.Date().getTime()));
                pstmt.setString(6,"老君台中学");
                 pstmt.executeUpdate();
                 //关闭pstmt
                 pstmt.close();
                 //使用Statement一次添加一条记录
                  Statement stmt=conn.createStatement();
                  sql="insert into contact values('王艳‘,’13456789654‘,’039472065478‘,’[email protected]','2008-7-4','鹿邑邱集乡‘)";
                  stmt.execute(sql);
                  //添加完成后给出提示
                  out.println("++++++++++++++++++++++++++++");
                  out.print("<br>");
                  out.println("添加数据成功");
                   out.print("<br>");
                   out.println("+++++++++++++++++++++");
                   //关闭连接,释放资源
                   stmt.close();
                   conn.close();
                   }
                     catch(Exception e){
                      out.println(e);
                      //e.printStackTrace();
                      }
                      %>
                      </center>
                      </body>
                      </html>这段代码也可以成功的往数据库中添加所编的数据,就是如果我打开这段代码的页面,红色的那部分根本就显示不出来,用try catch检查来的错误是:"com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''????????????)' at line 1 ".  
 还有就是加载驱动程序那里的"newInstance();"        在这里是什么意思,有什么用呀。小弟刚接触数据库,希望大家不吝赐教,谢谢了!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【gjk11】截止到2008-07-04 15:53:55的历史汇总数据(不包括此帖):
    发帖的总数量:15                       发帖的总分数:340                      
    结贴的总数量:15                       结贴的总分数:340                      
    无满意结贴数:2                        无满意结贴分:70                       
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:13.33 %               无满意结分率:20.59 %                  
    敬礼!
      

  2.   

    输出++的代码写在关闭数据库后操作。这个是逻辑问题。
    newInstance()方法 
    我没有链过mysql 不知道mysql的驱动是否要加那一句
    sqlserver是不需要的。
      

  3.   

    newInstance();
    就相当于new ***();
    新建一个实例.
      

  4.   

    '王艳‘,’13456789654‘,’039472065478‘,’[email protected]','2008-7-4','鹿邑邱集乡这里有了几个全角的符号.
      

  5.   

    我初步怀疑
    1.你的添加第一个的 pstmt.setString(1,"王娜"); 可以添加进去嘛 是否是pstmt.setInt(1,"王娜")
    2.insert into contact values(?,?,?,?,?,?)"; 应该写具体
       insert into contact()values();格式
    3.你的              out.println("++++++++++++++++++++++++++++"); 
                      out.print(" <br>"); 
                      out.println("添加数据成功"); 
                      out.print(" <br>"); 
                      out.println("+++++++++++++++++++++");           
    这个代码是写在 <% %>JAVA代码中的 用System.out.println()输出在console里可以看到
    如果你想看到“添加成功” 你可以这样做
    把 out.print.....代码 改成 session.setAttribute("having","having") ;
    然后在 JSP页面写 
    <%
    if(!"".equals(session.getAttribute("having")) || session.getAttribute("having") != null)
    {
    session.removeAttribute("having");
    out.println("<script language=\"javascript\">alert('添加数据成功!');window.close();</script>");
    }
    %>
      

  6.   

    newInstance();是多余的,要删除。
      

  7.   

    刚才把数据表删除又重新写入一遍(代码没变),只循环两次了,上次循环最起码也有二十几遍。邪门了,代码还是原来的代码,怎么重新搞了一遍就好不一样了哪?newInstance();还有其他答案吗?       
      

  8.   

    sql="insert into contact values('王艳‘,’13456789654‘,’039472065478‘,’[email protected]','2008-7-4','鹿邑邱集乡‘)"; 单引号错了。要用半角。