java連接數據庫

配置文件 /Stu_PMS/src/config/data.properties
  DRIVER=com.mysql.jdbc.Driver
  CONSTR=jdbc:mysql://127.0.0.1:3306/test
  USERNAME=root
  PASS=mysql
配置文件驅動 /Stu_PMS/src/com/config/ProMgr.java
package JDBC;
import java.util.*;
public class ProMgr {
    static Properties pro = new Properties();
      
    static {
          
        try{
            pro.load(ProMgr.class.getResourceAsStream("data.properties"));//配置文件位於同一個目錄下的寫法
            //配置文件位於不同目錄下的寫法:pro.load(ProMgr.class.getClassLoader().getResourceAsStream("config/data.properties"));
        }catch(Exception e){
            e.printStackTrace();
        }
          
    };
      
    public static String getProperty(String key){
        return pro.getProperty(key);
    }
      
    public static void main(String[] args)
    {
        System.out.println(getProperty("CONSTR"));
    }
}
  
數據庫驅動文件 /Stu_PMS/src/com/data/DB.java
package JDBC;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DB {
    public static Connection getConn(){
        Connection conn = null;
        String DRIVER = "com.mysql.jdbc.Driver"; 
        String CONSTR = ProMgr.getProperty("CONSTR");
        String USERNAME = ProMgr.getProperty("USERNAME");
        String PASS = ProMgr.getProperty("PASS");
        try {
            Class.forName(DRIVER);
            conn = DriverManager.getConnection(CONSTR,USERNAME,PASS);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }  
        return conn;
    }
      
    public static Statement getSta(Connection conn){
        Statement st = null;
        try {
            st = conn.createStatement();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return st;
    }
      
    public static ResultSet execQuery(Statement stmt,String sql){
        ResultSet rs = null;
        try {
            rs = stmt.executeQuery(sql);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return rs;
    }
      
    public static void close(Connection conn){
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
      
    public static void close(ResultSet rs){
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
      
    public static void close(Statement stmt){
        if(stmt!=null){
            try {
                stmt.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
      
    public static PreparedStatement getPrestat(Connection conn,String sql){
        PreparedStatement pstmt = null;
        try {
            pstmt = conn.prepareStatement(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return pstmt;
    }
      
}
調用示例
package JDBC;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
    public static void main(String[] args)
    {
        delete();
        //update();
        //add();
        //query();
    }
      
    static void  add()
    {
        int count;
        String sql = "insert into user(name,age) values(?,?)";
        Connection conn = DB.getConn();
        PreparedStatement pstmt = DB.getPrestat(conn, sql);
        try {
            pstmt.setString(1, "owen2");
            pstmt.setString(2, "21");
            count=pstmt.executeUpdate();
            System.out.println("影響條數爲:"+count);
      
        } catch (SQLException e) {
            DB.close(pstmt);
            DB.close(conn);
            e.printStackTrace();
        }finally{
            DB.close(pstmt);
            DB.close(conn);
        }
          
    }
      
    static void  query()
    {
        ResultSet rs = null;
        String sql = "select * from user where name=? and age=?";
        Connection conn = DB.getConn();
        PreparedStatement pstmt = DB.getPrestat(conn, sql);
        try {
            pstmt.setString(1, "劉書");
            pstmt.setString(2, "21");
            rs = pstmt.executeQuery();
            while(rs.next())
            {
                System.out.println("name:" + rs.getString("name") + "---age:" + rs.getString("age"));
            }
        } catch (SQLException e) {
            DB.close(rs);
            DB.close(pstmt);
            DB.close(conn);
            e.printStackTrace();
        }finally{
            DB.close(rs);
            DB.close(pstmt);
            DB.close(conn);
        }
          
    }
      
    static void  update()
    {
        int count;
        String sql = "update user set name=?,age=? where name=?";
        Connection conn = DB.getConn();
        PreparedStatement pstmt = DB.getPrestat(conn, sql);
        try {
            pstmt.setString(1, "owenupdate");
            pstmt.setString(2, "22");
            pstmt.setString(3, "owen");
            count=pstmt.executeUpdate();
            System.out.println("影響條數爲:"+count);
      
        } catch (SQLException e) {
            DB.close(pstmt);
            DB.close(conn);
            e.printStackTrace();
        }finally{
            DB.close(pstmt);
            DB.close(conn);
        }
          
    }
      
    static void  delete()
    {
        int count;
        String sql = "delete from user where name=?";
        Connection conn = DB.getConn();
        PreparedStatement pstmt = DB.getPrestat(conn, sql);
        try {
            pstmt.setString(1, "owen2update");
            count=pstmt.executeUpdate();
            System.out.println("影響條數爲:"+count);
      
        } catch (SQLException e) {
            DB.close(pstmt);
            DB.close(conn);
            e.printStackTrace();
        }finally{
            DB.close(pstmt);
            DB.close(conn);
        }
          
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章