日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java 类似datatable_在java中实现类似于.net中的DataTable,请各位看看,这种方法可行吗?...

發(fā)布時(shí)間:2025/3/17 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 类似datatable_在java中实现类似于.net中的DataTable,请各位看看,这种方法可行吗?... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

由于項(xiàng)目

說(shuō)句實(shí)話,我做起來(lái)非常之不爽快,各種不爽快,隨便什么地方都想和.net靠近,

所以晚上就寫了這個(gè)模擬DataTable的簡(jiǎn)單功能,初步測(cè)試是通過(guò)了,由于太晚了也不能優(yōu)化。

現(xiàn)在貼出代碼請(qǐng)各位大哥,幫物品看看,此種方法是否可行???

在java中實(shí)現(xiàn).net的datatable功能!!!

package cdu.yas.zfkp.util;

import java.util.List;

public class DataTable {

List row;

public DataTable(List r) {

row = r;

}

public List getRow() {

return row;

}

public void setRow(List row) {

this.row = row;

}

}

package cdu.yas.zfkp.util;

import java.util.List;

public class DataRow {

List col;

public DataRow(List c) {

col = c;

}

public List getCol() {

return col;

}

public void setCol(List col) {

this.col = col;

}

}

package cdu.yas.zfkp.util;

import java.util.Collection;

import java.util.HashMap;

import java.util.Map;

import java.util.Set;

public class DataColumn {

String key;

Object value;

public DataColumn(String k, Object v) {

key = k;

value = v;

}

public String getKey() {

return key;

}

public Object getValue() {

return value;

}

public void setKey(String key) {

this.key = key;

}

public void setValue(Object value) {

this.value = value;

}

}

package cdu.yas.zfkp.util;

public class SqlParameter {

public SqlParameter(String type, String value) {

this.type = type;

this.value = value;

}

String type;

String value;

public String getType() {

return type;

}

public String getValue() {

return value;

}

public void setType(String type) {

this.type = type;

}

public void setValue(String value) {

this.value = value;

}

}

public DataTable executeValue(String sql, SqlParameter[] p) {

Connection conn = DB.createConn();

PreparedStatement ps = DB.prepare(conn, sql);

List>> table = new ArrayList>>();

DataTable t = null;

try {

for (int j = 0; j < p.length; j++) {

// wl(p[j].getValue() + "--" + p[j].getType() + "--" + j);

if (p[j].getType().equals("int")) {

ps.setInt(j + 1, Integer.parseInt(p[j].getValue()));

}

if (p[j].type.equals("String")) {

ps.setString(j + 1, p[j].getValue());

}

if (p[j].type.equals("Date")) {

ps.setDate(j + 1, Date.valueOf(p[j].getValue()));

}

}

ResultSet rs = ps.executeQuery();

ResultSetMetaData rsmd = rs.getMetaData();

List row = new ArrayList();// 表所有行集合

List col = null;// 行所有列集合

DataRow r = null; // 單獨(dú)一行

DataColumn c = null;// 單獨(dú)一列

// 此處開始循環(huán)讀數(shù)據(jù),每次往表格中插入一行記錄

while (rs.next()) {

// 初始化行集合,

// 初始化列集合

col = new ArrayList();

// 此處開始列循環(huán),每次向一行對(duì)象插入一列

for (int i = 1; i <= rsmd.getColumnCount(); i++) {

String columnName = rsmd.getColumnName(i);

Object value = rs.getObject(columnName);

// 初始化單元列

c = new DataColumn(columnName, value);

// 將列信息加入列集合

col.add(c);

}

// 初始化單元行

r = new DataRow(col);

// 將行信息降入行結(jié)合

row.add(r);

}

// 得到數(shù)據(jù)表

t = new DataTable(row);

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(ps);

DB.close(conn);

}

return t;

}

最后的測(cè)試方法

private void wl(String s) {

System.out.println(s);

}

@Test

public void testSql() throws SQLException {

DB db = new DB();

SqlParameter[] p = new SqlParameter[1];

p[0] = new SqlParameter("int", "1");

String sql = "select * from kpxz where kpxzbh!=?";

DataTable table = db.executeValue(sql, p);

for (DataRow row : table.getRow()) {

for (DataColumn col : row.getCol()) {

System.out.print(col.getKey() + ":" + col.getValue() + "--");

}

wl("");

}

}

總結(jié)

以上是生活随笔為你收集整理的java 类似datatable_在java中实现类似于.net中的DataTable,请各位看看,这种方法可行吗?...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。