JDBC 通過讀取配置文件 鏈接數據庫


一    准備工作

1  安裝 MySQL  

2  下載JDBC所需要的包

3   安裝好JDK

二   操作步驟

1  創建一個web項目,把對應的包和配置文件放在適當的位置,通常情況如下

 jdbc.properties里面的內容

Driver=com.mysql.jdbc.Driver  驅動名字 JDBC驅動: 
url
=jdbc:sqlserver://+數據庫地址+;DatabaseName=數據庫名字
userName=用戶名
password
=密碼

 

2 在類里面去讀取jdbc.properties 的內容 以及書寫  鏈接數據庫 關閉數據庫 的方法

package com.bowei.utl;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JdbcUtl {
    // 數據庫驅動
    private static String Driver = "";
    // 數據庫地址
    private static String url = "";
    // 數據庫用戶名
    private static String userName = "";
    // 數據庫密碼
    private static String password = "";
  static {
        Properties p = new Properties();
        try {
            // 通過相對路徑加載文件
            String path=(Thread.currentThread().getContextClassLoader().getResource("").getFile()).substring(1);
            path=java.net.URLDecoder.decode(path,"utf-8");
            path=path.replace('/', '\\'); // 將/換成\  
            path=path.replace("file:", ""); //去掉file:  
            path=path.replace("classes\\", ""); //去掉class\   
            path+="sof/jdbc.properties";  //路徑
            p.load(new FileInputStream(new File(path)));
            // 用getProperty方法通過關鍵字獲取信息
            Driver = p.getProperty("Driver");
            url = p.getProperty("url");
            userName = p.getProperty("userName");
            password = p.getProperty("password");
          
            
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
//get set
    public static String getDriver() {
        return Driver;
    }

    public static void setDriver(String driver) {
        Driver = driver;
    }

    public static String getUrl() {
        return url;
    }

    public static void setUrl(String url) {
        JdbcUtl.url = url;
    }

    public static String getUserName() {
        return userName;
    }

    public static void setUserName(String userName) {
        JdbcUtl.userName = userName;
    }

    public static String getPassword() {
        return password;
    }

    public static void setPassword(String password) {
        JdbcUtl.password = password;
    }
    // 獲取數據庫連接
    public static Connection getConn() {
        Connection conn = null;
        try {
            // 加載驅動
            Class.forName(Driver);
            // 獲取數據庫連接
            conn = DriverManager.getConnection(url, userName, password);

        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        return conn;
    }

    // 關閉數據庫資源
    public static void closeAll(ResultSet rs, Statement stat, Connection conn) {
        /* 分別按順序關閉數據庫的結果集資源,Statement 對象資源以及Connection 連接數據庫對象 */
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (stat != null) {
            try {
                stat.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }
}

 

下面是增刪查改的方法:(此處省略的學生類的代碼,自己寫)

insert

 1 private static int insert(Student student) {
 2     Connection conn=JdbcUtl.getConn();
 3       Statement st=null;
 4       ResultSet rs = null;
 5     int i = 0;
 6     String sql = "insert into students (Name,Sex,Age) values(?,?,?)";
 7     PreparedStatement pstmt;
 8     try {
 9         pstmt = (PreparedStatement) conn.prepareStatement(sql);
10         pstmt.setString(1, student.getName());
11         pstmt.setString(2, student.getSex());
12         pstmt.setString(3, student.getAge());
13         i = pstmt.executeUpdate();
14         pstmt.close();
15     }  finally {
16             JdbcUtl.closeAll(rs, st, conn);//釋放資源
17         }
18     return i;
19 }

update

 1 private static int update(Student student) {
 2Connection conn=JdbcUtl.getConn();

3 int i = 0;
4
String sql = "update students set Age='" + student.getAge() + "' where Name='" + student.getName() + "'";
5
PreparedStatement pstmt;
6
try {
7
pstmt = (PreparedStatement) conn.prepareStatement(sql);
8
i = pstmt.executeUpdate();
9
System.out.println("resutl: " + i);

10 pstmt.close();

11 conn.close();

12 } catch (SQLException e) {

13 e.printStackTrace();

14 }

15 return i;

16 }

select

 1 private static Integer getAll() {
 2     Connection conn =JdbcUtl.getConn();
 3     String sql = "select * from students";
 4     PreparedStatement pstmt;
 5     try {
 6         pstmt = (PreparedStatement)conn.prepareStatement(sql);
 7         ResultSet rs = pstmt.executeQuery();
 8         int col = rs.getMetaData().getColumnCount();
 9         System.out.println("============================");
10         while (rs.next()) {
11             for (int i = 1; i <= col; i++) {
12                 System.out.print(rs.getString(i) + "\t");
13                 if ((i == 2) && (rs.getString(i).length() < 8)) {
14                     System.out.print("\t");
15                 }
16              }
17             System.out.println("");
18         }
19             System.out.println("============================");
20     } catch (SQLException e) {
21         e.printStackTrace();
22     }
23     return null;
24 }

delete

private static int delete(String name) {
    Connection conn = JdbcUtl.getConn();
    int i = 0;
    String sql = "delete from students where Name='" + name + "'";
    PreparedStatement pstmt;
    try {
        pstmt = (PreparedStatement) conn.prepareStatement(sql);
        i = pstmt.executeUpdate();
        System.out.println("resutl: " + i);
        pstmt.close();
        conn.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return i;
}

 


免責聲明!

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



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