JavaWeb -JDBC使用(數據庫-javaweb連接)


 

使用JDBC四個大類

1. DriverManager:管理jdbc驅動

2. Connection:連接(通過DriverManager產生)

3. Statement/PreparedStatement:增刪改executeUpdate()查executeQuery() 

 CallableStatement調用數據庫中 存儲過程/存儲函數 (皆通過Connection產生)

    statement()方法:增刪改executeUpdate()查executeQuery()

    PreparedStatement(sql語句)方法:同上+setXXX(postion,value)

4. Resultset:返回到結果集  (通過Statement等產生)

  方法:next():光標下移,判斷是否有下一條數據:true/false

     getXXX(字段名/位置):獲取具體的字段值  XXX為int/String/...

 

  Statement與PreparedStatement的區別:(推薦用PreparedStatement

  1. Statement:

    SQL語句

    executeUpdata(SQL)

  2. PreparedStatement

    sql(可能存在占位符‘?’)

    在創建PreparedStatement對象時,將sql預編譯PreparedStatement(sql)

    executeUpdata()

    setXXX(postion,value)  將sql中占位符?替換

 

 

JDBC訪問數據庫具體步驟

1. 導入驅動,加載具體驅動類

2. 與數據庫建立鏈接

3. 發送sql語句,執行

4. 處理結果集合(查)

 **補充:導入驅動和具體驅動類:

       驅動jar(x為版本號)       具體驅動類                 連接字符串

Oracle     ojdbc-x.jar            oracle.jdbc.OracleDriver             jdbc:oracle:thin:@localhost:1521:ORCL

MySQL    mysql-connector-java-x.jar    com.mysql.jdbc.Driver                 jdbc:mysql://localhost:3306/數據庫實例名

SQL server   sqljdbc-x.jar         com.microsoft.sqlserver.jdbc.SQLServerDriver  jdbc:microsoft:sqlserver:localhost:1433;databasename=數據庫實例名

 

代碼示例:

用java在數據庫中增刪改數據

package jdbcproject;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;


public class add {
    //sql數據庫連接字符串
    private static final String URL="jdbc:sqlserver://localhost:1433;databasename=javatest";
    //sql用戶名 和密碼 用作連接用
    private static final String USERNAME="sa";
    private static final String PWD="cc123nice";
    
    public static void update() throws ClassNotFoundException, SQLException {//增刪改
        //導入驅動,加載具體驅動類
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        //與數據庫建立鏈接
        Connection connection = DriverManager.getConnection(URL, USERNAME, PWD);
        //發送sql語句(增刪改)
        Statement stmt = connection.createStatement();
        //實現增刪改
        String sql="insert into test values('cc',13)"; 
//        String sql="update into test values('cd',13)";
//        String sql="delete table test"; 
        
        //返回增刪改幾條數據
        int num = stmt.executeUpdate(sql);
        if(num>0)
            System.out.println("操作成功");
        stmt.close();
        connection.close();
    }
    public static void main(String[] args) {
        try {
            update();
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
    }
}

 

 

JavaBean

1. 將jsp中的java代碼轉移到src的一個類中 稱之為javabean

2. 要求:

    public修飾類 ,public 無參構造

    所有屬性(如果有)都是private,且提供get/set方法(如果boolean 則為is方法)

3. 優點:   減輕復雜度

     提高復用率

     封裝業務邏輯 (相當於運用數據庫的表)

     封裝數據  (對應於數據庫的一張表)

 

代碼示例:

三板塊 Javabean /JSP/lib中包導入

      

 

1. first.logindao為JavaBean封裝了sql語句(命名規范與數據庫連接的類以dao結尾)

package first;

import java.sql.*;

public class logindao {
    //sql數據庫連接字符串
    private static final String URL="jdbc:sqlserver://localhost:1433;databasename=javatest";
    //sql用戶名 和密碼 用作連接用
    private static final String USERNAME="sa";
    private static final String PWD="cc123nice";
    
    public int login(String name,String pws) {
        Connection connection=null;
        Statement stmt=null;
        ResultSet rs=null;
        
        try {
            //導入驅動,加載具體驅動類
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            //與數據庫建立鏈接
            connection = DriverManager.getConnection(URL, USERNAME, PWD);
            //發送sql語句(增刪改)
            stmt = connection.createStatement();
   
            String sql="select count(*) from test where name='"+name+"' and pwd='"+pws+"'";
            rs=stmt.executeQuery(sql);
            int count=-1;
            if(rs.next()) {
                count = rs.getInt(1);
            }
            return count;                
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            return -1;
        } catch (SQLException e) {
            e.printStackTrace();
            return -1;
        }catch (Exception e) {
            e.printStackTrace();
            return -1;
        }   
    }
}

 

2. JSP中設置用戶輸入界面與跳轉結果界面

--login.jsp
<
%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Insert title here</title> </head> <body> <form action="check.jsp" method="post"> 用戶名:<input type="text" name="uname"><br/> 密碼: <input type="password" name="upwd"/><br/> <input type="submit" value="登陸"><br/> </form> </body> </html>

--check.jsp <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="first.logindao" %> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Insert title here</title> </head> <body> <% String name=request.getParameter("uname"); String pwd=request.getParameter("upwd"); logindao dao=new logindao(); int result=dao.login(name,pwd); if(result>0) out.print("登陸成功"); else if(result==0) out.print("用戶名/密碼有誤"); else out.print("代碼錯誤"); %> </body> </html>

 

3. 導入包-正常java文件導入包需要將包粘貼於根目錄下,右鍵buildpath-》configure build path(如下圖)

但對於javaweb項目中 若要導入包則只需放入lib文件夾下

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM