問題是: 無法從表格中插入數據。從錯誤消息看來,它看起來沒有看到第一列。我知道列在那裏,數據被插入。我查了數據庫。我檢查了列Number
是否有一些隱藏的空間。不,它不。無法從數據庫檢索數據
試過: 調試每一行,一切都很好,一起插入數據到數據庫。 發現的問題幾乎是在代碼的末尾:
rs1.next();
String s1 = rs1.getString(1);
我試着寫
rs1.first();
String s1 = rs1.getString(1);
或
rs1.first();
String s1 = rs1.getString("Number");
下面我貼我的是正常工作的最終代碼我可以將數據插入表格並顯示在瀏覽器上。
package mypackage;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Collections;
import java.util.LinkedList;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Response;
@Path("/query")
public class CList {
private LinkedList<SMember> contacts;
public CList() {
contacts = new LinkedList();
}
@GET
@Path("/{CList}")
public Response addCLocation(@QueryParam("employeeId") String eId) throws SQLException{
String dataSourceName = "DBname";
String dbURL = "jdbc:mysql://localhost:3306/" + dataSourceName;
String result = "";
Connection con = null;
PreparedStatement ps0 = null, ps = null;
ResultSet rs = null, rs1 = null;
String id = eId;
try {
try{
//Database Connector Driver
Class.forName("com.mysql.jdbc.Driver");
//Connection variables: dbPath, userName, password
con = (Connection)
DriverManager.getConnection(dbURL,"someusername","somepassword");
System.out.println("We are connected to database");
//SQL Statement to Execute
System.out.print(id);
s = con.prepareStatement("SELECT 1 FROM CList WHERE Number=?");
s.setString(1, eId);
rs = s.executeQuery();
//Parse SQL Response
if(!rs.next()) {
SMember sm = new SMember();
ps = (PreparedStatement) con.prepareStatement("INSERT
INTO Contact_List (Number, First_Name, Last_Name, Phone_Number) " +
"VALUES (?,?,?,?)");
ps.setString(1,sm.getEmployeeID());
ps.setString(2,sm.getFirstName());
ps.setString(3,sm.getLastName());
ps.setString(4,sm.getPhone());
ps.executeUpdate();
ps = con.prepareStatement("SELECT Number, First_Name,
Last_Name, Phone_Number FROM CList
WHERE Number=" + eId);
rs1 = ps.executeQuery();
while(rs1.next()){
result = "[Added contact to contact list.
Number: " + rs1.getString(1) +
"][First_Name: " + rs1.getString(2) +
"][Last_name: " + rs1.getString(3) +
"][Phone_Number: " + rs1.getString(4) +
"]\n";
}
}
else {
result = "[Contact is already on the list]";
}
}
catch(Exception e) {
System.out.println("Can not connect to database");
e.printStackTrace();
}
finally {
//Close Database Connection
ps0.close();
ps.close();
con.close();
}
}
catch(Exception e) {
System.out.println(e);
}
//Return the Result to Browser
return Response.status(1000).entity(result).build();
}
表
1234號是唯一的,它是一個數字我想。
你看到號碼應該是唯一的。到目前爲止,我正在從SMember類中獲取數據,並且始終使用相同的數據。我的問題的目的只是爲了讓我幾秒前插入的信息。
此外,還有SMember類,我沒有發佈在這裏,並在其構造函數我初始化號碼,名字,姓氏和電話號碼。測試目的。 我做了所有建議的更改,但問題依然存在。
PM 77-1您是如何編輯它的?我不想在未來犯同樣的錯誤。 – user1282256