java資料庫搜索
1. java 如何對某個資料庫中所有數據進行關鍵詞搜索並統計搜索所得結果的總數
select count(*) from tablename where 列 like '關鍵字1' or 列 like '關鍵字2';
意思就是查詢 tablename 表中的 列 內容包括 關鍵字1 或者包涵 關鍵字2 的 一共有多少數據。。 count 是查詢 受影響的 行數。 資料庫關鍵字。
2. 怎麼用JAVA把資料庫查詢結果顯示在網頁上
java從資料庫查詢結果顯示在網頁上,步驟燃蠢禪如下:第一步:連接資料庫,並取得皮塵查檔咐詢結果:importjava.sql.*;2.在JSP上顯示可以用EL表達式如${user.getName()},也可以用JAVA胸本,或都直接用out.print(user.getName());
3. 用java連接mysql實現對表中的數據查找,插入,修改等功能,
JDBC操作MySQL資料庫的步驟
1、准備MySQL資料庫驅動包:mysql-connector-java-5.0.8-bin.jar,一個項目中只能存在一個版本的驅動包
a、復制該驅動包,粘貼到項目中
b、選中項目里的驅動包,右鍵->Build Path->Add to Build Path
2、在類里寫代碼載入驅:決定連接哪種資料庫
a、Class.forName("com.mysql.jdbc.Driver");
b、必須進行異常處理:ClassNotFoundException
3、連接資料庫
a、Connection con=DriverManager.getConnection("連接字元串", "用戶名", "密碼");
b、連接字元串格式固定,不同資料庫,格式不同:jdbc:mysql://要連接的計算機名稱:埠號/要連接的資料庫名稱
c、必須進行異常處理:SQLException
4、拼寫要執行的sql語句,必須是可以在資料庫中執行的
5、創建執行sql語句的對象
a、Statement stmt=con.createStatement();
b、注意:Statement必須來自於java.sql包中
6、執行sql語句
a、執行insert、update和delete語句:int row=stmt.executeUpdate(sql);返回影響行數
b、執行查詢語句:ResultSet rs=stmt.executeQuery(sql);返回查詢結果
c、執行任意sql語句(DDL、DCL、DML和DQL等)
7、對執行結果進行處理
a、執行更新語句:判斷影響行數是否為0,0表示失敗,非0表示成功
b、對查詢結果進行處理:
1) 結果集需要先移動、後取值 :rs.next();int id=rs.getInt(1);
String name=rs.getString("loginName");
2) 結果集有多條時,需要循環操作:
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) 不確定是否有查詢結果時:if(rs.next()){說明有查詢結果}else{沒有查詢結果}
4) 使用了聚合函數,一定有查詢結果,查詢結果是一行一列:
rs.next();
int result=rs.getInt(1);
注意:結果集取值時取出的時查詢語句中包含的欄位,與表中欄位無關
9、關閉相關對象(先關閉結果集對象、在關閉執行語句對象,最後關閉連接對象)
例如:執行查詢語句
Scanner input=new Scanner(System.in);
System.out.print("請輸入登錄名: ");
String name=input.next();
System.out.print("請輸入密碼: ");
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("用戶名或密碼錯誤,請重新登錄!");
}
rs.close();
stmt.close();
con.close();
} catch (ClassNotFoundException e) {
System.out.println("載入驅動錯誤:"+e.getMessage());
} catch (SQLException e) {
System.out.println("資料庫操作錯誤:"+e.getMessage());
}
執行添加、修改和刪除語句
try {
//載入驅動
Class.forName("com.mysql.jdbc.Driver");
//連接資料庫
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/userdb", "root", "root");
//拼寫要執行的sql語句
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'";
//創建執行語句對象
Statement stmt=con.createStatement();
//執行
int row=stmt.executeUpdate(sql);
//處理結果
if(row==0){
System.out.println("修改失敗!");
}else{
System.out.println("修改成功!");
}
//關閉
stmt.close();
con.close();
} catch (ClassNotFoundException e) {
System.out.println("驅動載入錯誤:"+e.getMessage());
} catch (SQLException e) {
System.out.println("資料庫操作錯誤:"+e.getMessage());
}