![](/img/trans.png)
[英]Accessing the Custom Object Return type from oracle pl/sql in java
[英]Getting Incorrect return in java accessing sql database
這是即時消息在Java中用於查詢數據庫的代碼
connect = DriverManager.getConnection (url, "user", "pass");
state = connect.createStatement();
String meetID = "SELECT GamerTag FROM backup";
ResultSet rs = state.executeQuery(meetID);
while(rs.next()){
System.out.println(rs.toString());
}
我沒有獲取數據庫中的行的值
com.mysql.jdbc.JDBC4ResultSet@108137c9
您正在打印Recordset對象的toString
方法的結果,該結果似乎可以打印出對象的名稱和哈希碼。
而是嘗試打印列的值。 也許使用getString
:
System.out.println(rs.getString("GamerTag"));
您期望rs.toString()做什么,如果您想獲取列值,則只會打印resultetObject的哈希,您應該這樣做
while(rs.next()){
System.out.println(rs.getString("yourFirstColumnName")+" "+
rs.getString("yourSecondColumnName")+" "+
rs.getString("yourThirdColumnName"));
}
確實,您應該使用PreparedStatement。 在您的情況下,雖然您沒有使用任何parameterizedQuery,但是使用PreparedStatement的主要好處之一是性能更高。 PreparedStatement已預先編譯。
在數據庫中,訪問計划也緩存在數據庫中,這使得數據庫執行使用准備好的語句編寫的參數查詢要比普通查詢快得多,因為它要做的工作較少。 您應該始終嘗試使用PreparedStatement。
所以你可以做這樣的事情
String query = "SELECT GamerTag FROM backup"
PreparedStatement st =connect.prepareStatement("query");
ResultSet rs = st.executeQuery();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.