當前位置:首頁 » 編程語言 » javasql返回list
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

javasql返回list

發布時間: 2023-01-11 17:51:26

① JAVA如何用Hibernate執行原生sql返回List

//原生sql查詢可以使用createsqlquery(string
sql)方法
下面代碼表示查詢所有的用戶
list
users=session.createsqlquery("select
*
from
user").list();

② java 獲取SQL查詢語句返回的結果

step1:構造連接
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/db","root","123");

step2:構造語句
String sql = "select username,password from t_user where username=?";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, "zhangshan"); //給SQL的"?"(問號)傳值。

step3:執行查詢
ResultSet rs = stmt.executeQuery(); //rs就是SQL查詢語句返回的結果集

step4:處理結果(java 獲取SQL查詢語句返回的結果)
List list = new ArrayList();
//遍歷結果集,這樣寫就可以了,就是一個循環,有多少條記錄,這里就會循環多少次,
//一次就是一條記錄,想像一下就像一個表的一條記錄
//在這里可以做查詢出來的數據處理,可以封裝成對象之類的(就是把值給它)
if(rs.next()) { //遍歷結果集,這樣寫就可以了
User u = new User();
String username = rs.getString("username");
String address = rs.getString("password ");
u.setUsername(username);
u.setAddress(address);
list.add(u);
}
//上面這個例子意思是,把每一條記錄封裝成了一個User對象,然後這些User對象都放存入到了一個list

step4:關閉連接等

③ 關於java讀取sql,得到的結果list的問題。。。

package com.accp.bbs.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class BaseDao{
public final static String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
public final static String URL = "jdbc:sqlserver://localhost:1433;DataBaseName = bbs";
public final static String DBNAME = "sa";
public final static String DBPASS = "sa";
public static Connection getConn() throws ClassNotFoundException, SQLException {
Class.forName(DRIVER);
Connection conn = DriverManager.getConnection(URL, DBNAME, DBPASS);
return conn;
}
public List<Integer> getList(){
List<Integer> list= new ArrayList<Integer>();
String SQL="select Id from user";
try{
Connection conn = BaseDao.getConn();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(SQL);
while(rs.next()){
list.add(rs.getInt("Id"));
}
}catch(Exception e){
System.out.println("有異常");
}
return list;
}
public static void main(String[] args) {
BaseDao baseDao = new BaseDao();
List<Integer> list= baseDao.getList();
for(Integer i : list){
System.out.println(i);
}

}
}

④ 請教高手:java中 SQL查詢結果返回為List<Map<String,Object>>結果集順序問題

List<Map<String,Object>> list=..

for (int i=0;i<list.size(),i++)
{
Map map=(Map)list.get(i);

Iterator iterator = map.keySet().iterator();
while (iterator.hasNext())
{
String key = (String) iterator.next();
Object object = map.get(key);
}

}

⑤ java 用返回的list去查詢資料庫,返回list

分析你的邏輯應該如下:
1、查詢表1中符合條件的信息,獲取一個結果集合1;
2、基於結果集合1循環,檢索表2,獲取結果集合2。
如此,如果表1、表2間存在直接關聯關系(即直接使用結果集合1中的部分信息作為表2查詢的條件),那麼完全可以在後台將兩張表關聯查詢,這樣避免了通過java進行循環,在大數量級情況下會嚴重佔用內存。
如果表1,表2間沒有直接的關聯關系(即通過循環表1,判斷其中條件後按照其它的特定對照值去查詢表2),那麼仍然建議使用後台表關聯查詢,及將表1查詢的結果集按照不同的條件獲取的值轉換成對應的映射值後作為一個基準集合,然後將這個集合與表2關聯查詢即可。具體的sql語句,得根據你使用的資料庫和具體場景去編寫。

總之,此類情況,完全可以交由資料庫搞定,如果使用你現在的邏輯(即查詢表1,循環結果集1,然後查詢表2,獲取結果集2),雖然原則上沒有錯,但會增加很多內存開銷,在大數據量級的情況下,非常容易出現內存溢出的異常,並不作為合理的編碼方式。

⑥ java 獲取SQL查詢語句返回的結果

step1:構造連接x0dx0a Class.forName("com.mysql.jdbc.Driver"); x0dx0a Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/db","root","123"); x0dx0ax0dx0astep2:構造語句x0dx0aString sql = "select username,password from t_user where username=?"; x0dx0aPreparedStatement stmt = con.prepareStatement(sql); x0dx0astmt.setString(1, "zhangshan"); //給SQL的"?"(問號)傳值。x0dx0ax0dx0astep3:執行查詢x0dx0aResultSet rs = stmt.executeQuery(); //rs就是SQL查詢語句返回的結果集x0dx0ax0dx0astep4:處理結果(java 獲取SQL查詢語句返回的結果)x0dx0a List list = new ArrayList();x0dx0a //遍歷結果集,這樣寫就可以了,就是一個循環,有多少條記錄,這里就會循環多少次,x0dx0a //一次就是一條記錄,想像一下就像一個表的一條記錄x0dx0a //在這里可以做查詢出來的數據處理,可以封裝成對象之類的(就是把值給它)x0dx0a if(rs.next()) { //遍歷結果集,這樣寫就可以了x0dx0a User u = new User();x0dx0a String username = rs.getString("username"); x0dx0a String address = rs.getString("password "); x0dx0a u.setUsername(username);x0dx0a u.setAddress(address);x0dx0a list.add(u);x0dx0a } x0dx0a //上面這個例子意思是,把每一條記錄封裝成了一個User對象,然後這些User對象都放存入到了一個listx0dx0ax0dx0astep4:關閉連接等