1. 程式人生 > >是用JDBC從資料庫中獲取資料並以java物件返回

是用JDBC從資料庫中獲取資料並以java物件返回

/**
	 * 
	 * @param c
	 *            for example Person.class
	 * @param primaryKeys
	 *            primaryKeys為主鍵,引數順序和表中保持一致 如果id, name 為主鍵 類名為Person 則 getEntity(Person.class,1,"name")
	 * @return
	 */
	public static Object getEntity(Class c, Object... primaryKeys) {
		PreparedStatement ps = null;
		ResultSet rs = null;
		DatabaseMetaData dmd = null;
		Object obj = null;// 要返回的物件
		String tableName = c.getSimpleName().toLowerCase();// person 表的名字
		List primaryKeyNameList = new ArrayList();
		Field[] fields = c.getFields();// 獲取所有的屬性
		StringBuilder sql = new StringBuilder("select * from " + tableName
				+ " where ");
		try {
			obj = c.newInstance();
			dmd = getConnection().getMetaData();
			rs = dmd.getPrimaryKeys(null, null, tableName);
			while (rs.next()) {
				sql.append(rs.getObject(4) + "=?");
				sql.append(" and ");
				primaryKeyNameList.add(rs.getObject(4));// 將從表中獲取的 主鍵欄位存到 list中, 主鍵位於表中第幾列=rs.getString(5)
			}
			sql.delete(sql.length() - 4, sql.length());
			ps = (PreparedStatement) getConnection().prepareStatement(
					sql.toString());
			for (int l = 0; l < primaryKeyNameList.size(); l++) {
				ps.setObject(l + 1, primaryKeys[l]);
			}
			rs = ps.executeQuery();
			System.out.println(ps.toString().split(":")[1]);
			if (rs.next()) {
				for (int k = 0; k < fields.length; k++) {
					fields[k].set(obj, rs.getObject(k + 1));
				}
			}
			rs.close();
			ps.close();
			rs=null;
			ps=null;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			
		}
		return obj;
	}

相關推薦

JDBC資料庫獲取資料java物件返回

/** * * @param c * for example Person.class * @param primaryKeys * primaryKeys為主鍵,引數順序和表中保持一致 如果id, name

php資料庫獲取資料ajax傳送到前臺

1、資料庫的欄位: 2、php連線資料庫獲取資料庫的資訊放入json_encode($css);{檔案為:db.php} <span style="font-size:14px;"><?php $host="localhost"; $username=

1.簡單例項:ASP.NET下Echarts通過Ajax資料庫獲取資料

後臺:Test01.ashx.cs:從資料庫獲取資料,通過HTTP請求(HttpContext)實現和前臺資料傳遞json資料 using System; using System.Collections.Generic; using System.Linq; using

ASP.NET+Echarts+Ajax資料庫獲取資料

html <div class="panel-body"> <div id="signNum" style="height: 400px; width:

solr5.5之資料庫匯入資料建立索引

前面已經介紹了solr-5.5.0的安裝與部署,接下來我將分享solr-5.5.0資料匯入之從資料庫中匯入資料並建立索引的例子。由於本人也是剛剛接觸solr,不足之處,請大家多多見諒。solr和lucene版本更新太快了,版本之間的差異十分大。比如之前的版本中,在core中

Jmeter-資料庫獲取資料並作為變數傳輸

再今天重新學習,從資料庫中取資料,並作為變數傳到下一個請求中。 首先第一步要匯入mysql驅動包 一、新增JDBC Connection Configuration 設定連結 Database URL: jdbc:mysql:// 資料庫地址 /庫名 JDBC Driver class:com.my

資料庫查詢資料顯示到datagridview的兩種方法

第一種方法:利用SqlDataAdapter的Fill()方法,                      優點:可以不用考慮資料庫表中每一列的資料型別,將資料一次性匯入到表中;                      缺點:不能在查詢過程中編輯查詢的資料 strin

Django小專案--待辦清單(四)(表單獲取資料存入資料庫

首先進入主頁(要記得先進入虛擬環境並且通過python  mange.py runserver啟動本地伺服器),我們知道主頁匹配的網址是localhost:8000/todo/home,在瀏覽器上輸入並回車。 在頁面的右上角有一個新增待辦事項的按鈕,輸入內容並點選新

表格獲取資料在排序後按順序重新排列表格(Javascript)

數字排序出現問題 升序結果出現了一個大的數字反而在小數字的後面 function mySort(arr){ for(var x=0;x<arr.length-1;x++){ for(var y=x+1;y<arr.l

資料庫獲取資料寫入到Excel表

pom.xml檔案寫入程式碼,maven自動載入poi-3.1-beta2.jar &lt;!-- https://mvnrepository.com/artifact/poi/poi --&gt; &lt;dependency&gt;

spring-boot使用JDBC技術資料庫資料

直接上程式碼把 1,目錄結構 2,程式碼 結果:返回的是一個一維陣列。 如果把資料庫中所有資料以多維陣列形式返回,就要使用到map對映技術,如下所示: 第二種:設定資料庫帳號密碼的方法 第三鍾設定資料庫帳號密碼

c# 本地資料庫獲取資料圖表顯示

一. 本地mysql資料庫我的本地資料庫設計是這樣的資料庫伺服器名稱: restful_api使用表: locationusername: rootpassword: root後面資料庫連線部分請自行根據自己資料更改二. 實現過程資料模板基類:這個類就是用於get和set操作

Java程式碼網頁獲取資料(示例程式碼)

package com.mashensoft.net; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java

Spark StreamingKafka獲取資料進行實時單詞統計,統計URL出現的次數

1、建立Maven專案 2、啟動Kafka 3、編寫Pom檔案 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.or

資料庫讀取資料,建立XML檔案更新維護XML

public class OperateXML { /// <summary> /// 檔案全路徑 /// </summary> private string fullF

Kafka topic獲取資料在Storm進行分析

從Kafka topic中獲取資料 String zks = "x.x.x.x:2181,x.x.x.x:2181,x.x.x.x:2181"; String topic = "t

Pig指令碼Hiveload資料存入到Hbase

1、我們先建一個Hive表test01: create table test01(name String, age int, phone String,province String, city String) ROW FORMAT DELIMITED FIELDS TERMINATED B

hive獲取資料

MySQL中獲取資料 public RestMsg<Object> getZhen( HttpServletRequest request) { RestMsg<Object> rm = new RestMsg<Object>();

Java基礎-----Excel獲取資料生成shell指令碼

前言 java讀取Excel的驅動包: 連結:https://pan.baidu.com/s/1ejCR9sS2OUmttFYpQnJkKQ 提取碼:58rm 實現1: 從Excel中讀取表名,由於每個欄位會對應一個表名,故讀取的某列會有若干個連續的表名出現,所以用set集合

Spring+Quartz 資料庫獲取定時任務和定時時間,動態實現對定時任務的增刪改查

本文轉載自部落格:http://blog.csdn.net/wwkms/article/details/48851005 ----------------------------------------------------------------------------------------