进行的好好的毕业设计。。
改了一些函数,改了一些数据类型。
结果,就崩溃了
我的天哪,进行到现在,出现这种情况,这不是要我的命吗?我想哭

解决方案 »

  1.   

    没事,一个毕业设计嘛,你可以把他改回来,Debug调试一下就OK了。
      

  2.   

    记得保留每天的版本,出错的时候,在从前一天的开始呗。
    用winmerge比较一下那里改动了。
      

  3.   

    使用 eclipse开发的话,eclipse可以保留一定数量的历史版本,看看能不能恢复。
      

  4.   

    晕,这也让LZ你大呼小叫的。。把手机,QQ号发我,我来给你整~~
      

  5.   

    楼主,下次记得修改函数名,变量名的时候,要使用Eclipse自带的重构功能去修改,这样可以把整个工程中使用到这个名字的地方都修改,如果手动一个一个去改容易出错。
      

  6.   


    这是往数据库中插入数据的部分,大家帮我看下有什么地方不对?
    Thread thread = new Thread(new Runnable() {        
         public void run() 
         {
         Connection con = getConnection();
         Statement st;
                        try {                                               
                            st =con.createStatement(); 
                              String sql = " insert into user values (id,pwdFld,role,department,grade,ip)";
                              st.execute(sql);
                          }catch(Exception e){e.printStackTrace();}
                       finally{
                           try{
                             if (con != null) con.close();
                            }catch(Exception e){e.printStackTrace();}   
                          }
                  }        
             });
     thread.start();
    }
    //连接数据库
        public static Connection getConnection(){
         Connection con = null;
         try{
             Class.forName("com.mysql.jdbc.Driver");
                con = DriverManager.getConnection("jdbc:mysql://localhost/sms", "root", "");     
                System.out.println("数据库连接成功!");    
         }catch(Exception e){e.printStackTrace();}
         return con;
         }
      

  7.   

    String sql = " insert into user values (id,pwdFld,role,department,grade,ip)";
    ?????????
      

  8.   

    String sql = " insert into user values (id,pwdFld,role,department,grade,ip)";
    你的id,pwdFld,role,department,grade,ip都是变量吧?
    你把它们全引在字符串内就是字符串的内容了啊……
    应该这样
    String sql = " insert into user values ( "    +id+ ","+pwdFld+","+role+","+department+","+grade+","+ip+")";
    这样才能将对应的变量值传进字符串啊?……
    这样改应该没问题,我写过这种类似的代码。
      

  9.   

    经过修改,我已经可以往数据库中插入数据了,只是凡是汉字显示为“?”,我查了一下资料,是字符编码的问题,然后我在程序的执行SQL语句之前加入了一句:
    sql =new String(sql.getBytes( "utf-8" ),"ISO8859_1");  
    结果报错,我插入的这句话是不是不对啊? 
      

  10.   

    不是把sql语句的编码改掉
    在sql连接串后面加上类似 xxxxx?useUnicode=true&characterEncoding=utf-8
      

  11.   

    我试了:String sql = " insert into user values ('"+id+"','"+pwdFld+"','"+role+"','"+department+"','"+grade+"','"+ip+"')?useUnicode=true&characterEncoding=utf-8";
    报错:
    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 '?useUnicode=true&characterEncoding=utf-8' at line 1
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:3170)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:3099)
    at com.mysql.jdbc.Statement.execute(Statement.java:695)
    at Server.db$1.run(db.java:42)
    at java.lang.Thread.run(Thread.java:662)
      

  12.   

    不是这个地方
    连接数据库的语句
    jdbc:mysql://localhost:3306/yourdatabase??useUnicode=true&characterEncoding=utf-8"
      

  13.   

    按要求改了以后,字符编码部分没有错误了,可是却出来了其他的很奇怪的错误:
    java.sql.SQLException: Incorrect string value: '\xC3\xA6\xC2\x95\xC2\x99...' for column 'role' at row 1
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:3170)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:3099)
    at com.mysql.jdbc.Statement.execute(Statement.java:695)
    at Server.db$1.run(db.java:42)
    at java.lang.Thread.run(Thread.java:662)
      

  14.   

    弄错了 中间多了个?
    role数据是什么东西
      

  15.   

    role是注册中的一项:
    JLabel label4= new JLabel("身份:");
    label4.setBounds(30, 144, 80, 20);
    getContentPane().add(label4);
    String[] string0 = {"全体师生", "教师", "学生"};
    box1 = new JComboBox(string0);
    box1.setBounds(126,144,150,20);
        getContentPane().add(box1);box1中获取的值传到了role中role = user.getbox1();
      

  16.   

    检查下数据库的编码是不是utf-8 和连接字符串上面的编码保持一致
    调试下看role插入前的值是否是你需要的
      

  17.   

    zhouyuqwert
    非常非常谢谢你
    现在能够插入并正确显示数据了,剩下一个IP地址格式的问题了,我再好好看看。
      

  18.   

    在建表的时候就要把数据库的语言改了“jdbc:mysql://localhost:3306/yourdatabase??useUnicode=true&characterEncoding=utf-8";这句话以后你会记住的。如果你用的工具是myeclipse的话还会省力点。还有,数据库的插入的话,我个人觉得使用批处理会好一点。preparestatement,效率一点。这个写起来也简单一点。还有。学习下设计模式吧。如果你用的是eclipse或者myeclipse相应的地方函数或者数据类型改了得话。就会报错的。对了。要有对象的思想。慢慢来吧。Well done.
      

  19.   

    建个SVN把代码都备份吧,哈哈
      

  20.   

    哎,毕业设计,让人家把版本管理也用起来。 但那不治本啊,还是需要debug的,那到是要有人帮忙啊。