使用反射和泛型手寫DBUtils

2021-10-08 13:10:43 字數 1332 閱讀 8476

本案例中使用的是c3p0連線池,其他連線池也差不多

實體類的屬性名要與資料庫表名字段一致

datasource 一定是靜態的要不然每new一次就會建立一些連線,知道資料庫連線滿,資料庫會拒絕連線

public

class

dbutils

} resultset rs = ps.

executequery()

;// 獲取元資料

resultsetmetadata rsmetadata = rs.

getmetadata()

;// 獲取記錄

while

(rs.

next()

)}catch

(exception e)

finally

list.

add(obj);}

}catch

(sqlexception throwables)

return list;

}}

附錄:c3p0配置

配置檔名:c3p0-config.xml(必須相同,放在classpath下)

<

?xml version=

"1.0" encoding=

"utf-8"

?>

<

default

-config>

"driverclass"

>com.mysql.cj.jdbc.driver<

/property>

"jdbcurl"

>

jdbc:mysql:

//localhost:

3306

/test

<

/property>

"user"

>root<

/property>

"password"

>root<

/property>

"initialpoolsize"

>

5<

/property>

"maxpoolsize"

>

20<

/property>

"minpoolsize"

>

5<

/property>

"maxidletime"

>

5<

/property>

<

/default

-config>

<

/c3p0-config>

泛型和反射

泛型允許程式設計師在 中將變數或引數的型別,先用 型別佔位符 來代替,等到允許的時候再根據傳入的 類 來代替 泛型是指帶型別引數的類,而不是引數本身。類 方法 結構 介面都可定義為泛型 可以定義多個引數 public class person 例項化乙個引用引數型別的泛型,它的記憶體分配的大小是一樣...

使用泛型和反射實現IDataReader轉實體

region 使用反射和泛型實現idatareader向實體的轉化 擴充套件方法 使用反射和泛型實現idatareader向實體的轉化 擴充套件方法 public static class readerhelper return model catch exception endregion reg...

泛型反射技巧

1 如何獲得乙個封閉構造型別 closed constructed type 的type物件?假設有如下的型別 class testtype t class testtype t,u 如果要獲得封閉構造型別的type物件,那麼只需要用c 的typeof運算子,或者vb的gettype運算子作用於具體...