JDBC六部曲-1
阿新 • • 發佈:2017-10-11
jdbc
//創建db.properties文件,來配置對數據庫的訪問方式 dbname=MySQL /Oracle //通過讀取文件來實現對不同的數據庫不同訪問 import java.io.*; import java.util.*; public class JDBCTestProgrammer1{ public static void main(String[] args) throws Exception{ //通過FileReader讀取配置文件 FileReader reader = new FileReader("db.properties"); //創建一個屬性對象 Properties prop = new Properties(); //通過屬性對象的load方法將reader讀取到內存生成一個Map集合 prop.load(reader); //關閉流 reader.close(); //通過屬性對象的getProperty(String key) String dbname = prop.getProperty("dbname"); //通過java反射機制創建該類 Class c = Class.forName(dbname); Object obj = c.newInstance(); JDBC jdbc = (JDBC)obj; jdbc.getConnection(); } }
JDBC編程六步驟
1:註冊驅動
2:獲取數據庫連接
3:執行數據庫操作對象
4:執行SQL語句
5:處理查詢結果集
6:關閉資源
第一步:實現註冊驅動
1.1)獲取驅動對象
1.2) 註冊驅動
import java.sql.Driver; import java.sql.DriverManager; public class DriverTest { public static void main(String[] args){ try{ //獲取驅動對象 Driver driver = new com.mysql.jdbc.Driver(); //註冊驅動 DriverManager.registerDriver(driver); } catch(Exception e){ e.printStackTrace(); } } }
第二步:獲取數據庫的連接
import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; public class JDBCTest { public static void main(String[] args){ try{ //1.1獲取驅動對象 Driver driver = new com.mysql.jdbc.Driver(); //1.2註冊驅動 DriverManager.registerDriver(driver); //2獲取數據庫連接 String url = "jdbc:mysql://127.0.0.1:3306/test"; String user = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, user, password); System.out.println(conn); } catch(Exception e){ e.printStackTrace(); } } }
第三步:獲取數據庫的操作對象
import java.sql.Driver; import java.sql.DriverManager; import java.sql.Statement; import java.sql.Connection; public class JDBCTest{ public static void main(String[] args){ try{ //註冊驅動 Driver driver = new com.mysql.jdbc.Driver(); DriverManager.registerDriver(driver); //獲取數據庫連接 String url = "jdbc:mysql://127.0.0.1:3306/test"; String user = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url,user,password); //3:獲取數據庫操作對象 Statement stmt = conn.createStatement(); System.out.println(stmt); } catch(Exception e){ e.printStackTrace(); } } }
第四步:執行SQL語句
import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCTest{ public static void main(String[] args){ try { //1註冊驅動 Driver driver = new com.mysql.jdbc.Driver(); DriverManager.deregisterDriver(driver); //2獲取數據庫連接 String url = "jdbc:mysql://127.0.0.1:3306/JDBC"; String user = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, user, password); System.out.println(conn); //3獲取數據庫操作對象 Statement stat = conn.createStatement(); //4執行SQL語句:DQL語句->查詢 String sql = "select c_id, c_name , c_zip from customers"; ResultSet rs = stat.executeQuery(sql); System.out.println(rs); } catch (SQLException e) { e.printStackTrace(); } } }
第五步:處理查詢結果集
import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCTest{ public static void main(String[] args){ try { //1註冊驅動 Driver driver = new com.mysql.jdbc.Driver(); DriverManager.deregisterDriver(driver); //2獲取數據庫連接 String url = "jdbc:mysql://127.0.0.1:3306/JDBC"; String user = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, user, password); System.out.println(conn); //3獲取數據庫操作對象 Statement stat = conn.createStatement(); //4執行SQL語句:DQL語句->查詢 String sql = "select c_id, c_name , c_zip from customers;"; ResultSet rs = stat.executeQuery(sql); System.out.println(rs); //5處理查詢結果 while(rs.next()){ //取數據的第一種方式 String name= rs.getString("c_name"); int id = rs.getInt("c_id"); double zip = rs.getDouble("c_zip"); System.out.println(name+"\t "+id+"\t "+zip); /*不建議以下寫法,程序可讀性不強 String name= rs.getString(2); int id = rs.getInt(1); double zip = rs.getDouble(3); System.out.println(name+"\t "+id+"\t "+zip); */ } } catch (SQLException e) { e.printStackTrace(); } } }
第六步:關閉資源
由於變量作用域的關系,在try裏面定義的變量不能在finally裏面讀取,所以需要局部變量為全局變量
import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCTest{ public static void main(String[] args){ Connection conn = null; Statement stat = null; ResultSet rs = null; try { //1註冊驅動 Driver driver = new com.mysql.jdbc.Driver(); DriverManager.deregisterDriver(driver); //2獲取數據庫連接 String url = "jdbc:mysql://127.0.0.1:3306/JDBC"; String user = "root"; String password = "123456"; conn = DriverManager.getConnection(url, user, password); System.out.println(conn); //3獲取數據庫操作對象 stat = conn.createStatement(); //4執行SQL語句:DQL語句->查詢 String sql = "select c_id, c_name , c_zip from customers;"; rs = stat.executeQuery(sql); System.out.println(rs); //5處理查詢結果 while(rs.next()){ //取數據的第一種方式 String name= rs.getString("c_name"); int id = rs.getInt("c_id"); double zip = rs.getDouble("c_zip"); System.out.println(name+"\t "+id+"\t "+zip); /*不建議以下寫法,程序可讀性不強 String name= rs.getString(2); int id = rs.getInt(1); double zip = rs.getDouble(3); System.out.println(name+"\t "+id+"\t "+zip); */ } } catch (SQLException e) { e.printStackTrace(); } finally{ //6關閉資源 倒敘關閉 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(); } } } } }
附:執行DML語句 增刪改
import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCTest{ public static void main(String[] args){ Connection conn = null; Statement stat = null; int count = 0; try { Driver driver = new com.mysql.jdbc.Driver(); DriverManager.deregisterDriver(driver); String url = "jdbc:mysql://127.0.0.1:3306/jdbc"; String user = "root"; String password = "123456"; conn = DriverManager.getConnection(url, user, password); stat = conn.createStatement(); //執行SQL語句 :DML語句->insert update delect String sql_ins = "insert into t_user(name) values (‘aaa‘)"; count = stat.executeUpdate(sql_ins); String sql_update = "update t_user set name = ‘lll‘ where id = 1"; count = stat.executeUpdate(sql_update); String sql_del = "DELETE FROM t_user where name = ‘aaa‘"; count = stat.executeUpdate(sql_del); System.out.println(count); } catch (SQLException e) { e.printStackTrace(); } } }
本文出自 “逐夢路上的Man” 博客,請務必保留此出處http://meyangyang.blog.51cto.com/12906086/1971378
JDBC六部曲-1