java代碼對(duì)表的查詢 java實(shí)現(xiàn)查詢

用java寫一個(gè)程序,實(shí)現(xiàn)對(duì)SQL數(shù)據(jù)庫(kù)的動(dòng)態(tài)表進(jìn)行定時(shí)查詢

你這跟struts2沒(méi)關(guān)系,需要一個(gè)定時(shí)器,定時(shí)去跑你的查詢庫(kù)表代碼就OK了。

創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司,專注成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷推廣,空間域名,網(wǎng)站空間,網(wǎng)站運(yùn)營(yíng)有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問(wèn)題,請(qǐng)聯(lián)系創(chuàng)新互聯(lián)。

如果你的程序是需要將查詢結(jié)果展示在jsp頁(yè)面上,你需要在jsp頁(yè)面上使用js寫定時(shí)器代碼,參考SetInterval方法。

如果你的程序是桌面應(yīng)用程序,你可以使用java的定時(shí)器Timer。當(dāng)然,你的項(xiàng)目中如果使用了spring,那有更好的解決方案Quartz。

具體問(wèn)題要具體分析了。

用java連接mysql實(shí)現(xiàn)對(duì)表中的數(shù)據(jù)查找,插入,修改等功能,

JDBC操作MySQL數(shù)據(jù)庫(kù)的步驟

1、準(zhǔn)備MySQL數(shù)據(jù)庫(kù)驅(qū)動(dòng)包:mysql-connector-java-5.0.8-bin.jar,一個(gè)項(xiàng)目中只能存在一個(gè)版本的驅(qū)動(dòng)包

a、復(fù)制該驅(qū)動(dòng)包,粘貼到項(xiàng)目中

b、選中項(xiàng)目里的驅(qū)動(dòng)包,右鍵-Build Path-Add to Build Path

2、在類里寫代碼加載驅(qū):決定連接哪種數(shù)據(jù)庫(kù)

a、Class.forName("com.mysql.jdbc.Driver");

b、必須進(jìn)行異常處理:ClassNotFoundException

3、連接數(shù)據(jù)庫(kù)

a、Connection con=DriverManager.getConnection("連接字符串", "用戶名", "密碼");

b、連接字符串格式固定,不同數(shù)據(jù)庫(kù),格式不同:jdbc:mysql://要連接的計(jì)算機(jī)名稱:端口號(hào)/要連接的數(shù)據(jù)庫(kù)名稱

c、必須進(jìn)行異常處理:SQLException

4、拼寫要執(zhí)行的sql語(yǔ)句,必須是可以在數(shù)據(jù)庫(kù)中執(zhí)行的

5、創(chuàng)建執(zhí)行sql語(yǔ)句的對(duì)象

a、Statement stmt=con.createStatement();

b、注意:Statement必須來(lái)自于java.sql包中

6、執(zhí)行sql語(yǔ)句

a、執(zhí)行insert、update和delete語(yǔ)句:int row=stmt.executeUpdate(sql);返回影響行數(shù)

b、執(zhí)行查詢語(yǔ)句:ResultSet rs=stmt.executeQuery(sql);返回查詢結(jié)果

c、執(zhí)行任意sql語(yǔ)句(DDL、DCL、DML和DQL等)

7、對(duì)執(zhí)行結(jié)果進(jìn)行處理

a、執(zhí)行更新語(yǔ)句:判斷影響行數(shù)是否為0,0表示失敗,非0表示成功

b、對(duì)查詢結(jié)果進(jìn)行處理:

1) 結(jié)果集需要先移動(dòng)、后取值 :rs.next();int id=rs.getInt(1);

String name=rs.getString("loginName");

2) 結(jié)果集有多條時(shí),需要循環(huán)操作:

while(rs.next()){ System.out.println(rs.getInt(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t"+rs.getString(4)+"\t"+rs.getInt(5));

}

3) 不確定是否有查詢結(jié)果時(shí):if(rs.next()){說(shuō)明有查詢結(jié)果}else{沒(méi)有查詢結(jié)果}

4) 使用了聚合函數(shù),一定有查詢結(jié)果,查詢結(jié)果是一行一列:

rs.next();

int result=rs.getInt(1);

注意:結(jié)果集取值時(shí)取出的時(shí)查詢語(yǔ)句中包含的字段,與表中字段無(wú)關(guān)

9、關(guān)閉相關(guān)對(duì)象(先關(guān)閉結(jié)果集對(duì)象、在關(guān)閉執(zhí)行語(yǔ)句對(duì)象,最后關(guān)閉連接對(duì)象)

例如:執(zhí)行查詢語(yǔ)句

Scanner input=new Scanner(System.in);

System.out.print("請(qǐng)輸入登錄名: ");

String name=input.next();

System.out.print("請(qǐng)輸入密碼: ");

String pass=input.next();

try {

Class.forName("com.mysql.jdbc.Driver");

Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/userdb", "root", "root");

String sql="select COUNT(*) from UserInfo where loginName='"+name+"' and loginPass='"+pass+"'";

Statement stmt=con.createStatement();

ResultSet rs=stmt.executeQuery(sql);

rs.next();

int result=rs.getInt(1);

if(result!=0){

System.out.println("登錄成功!");

}else{

System.out.println("用戶名或密碼錯(cuò)誤,請(qǐng)重新登錄!");

}

rs.close();

stmt.close();

con.close();

} catch (ClassNotFoundException e) {

System.out.println("加載驅(qū)動(dòng)錯(cuò)誤:"+e.getMessage());

} catch (SQLException e) {

System.out.println("數(shù)據(jù)庫(kù)操作錯(cuò)誤:"+e.getMessage());

}

執(zhí)行添加、修改和刪除語(yǔ)句

try {

//加載驅(qū)動(dòng)

Class.forName("com.mysql.jdbc.Driver");

//連接數(shù)據(jù)庫(kù)

Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/userdb", "root", "root");

//拼寫要執(zhí)行的sql語(yǔ)句

String sql="update UserInfo set loginPass='111' where loginName='a'";

//String sql="insert UserInfo values(default,'test','test')";

//String sql="delete from UserInfo where loginName='a'";

//創(chuàng)建執(zhí)行語(yǔ)句對(duì)象

Statement stmt=con.createStatement();

//執(zhí)行

int row=stmt.executeUpdate(sql);

//處理結(jié)果

if(row==0){

System.out.println("修改失?。?);

}else{

System.out.println("修改成功!");

}

//關(guān)閉

stmt.close();

con.close();

} catch (ClassNotFoundException e) {

System.out.println("驅(qū)動(dòng)加載錯(cuò)誤:"+e.getMessage());

} catch (SQLException e) {

System.out.println("數(shù)據(jù)庫(kù)操作錯(cuò)誤:"+e.getMessage());

}

java中如何實(shí)現(xiàn)多表查詢?

多表查詢是屬于數(shù)據(jù)庫(kù)的知識(shí), 按照你說(shuō)的使用java進(jìn)行多表查詢那就要使用Hibernate,此ORM框架將數(shù)據(jù)庫(kù)的關(guān)系映射成了java代碼的形式。

通過(guò)配置映射文件(*.hbm.xml) 設(shè)置好關(guān)聯(lián)關(guān)系就可以了。也不知道你具體的表結(jié)構(gòu)是什么樣子的。

另外:比較簡(jiǎn)單的 你直接用sql代碼的左右連接也可以實(shí)現(xiàn)多表查詢, 甚至如果你基礎(chǔ)差點(diǎn),可以分成幾句sql語(yǔ)句, 逐步完成查找。 也不清楚你的表結(jié)構(gòu),具體代碼就不給出了。

本文題目:java代碼對(duì)表的查詢 java實(shí)現(xiàn)查詢
URL標(biāo)題:http://bm7419.com/article18/ddccjgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站策劃自適應(yīng)網(wǎng)站、建站公司、網(wǎng)站收錄、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名