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

sql解析java欄位

發布時間: 2023-08-14 05:45:09

1. java解析字元串(解析sql語句,得到需要查詢顯示的欄位名)。

在Sql語句前加上SET FMTONLY ON,再執行Sql語句,該設置只將元數據返回給客戶端,可以用於測試響應的格式,而不必實際執行查詢.有了返回的表結構,還怕得到不到要查詢的欄位
例:
SET FMTONLY ON;
SELECT f_spbm,f_spmc as '名稱' FROM 表1;
SET FMTONLY OFF;

2. java解析sql語句是實現不了的

哈哈,樓主沒文化了。這個是需要詞法解析和語法解析的。總體的思路是設計一個分詞器,按規則將語句進行分詞。例如,關鍵字用1表示,字元串用2表示,當分詞到 select時,標識1,分詞到'select'時標識為2。然後語法解析器用來分析怎麼樣的詞法組合才合理,需要構造語法樹等。

整體來說還是很復雜的,但是是完全可以實現的。

最後推薦個很好的java實現: JavaCC

3. java語句中取得sql中的一個欄位的值

......
ResultSet rs = stmt.executeQuery(sql);
String priceType = null;
if(rs.next()) {
priceType = rs.getString("value");
......
}

4. java用sql語句動態的往表裡面添加欄位,之後怎麼能動態的讀寫新欄位的數據

用SQL語句添加表欄位:alter table 表名add 欄位名 欄位類型;
用select name from syscolumns where id=object_id(表名)查找出所有的表欄位。然後再使用SELECT 查找到的欄位 from 表名。
使用ResultSet動態讀取資料庫數據。ResultSet 是一個迭代模式的動態連接容器。迭代模式的容器遍歷方式:

while(rs.next()){
//循環內容
}
rs.next()返回值是一個布爾值,表示迭代容器中是否還有下一條數據,即在迭代過程中是否已經到結尾。直到迭代集合中再無數據rs.next()返回false;

5. 如何在java獲得從sql中查到數據的欄位名

JDBC得到結果集 resultSet以後可以得到所有的欄位名,欄位類型,及數據。建議查看JDK中的API文檔,ResultSet這個類。API已經上傳

6. java 怎麼用正則表達式解析sql中的表名,已有半成品,求改善

Stringstr="from\s+(.*)\s+where?";
Stringsql="select*fromtable,table2wherea=b";
Patternp=Pattern.compile(str);
Matchermatcher=p.matcher(sql);
while(matcher.find()){
Stringstring=matcher.group(1);
System.out.println(string);
}

7. 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:關閉連接等