1. 程式人生 > >java實現三種資料庫連線完整的demo

java實現三種資料庫連線完整的demo

都是原始碼直接複製過來的,可直接粘用微笑

public class A {

public static Connection conn; 
public static ResultSet rs = null ;    
public static Statement st = null ;

public static void main(String[] args) {

getConnection("127.0.0.1", "3306", "ly", "root", "root", "c");
}


public static void getConnection(String ip,String port,String dbname,String user,String pwd,String type){    
String url = "";
try {

       //初始化驅動包     
       try {
        //判斷需要連線的資料庫型別
        if(type.equals("a")){
       
        //sqlserver 連線
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            url = "jdbc:sqlserver://" + ip + ":" + port + ";databaseName=" + dbname;
        }else if(type.equals("b")){
       
        //oracle 連線
        Class.forName("oracle.jdbc.driver.OracleDriver");
               url = "jdbc:oracle:thin:@" + ip + ":" + port + ":" + dbname;
        }else{
        //mysql 連線
        Class.forName("com.mysql.jdbc.Driver");
        url = "jdbc:mysql://" + ip + ":" + port + "/" + dbname ;
        }
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("驅動類載入失敗!");
}
       
       //連線資料庫
       try {
conn=DriverManager.getConnection(url, user, pwd);
} catch (SQLException e) {
e.printStackTrace();
System.out.println("資料庫連線失敗!");
}
       
       //查詢
       List<Map> list = new ArrayList<Map>();
       st = conn.createStatement();
       String sql = " select * from user ";
       rs = st.executeQuery(sql);
       while (rs.next()) {     
        Map<String,String> map = new HashMap<String,String>();
    map.put("id", rs.getString("id"));
    map.put("name",  rs.getString("name"));
    map.put("rolekey",  rs.getString("rolekey"));
    list.add(map);
       }
       System.out.println("2222222==="+list);
       
} catch (Exception e) {
e.printStackTrace();
}finally{
//關閉(必須有)
try {
if(rs!=null){
rs.close();
}
if(st!=null){
st.close();
}
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}

}
    }   

}