mysql如何使用java在SQL中划分两列?
[http://i.stack.imgur.com/mCdLW.png]i我是java的初学者。。。。。我使用GUI制作了一个按钮,从SQL中的一个表中获取两列,然后我想将它们分割,并将结果放入同一个表中的一个新列中,我成功地建立了连接并创建了新列,我发现了一个代码,它帮助我获取了这两个列,并对它们进行了操作,然后将其放回同一个表中,但当我打开SQL时,我发现了该列,但它只包含“NULL”。。。。。当我运行我的代码时,它不会给我任何错误,还有我的按钮:
私有类处理程序\u c实现ActionListener{
public void actionPerformed(ActionEvent arg0) {
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3307/database_vf","root","");
conn.setAutoCommit(false);
Statement stmt1 = null;
stmt1= conn.createStatement();
String sql1 = "Alter table Rssi Add result double";
stmt1.executeUpdate(sql1);
PreparedStatement pst1 = null;
//Row row;
//Statement stmt11 = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
double i,j;
double array=0;
ResultSet rs = stmt1.executeQuery("SELECT a3, a4 FROM rssi");
while (rs.next()) {
i= rs.getInt("a3");
j= rs.getInt("a4");
if(j==0){array=0;}
else{array=((i/(j/10))-112);}
}
String query3="INSERT INTO rssi (result) VALUE ('"+array+"')";
pst1 = (PreparedStatement) conn.prepareStatement(query3);
pst1.execute();
conn.commit();
conn.close();
System.out.println("Success insert result to mysql table");
}
catch(ClassNotFoundException e){
System.out.println(e);
}catch(SQLException ex){
System.out.println(ex);
}
}
# 1 楼答案
我相信你的错误是有道理的
String query3=“插入rssi(结果)值(“+array+”)”
您必须输入值而不是值
字符串query3=“插入rssi(结果)值(“+array+”)”
编辑
我明白了:
首先,您一直在用出现的最后一个值替换i和j值,并在最后一个值之后进入数据库(我想这不是想法)。。。为了避免这种情况,你必须
进入While区块
其次。。。您正在创建新记录。。。如果您检查表中的数据。。。最后的记录在所有列中都将为空,结果中除外。。。 您必须更新每个记录,而不是插入新记录
请像这样尝试您的代码:
显然,在“从rssi中选择primaryKey、a3、a4”中,更改了primaryKey列的名称