??????這兩天在回來(lái)寫一些業(yè)務(wù)代碼的時(shí)候,發(fā)現(xiàn)需要一個(gè)需要獲得表的記錄數(shù),其實(shí)可以通過(guò)循環(huán)獲得,不過(guò),那也是實(shí)在效率低的可憐。因?yàn)橹皼](méi)有用過(guò),現(xiàn)在用起來(lái),還真是有點(diǎn)小問(wèn)題,起初使用JDBC,都是使用 預(yù)編譯方式PreparedStatement執(zhí)行SQL語(yǔ)句的,發(fā)現(xiàn)rs.last()不能用,那當(dāng)然rs.getRow()也得不到數(shù)據(jù)記錄數(shù)啦。然后問(wèn)了朋友半天,發(fā)現(xiàn)還有個(gè) Statement ,蠻好用的,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的一般查詢。
????? 一、不帶參的:
??????Statement stmt=con.createStatement();
??????ResultSet rs=stmt.executeQuery("select * from DBTableName");?
????? 以上這種方式是可行的,但是就需要獲得記錄數(shù)來(lái)說(shuō),這個(gè)實(shí)現(xiàn)起來(lái)恐怕還是有點(diǎn)麻煩,那么就需要來(lái)個(gè)帶參的:Statement stmt =?
????? con.createStatement(?ResultSet.TYPE_SCROLL_INSENSITIVE,?ResultSet.CONCUR_READ_ONLY);
????? ResultSet rs=stmt.executeQuery("select * from DBTableName");?
????? 這樣就能夠很輕松的得到一個(gè)記錄集行數(shù)了。
????? 至于以上取值方式和PreparedStatement是一樣的,就不說(shuō)了。。。
????? 具體的實(shí)現(xiàn)方式:只要把連接驅(qū)動(dòng)修改一下,就可以直接運(yùn)行。我睡覺(jué)去了。。
????? 如果要看具體點(diǎn)的可以點(diǎn)擊這里啦...

?2

?3

?4

?5

?6

?7

?8

?9



10

11

12



13

14

15

16

17

18



19

20

21



22

23

24

25



26

27

28

29

30

31



32

33

34

35

36

37



38

39

40

41

?