数据库wishes已建好的,就是jsp一直连接不上数据库,不能写入和读取数据<%! String getWishes() throws SQLException{
JSONArray array = new JSONArray();
String sql = "select id,username,wish,wishtime,colorsuit from wishes";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try{
conn = ConnDB.getConnection();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()){
JSONObject obj = new JSONObject();
obj.put("id",rs.getString(1));
obj.put("username",rs.getString(2));
obj.put("wish", rs.getString(3));
            obj.put("wishtime", rs.getString(4));
            obj.put("colorsuit", new Integer(rs.getInt(5)));
            array.add(obj);

}
}catch(Exception e){
 System.out.println(e.toString());
}finally{
rs.close();
pstmt.close();
conn.close();   
}
return array.toString();

}

void addWish(String username,String wish,String color) throws SQLException{
String sql = "insert into wishes(username,wish,wishtime,colorsuit) values(?,?,now(),?)";
Connection conn = null;
PreparedStatement pstmt = null;
try{
conn = ConnDB.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,username);
pstmt.setString(2,wish);
pstmt.setString(3,color);
pstmt.executeUpdate();
}catch(Exception e){System.out.println(e.toString());
}finally{
pstmt.close();
conn.close();
}
}
String getDBTime() throws SQLException{
String dbTime = "";
String sql = "select now()";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try{
conn = ConnDB.getConnection();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if(rs.next()){
dbTime = rs.getString(1);

}
}catch(Exception e){
System.out.println(e.toString());
}finally{
rs.close();
pstmt.close();
conn.close();

}
return dbTime;
}
 %>
 <%
  out.clear();
  request.setCharacterEncoding("utf-8");
 
    String action = request.getParameter("action");
   
    if("getWishes".equals(action)){
    out.println(getWishes());
    }else if("sendWishes".equals(action)){
    String username = request.getParameter("username");
    String wish = request.getParameter("wish");
    String color = request.getParameter("color");
    addWish(username,wish,color);
    out.print(getDBTime());
    }
  %>
上面是wishes.jsp文件的,下面是wishes.html的
<script type="text/javascript">var maxzIndex = 999999;         //最大Z坐标
var currzIndex = 1;             //当前Z坐标
var xMin = 10;                  //X坐标最小值
var xMax = 300;                 //X坐标最大值
var yMin = 100;                 //Y坐标最小值
var yMax = 300;                 //Y坐标最大值
var msMin = 1000;               //显示毫秒数最小值
var msMax = 3000;               //显示毫秒数最大值//色彩数组
var colorArray = ["#FF9999","#FF6633","#FFCC00","#99CC66","#00CCCC","#0099CC","#CC99FF"];//获取随机显示毫秒
function getRanMS() {
    return getRanNum(msMin, msMax);
}//获取随机横坐标
function getRanX() {
    return getRanNum(xMin, xMax);
}//获取随机纵坐标
function getRanY() {
    return getRanNum(yMin, yMax);
}//通用获取随机数的函数
function getRanNum(minVal, maxVal) {
    return Math.round(Math.random() * (maxVal - minVal)) + minVal;
}//页面加载完毕自动初始化函数
$(function() {
    //为选择颜色列表项赋值背景色
    $("option").each(
        function(i) {
            $(this).background(colorArray[i]);
        }
    );
    //向服务器发送请求获取许愿信息
    $.getJSON("wishes.jsp",                 //服务器页面地址
        {
            action: "getWishes"             //action参数
        },
        function(json) {
            //遍历结果数组
            $(json).each(
                function(i) {
                    buildWish(json[i]);     //建立愿望节点
                }
            );
        }
    );
});//点击“关闭”后隐藏愿望
function hideWish(src) {
    $(src).parent().slideUp();
}//发送新愿望给服务器
function sendWish() {
    var username = $("#username").val();    //获取发送用户姓名
    var wish = $("#wish").val();            //获取愿望内容
    var color = $("#color").val();          //获取颜色
    if (username != "" && wish != "") {
        document.forms[0].reset();          //表单重置
        $.post("wishes.jsp",                //服务器页面地址
            {
                action: "sendWish",         //action参数
                username: username,         //许愿人参数
                wish: wish,                 //愿望参数
                color: color                //颜色参数
            },
            function(time) {
                //将新愿望各参数组成json对象
                var json = {
                    username: username,
                    wishtime: time,
                    wish: wish,
                    colorsuit:color
                };
                buildWish(json);            //建立愿望节点
            }
        );
    } else {
        alert("许愿人和愿望都需要填写内容。");
    }
}//在页面建立愿望
function buildWish(json) {
    var x = getRanX();      //随机生成X坐标
    var y = getRanY();      //随机生成Y坐标
    var ms = getRanMS();    //随机生成显示时间
    //创建愿望节点
    var divNode = $(document.createElement("div"));
    divNode
    //添加样式
    .addClass("wish")
    //追加许愿时间
    .append("<div class='wishtime'>" +
            json.wishtime.substr(0,16) +
            "</div>")
    //追加愿望信息
    .append(json.wish)
    //追加许愿人
    .append("<div class='username'>" +
            json.username +
            "</div>")
    //追加关闭功能
    .append("<div class='close' onclick='hideWish(this)'>关闭</div>")
    //将节点写入body
    .appendTo("body")
    //设定鼠标点击事件
    .mousedown(
        function() {
            this.style.zIndex = currzIndex++;   //Z坐标增加1
        })
    //设置可拖拽
    .Draggable(
        {
            zIndex:maxzIndex                    //拖拽过程中的Z坐标值
        })
    //设置left位置
    .left(x+"px")
    //设置top位置
    .top(y+"px")
    //设置背景颜色
    .background(colorArray[json.colorsuit-1])
    //使用随机生成的毫秒数淡入
    .fadeIn(ms);
}
</script>刚接触这个没多久,很多细节也搞不清楚,拜托各位了

解决方案 »

  1.   

    要确保通过 conn = ConnDB.getConnection();
    能得到数据库连接
      

  2.   

    ConnDB相关的代码贴出来瞧瞧?
    或者驱动包有没有什么的?
    有没有报什么异常?
      

  3.   

    conn = ConnDB.getConnection();
     ConnDB.getConnection()这个里边也许有问题。
    例外,能把异常信息发上来更好。
      System.out.println(e.toString());
    如果没有异常信息,说明没有进入方法,或者其他的错误。
      

  4.   

    package com.dao;//将该类保存到com.tools包中import java.io.InputStream; //导入java.io.InputStream类
    import java.sql.*; //导入java.sql包中的所有类
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Properties; //导入java.util.Properties类
    import java.util.Map.Entry;public class ConnDB {
    public Connection conn = null; // 声明Connection对象的实例
    public Statement stmt = null; // 声明Statement对象的实例
    public ResultSet rs = null; // 声明ResultSet对象的实例
    public PreparedStatement prpdStmt = null;// 声明PreparedStatement对象的实例 private static String propFileName = "/com/dao/connDB.properties"; // 指定资源文件保存的位置
    private static Properties prop = new Properties(); // 创建并实例化Properties对象的实例
    private static String dbClassName;// 定义保存数据库驱动的变量
    private static String dbUrl;
    private static String dbUser;
    private static String dbPwd; public ConnDB() { // 定义构造方法
    try { // 捕捉异常
    // 将Properties文件读取到InputStream对象中
    InputStream in = getClass().getResourceAsStream(propFileName);
    prop.load(in); // 通过输入流对象加载Properties文件
    dbClassName = prop.getProperty("DB_CLASS_NAME"); // 获取数据库驱动
    dbUrl = prop.getProperty("DB_URL", dbUrl); // 获取URL
    dbUser = prop.getProperty("DB_USER", dbUser); // 获取登录用户
    dbPwd = prop.getProperty("DB_PWD", dbPwd); // 获取密码
    } catch (Exception e) {
    e.printStackTrace(); // 输出异常信息
    }
    } public static Connection getConnection() {
    Connection conn = null;
    try { // 连接数据库时可能发生异常因此需要捕捉该异常
    Class.forName(dbClassName).newInstance(); // 装载数据库驱动
    // 建立与数据库URL中定义的数据库的连接
    conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
    } catch (Exception ee) {
    ee.printStackTrace(); // 输出异常信息
    }
    if (conn == null) {
    System.err
    .println("警告: DbConnectionManager.getConnection() 获得数据库链接失败.\r\n\r\n链接类型:"
    + dbClassName
    + "\r\n链接位置:"
    + dbUrl
    + "\r\n用户/密码"
    + dbUser + "/" + dbPwd); // 在控制台上输出提示信息
    }
    return conn; // 返回数据库连接对象
    } /*
     * 功能:执行查询语句
     */
    public ResultSet executeQuery(String sql) {
    try { // 捕捉异常
    conn = getConnection(); // 调用getConnection()方法构造Connection对象的一个实例conn
    stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
    rs = stmt.executeQuery(sql); // 执行SQL语句,并返回一个ResultSet对象rs
    } catch (SQLException ex) {
    System.err.println(ex.getMessage()); // 输出异常信息
    }
    return rs; // 返回结果集对象
    } /*
     * 功能:执行更新操作
     */
    public int executeUpdate(String sql) {
    int result = 0; // 定义保存返回值的变量
    try { // 捕捉异常
    conn = getConnection(); // 调用getConnection()方法构造Connection对象的一个实例conn
    stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
    result = stmt.executeUpdate(sql); // 执行更新操作
    } catch (SQLException ex) {
    result = 0; // 将保存返回值的变量赋值为0
    }
    return result; // 返回保存返回值的变量
    } // 功能: 对数据库的增加、修改和删除的操作,布尔型
    public boolean executeUpdater(String sql) {
    int result = 0; // 定义保存返回值的变量
    try {// 捕捉异常
    conn = getConnection();// 调用getConnection()方法构造Connection对象的一个实例conn
    stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
    result = stmt.executeUpdate(sql);// 执行更新操作
    System.out.println("操作成功,所影响的记录数为" + String.valueOf(result));
    return true;
    } catch (SQLException e) {
    System.out.println(e.getMessage());
    return false;
    }
    } // 执行更新操作并返回新添加记录的自动编号值
    public int executeUpdate_id(String sql) {
    int result = 0; // 定义保存返回值的变量
    try {
    conn = getConnection();// 调用getConnection()方法构造Connection对象的一个实例conn
    stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
    result = stmt.executeUpdate(sql); // 执行更新操作,用于向数据表中插入数据
    /***************** 获取新添加记录的自动编号字段的值 **********************/
    String ID = "select @@IDENTITY as id";
    rs = stmt.executeQuery(ID);
    if (rs.next()) {
    int autoID = rs.getInt("id");
    result = autoID;
    }
    /******************************************************************/
    } catch (SQLException ex) {
    result = 0;
    }
    return result;// 返回保存返回值的变量
    } // 对map集执行动态UPDATE语句
    public void dynamicUpdate(Map<String, String> map, String sql) { try { // 捕捉异常
    conn = getConnection();
    prpdStmt = conn.prepareStatement(sql);
    prpdStmt.clearBatch();
    Iterator<Entry<String, String>> entryIt = map.entrySet().iterator();//a set view of the mappings contained in this map.
    while (entryIt.hasNext()) {
    Entry<String, String> entry = entryIt.next();
    prpdStmt.setString(1, entry.getValue());
    prpdStmt.setString(2, entry.getKey());
    prpdStmt.addBatch();
    }
    prpdStmt.executeBatch();//对批次进行更新 } catch (SQLException ex) {
    System.err.println(ex.getMessage()); // 输出异常信息
    }
    }

    // 执行动态DELETE语句
    public void dynamicDelete(String[] ids, String sql) { try { // 捕捉异常
    conn = getConnection();
    prpdStmt = conn.prepareStatement(sql);
    prpdStmt.clearBatch();
    for (int i = 0; i < ids.length; i++) {
    prpdStmt.setString(1, ids[i]);
    prpdStmt.addBatch();
    }
    prpdStmt.executeBatch();
    } catch (SQLException ex) {
    System.err.println(ex.getMessage()); // 输出异常信息
    }
    }
    /*
     * 功能:关闭数据库的连接
     */ public void close() {
    try { // 捕捉异常
    if (rs != null) { // 当ResultSet对象的实例rs不为空时
    rs.close(); // 关闭ResultSet对象
    }
    if (stmt != null) { // 当Statement对象的实例stmt不为空时
    stmt.close(); // 关闭Statement对象
    }
    if (conn != null) { // 当Connection对象的实例conn不为空时
    conn.close(); // 关闭Connection对象
    }
    if (prpdStmt != null) { // 当Connection对象的实例prpdStmt不为空时
    prpdStmt.close(); // 关闭Connection对象
    }
    } catch (Exception e) {
    e.printStackTrace(System.err); // 输出异常信息
    }
    }}
      

  5.   

    不用贴源代码我们要看e.printStackTrace(System.err); // 输出异常信息,也就是在你的编译器eclipse执行的时候底下的一大推洋文。
      

  6.   

    额,前两天有的,改代码之后运行没有在Console提示错误信息了,但数据都没有写入数据库
      

  7.   

    链接类型:null
    链接位置:null
    用户/密码null/null
    java.lang.NullPointerException
    2012-12-24 12:06:30 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet jsp threw exception
    java.lang.NullPointerException
    at org.apache.jsp.wishes_jsp.getWishes(wishes_jsp.java:39)
    at org.apache.jsp.wishes_jsp._jspService(wishes_jsp.java:150)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:619)
      

  8.   

    Quote: 引用 楼主 tyq307305 的回复:

    数据库wishes已建好的,就是jsp一直连接不上数据库,不能写入和读取数据
    Quote:

    都说不能连接数据库了,肯定不能执行读写操作了。
    调试下,看 conn = ConnDB.getConnection(); 能不能取到连接。
    贴出异常日志。
      

  9.   

    不懂解读异常信息,这里是连接代码,咋测试<%! String getWishes() throws SQLException{
    JSONArray array = new JSONArray();
    String sql = "select id,username,wish,wishtime,colorsuit from wishes";
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try{
    conn = ConnDB.getConnection();
    pstmt = conn.prepareStatement(sql);
    rs = pstmt.executeQuery();
    while(rs.next()){
    JSONObject obj = new JSONObject();
    obj.put("id",rs.getString(1));
    obj.put("username",rs.getString(2));
    obj.put("wish", rs.getString(3));
                obj.put("wishtime", rs.getString(4));
                obj.put("colorsuit", new Integer(rs.getInt(5)));
                array.add(obj);

    }
    }catch(Exception e){
     System.out.println(e.toString());
    }finally{
    rs.close();
    pstmt.close();
    conn.close();   
    }
    return array.toString();

    }

    void addWish(String username,String wish,String color) throws SQLException{
    String sql = "insert into wishes(username,wish,wishtime,colorsuit) values(?,?,now(),?)";
    Connection conn = null;
    PreparedStatement pstmt = null;
    try{
    conn = ConnDB.getConnection();
    pstmt = conn.prepareStatement(sql);
    pstmt.setString(1,username);
    pstmt.setString(2,wish);
    pstmt.setString(3,color);
    pstmt.executeUpdate();
    }catch(Exception e){System.out.println(e.toString());
    }finally{
    pstmt.close();
    conn.close();
    }
    }
    String getDBTime() throws SQLException{
    String dbTime = "";
    String sql = "select now()";
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try{
    conn = ConnDB.getConnection();
    pstmt = conn.prepareStatement(sql);
    rs = pstmt.executeQuery();
    if(rs.next()){
    dbTime = rs.getString(1);

    }
    }catch(Exception e){
    System.out.println(e.toString());
    }finally{
    rs.close();
    pstmt.close();
    conn.close();

    }
    return dbTime;
    }
     %>
      

  10.   


    链接类型:null
    链接位置:null
    用户/密码null/null
    java.lang.NullPointerException
    空指针异常,数据库连接类有问题,连接的配置没有配,至少用户名密码没配
      

  11.   

    在赋给用户名和密码private static String propFileName = "/com/dao/connDB.properties"; // 指定资源文件保存的位置
    private static Properties prop = new Properties(); // 创建并实例化Properties对象的实例
    private static String dbClassName="com.mysql.jdbc.Driver";// 定义保存数据库驱动的变量
    private static String dbUrl= "jdbc:mysql://localhost:3306/mytest";
    private static String dbUser="root";
    private static String dbPwd="root";之后提示
    java.lang.NullPointerException
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at com.dao.ConnDB.getConnection(ConnDB.java:43)
    at org.apache.jsp.wishes_jsp.getWishes(wishes_jsp.java:23)
    at org.apache.jsp.wishes_jsp._jspService(wishes_jsp.java:150)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:619)
    警告: DbConnectionManager.getConnection() 获得数据库链接失败.链接类型:null
    链接位置:com.mysql.jdbc.Driver
    用户/密码root/root
    java.lang.NullPointerException
    2012-12-24 13:10:55 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet jsp threw exception
    java.lang.NullPointerException
    at org.apache.jsp.wishes_jsp.getWishes(wishes_jsp.java:39)
    at org.apache.jsp.wishes_jsp._jspService(wishes_jsp.java:150)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:619)
      

  12.   


        at com.dao.ConnDB.getConnection(ConnDB.java:43)ConnDB第43行出错。
      

  13.   

    Class.forName(dbClassName).newInstance(); // 装载数据库驱动
    这里吗? 我按15楼的提示加了用户名密码之后可以显示数据库的数据了,也就是实现了读取,但没有写入进去,在数据库没看到新插入的数值
      

  14.   

    private static String dbClassName="com.mysql.jdbc.Driver";// 定义保存数据库驱动的变量
    不知道你的工程是否引入mysql数据库的jar包,及引入“com.mysql.jdbc.Driver”这个包以及其下的.class文件
      

  15.   

    也许你的insert没有提交,加上conn.commit(); 试试
     void addWish(String username,String wish,String color) throws SQLException{
            String sql = "insert into wishes(username,wish,wishtime,colorsuit) values(?,?,now(),?)";
            Connection conn = null;
            PreparedStatement pstmt = null;
            try{
                conn = ConnDB.getConnection();
                pstmt = conn.prepareStatement(sql);
                pstmt.setString(1,username);
                pstmt.setString(2,wish);
                pstmt.setString(3,color);
                pstmt.executeUpdate();
                conn.commit();   //加上这句试试
            }catch(Exception e){System.out.println(e.toString());
            }finally{
            pstmt.close();
            conn.close();
            }
        }
      

  16.   

    依旧不行,数据库的列名有{ id,username,wish,wishtime,colorsuit}已经手动插入的数据insert into wishes(id,username,wish,wishtime,color) values (1,'hello','you',2012/12/12,4) 
    这样一打开wishes.html就显示数据库的内容
      

  17.   


     String sql = "insert into wishes(username,wish,wishtime,colorsuit) values(?,?,now(),?)";
    这个没有加id,需要设置id,估计id是主键
      

  18.   

    嗯,建数据库的时候设置了id为主键的。String sql = "insert into wishes(id,username,wish,wishtime,colorsuit) values(?,?,?,now(),?)";
    插入id后,但wishes.html页面只有username,wish,和colorsuit的选项,时间和id都没有,不会像读取数据库内容显示时间
      

  19.   

    是不是那个sql语句中的now()引发的错误啊,还是用p.setDate(parameterIndex, x)来为时间赋值吧。
      

  20.   

    你的数据库日期是以string形式保存的
    wishtime可以这样解决
    String sql = "insert into wishes(id,username,wish,wishtime,colorsuit) values(?,?,?,date_format(now(), ''%Y/%M/%D''),?)";
    id有三种解决方案
    1.从数据库查最大的id,然后+1
    2.数据库自增序列
    3.保存到另一个表中
      

  21.   

    alter table wishes change id id int primary key auto_increment;
    现在数据库那边执行这条语句,然后用java插入时候不插id使用自增列
     "insert into wishes(username,wish,wishtime,colorsuit) values(?,?,date_format(now(), ''%Y/%M/%D''),?)";
      

  22.   

    都按你说的做了,依旧没有写入到wishes表里面
      

  23.   


    String sql = "insert into wishes(id,username,wish,wishtime,colorsuit) values(?,?,?,now(),?)";改为:String sql = "insert into wishes(id,username,wish,wishtime,colorsuit) values(?,?,?,?,?)";代码如下:
    void addWish(String username,String wish,String color) throws SQLException{
            String sql = "insert into wishes(username,wish,wishtime,colorsuit) values(?,?,?,?)";
            Connection conn = null;
            PreparedStatement pstmt = null;
            try{
                conn = ConnDB.getConnection();
                pstmt = conn.prepareStatement(sql);
                pstmt.setString(1,username);
                pstmt.setString(2,wish);
                pstmt.setString(3,Calendar.getInstance().getTime());
                pstmt.setString(4,color);
                pstmt.executeUpdate();
                conn.commit();   //加上这句试试
            }catch(Exception e){System.out.println(e.toString());
            }finally{
            pstmt.close();
            conn.close();
            }
        }
      

  24.   

    呃  
    应该是pstmt.setDate(1, new Date(Calendar.getInstance().getTimeInMillis()));做下异常处理,好久没写这方面的jsbc代码了- -!
      

  25.   


    //关于添加数据的代码改成这样试试
    void addWish(String username,String wish,String color) throws SQLException{
            String sql = "insert into wishes(username,wish,wishtime,colorsuit) values(?,?,?,?)";
            Connection conn = null;
            PreparedStatement pstmt = null;
            try{
                conn = ConnDB.getConnection();
                pstmt = conn.prepareStatement(sql);
                pstmt.setString(1,username);
                pstmt.setString(2,wish);
                pstmt.setDate(3,new Date(Calendar.getInstance().getTimeInMillis()));
                pstmt.setString(3,color);
                pstmt.executeUpdate();
            }catch(Exception e){System.out.println(e.toString());
            }finally{
            pstmt.close();
            conn.close();
            }
        }
      

  26.   

    在Calendar 提示Calendar cannot be resolved。 要用到日历插件?
      

  27.   

    前提是lz要将主键id字段设为自动增长的
      

  28.   

    嗯 主要是在程序中把时间添加进去,不用数据库的时间函数now()
      

  29.   

    或者这样吧:pstmt.setDate(1, new Date(new java.util.Date().getTime()));
      

  30.   

    void addWish(String username,String wish,String color) throws SQLException{
            String sql = "insert into wishes(username,wish,wishtime,colorsuit) values(?,?,?,?)";
            Connection conn = null;
            PreparedStatement pstmt = null;
            try{
                conn = ConnDB.getConnection();
                pstmt = conn.prepareStatement(sql);
                pstmt.setString(1,username);
                pstmt.setString(2,wish);
                pstmt.setDate(3,new Date(new java.util.Date().getTime())); 
                pstmt.setString(3,color);
                pstmt.executeUpdate();
            }catch(Exception e){System.out.println(e.toString());
            }finally{
            pstmt.close();
            conn.close();
            }
        } 
      

  31.   

    用了你的也不得。
    数据库一直都是自己手动从mysql插入的一条数据,不能从java里面写入进去。
      

  32.   

    初步解决了,还有请问下面这写代码哪里出错了么,只实现了password写入数据库,usrid的值是null
     <%!
       public static final String DBDRIVER = "com.mysql.jdbc.Driver";
       public static final String DBURL = "jdbc:mysql://localhost:3306/users";
       public static final String DBUSER = "root";
       public static final String DBPASS = "root";
      
       %>
        <%
        Connection conn = null;
        PreparedStatement pstmt = null;
        boolean flag = false;
        String name = null;
        String id=request.getParameter("userid");
        String password=request.getParameter("password");
        %>
         <%
      
         try{
         Class.forName(DBDRIVER);
         conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
         String sql="insert into user(userid,password) values(?,?)";
         pstmt = conn.prepareStatement(sql);
         pstmt.setString(1,id);
    pstmt.setString(2,password);
    pstmt.executeUpdate();
         }catch(Exception e){System.out.println(e);}
         finally{
         try{
         pstmt.close();
         conn.close();
         }catch(Exception e){
        
         }
         }
        
         %>
      

  33.   

    jsp中少写代码,看着不难受么,userid为空?先测一下你那个userid传过来了么有
      

  34.   

    <%
           Connection conn = null;
           PreparedStatement pstmt = null;
           boolean flag = false;
           String name = null;
           String id=request.getParameter("userid");
           String password=request.getParameter("password");
           //添加检测语句   看看参数是否传递过来了
           System.out.println("id=" + id + "  password=" + password);
        %>