to leon50422(Renei) : 这样的建议我只能接受,但我不能去做,因为…………,所以我想知道我上面的程序应怎样去修改才能做到插入多条记录呢?
to wangwenyou(王文友) : 加同步?能具体一点 描述你的思想吗?
最好不要把数据更新这样的操作放到类的构造过程中,因为很容易导致异常,而创建一个类的实例时,我们是不希望有异常存在的。 你可以把它改为静态方法(最好是final static),然后加上同步,但是同一时段更新请求过多时会有延迟 public final static synchronized long update(....) { ...................... }
这样的建议我只能接受,但我不能去做,因为…………,所以我想知道我上面的程序应怎样去修改才能做到插入多条记录呢?
加同步?能具体一点 描述你的思想吗?
你可以把它改为静态方法(最好是final static),然后加上同步,但是同一时段更新请求过多时会有延迟
public final static synchronized long update(....)
{
......................
}
再次强调,不建议在程序内部处理异常,尽量把异常传出去,由专门的异常处理模块或类处理。
我是出学,这些都看不太懂,能根据我的代码举个例子吗?
String answernumber,answerdesction,answerweight;
try
{
for(int i = 0; i<tabrownum; i++){ answernumber = (String)answer.getValueAt(i,0); answerdesction = (String)answer.getValueAt(i,1); answerweight = (String)answer.getValueAt(i,2);
adda = AddAnswer.insert(qnotemp,answernumber,answerdesction,answerweight);
}
}
catch(ClassNotFoundException cnfe){
System.err.println(cnfe);
}
catch(SQLException sqle){
System.err.println(sqle.getMessage());
System.err.println(sqle.getSQLState());
System.err.println(sqle.getErrorCode());
}/////////向表中插入一条记录 class AddAnswer
{ public final static synchronized long insert(long qno,String anumber,String adesction,String aweight){
String url = "jdbc:odbc:Question";
String sql;
long answerno,weight,ano;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection connect = DriverManager.getConnection(url);
Statement state = connect.createStatement();
sql = "SELECT MAX(Index) FROM Answer";
ResultSet rs = state.executeQuery(sql);
rs.next();
ano = rs.getLong(1);
System.out.println(ano+" "+ano);
ano++;
answerno = new Long(anumber).intValue();
weight = new Long(aweight).intValue();
sql = "INSERT INTO Answer VALUES("+ano+","+qno+","+answerno+",'"+adesction+"',"+weight+")";
state.executeQuery(sql);
state.close();
connect.close();
}
}
to wangwenyou(王文友) :编译出错哦!
Question.java:222:incompatible types
found:long
required:addAnswer adda = addAnswer.insert(qnotemp,answernumber,answerdesction,answerweight);
for(int i = 0; i<tabrownum; i++){ answernumber = (String)answer.getValueAt(i,0); answerdesction = (String)answer.getValueAt(i,1); answerweight = (String)answer.getValueAt(i,2);
AddAnswer.insert(qnotemp,answernumber,answerdesction,answerweight);
}