2、JDBC连接数据库
1、JDBC連接數(shù)據(jù)庫步驟
加載JDBC驅(qū)動程序
建立數(shù)據(jù)庫連接Connection
創(chuàng)建執(zhí)行SQL的語句Statement
處理執(zhí)行結果ResultSet
釋放資源
2、在項目里配置數(shù)據(jù)庫驅(qū)動
右擊項目->Build Path->Add Exteranl JARs
3、加載驅(qū)動 (只做一次)
Mysql驅(qū)動名:com.mysql.jdbc.Driver
方式一:Class.forName(“com.MySQL.jdbc.Driver”);
推薦這種方式,不會對具體的驅(qū)動類產(chǎn)生依賴。
方式二:DriverManager.registerDriver(com.mysql.jdbc.Driver);
會造成DriverManager中產(chǎn)生兩個一樣的驅(qū)動,并會對具體的驅(qū)動類產(chǎn)生依賴。
4、建立連接
Connection conn = DriverManager.getConnection(url, user, password);URL用于標識數(shù)據(jù)庫的位置,通過URL地址告訴JDBC程序連接哪個數(shù)據(jù)庫,URL的寫法為:
其他參數(shù)如:useUnicode=true&characterEncoding=utf8
5、連接和關閉數(shù)據(jù)庫
1,DriverManager 驅(qū)動管理類,主要負責獲取一個數(shù)據(jù)庫的連接;
static Connection getConnection(String url, String user, String password) 試圖建立到給定數(shù)據(jù)庫 URL 的連接。
2,MySQL 數(shù)據(jù)庫的連接地址格式
jdbc:mysql://IP 地址:端口號/數(shù)據(jù)庫名稱private static String dbUrl="jdbc:mysql://localhost:3306/book";- jdbc 協(xié)議:JDBC URL 中的協(xié)議總是 jdbc ;
- 子協(xié)議:驅(qū)動程序名或數(shù)據(jù)庫連接機制(這種機制可由一個或多個驅(qū)動程序支持)的名稱,如 mysql;
- 子名稱:一種標識數(shù)據(jù)庫的方法。必須遵循“//主機名:端口/子協(xié)議”的標準 URL 命名約定,如 //localhost:3306/db_book
3,Connection 接口 與特定數(shù)據(jù)庫的連接(會話)。
void close()立即釋放此 Connection 對象的數(shù)據(jù)庫和 JDBC 資源,而不是等待它們被自動釋放。
例2:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;public class jdbcTest {//數(shù)據(jù)庫地址private static String dbUrl="jdbc:mysql://localhost:3306/book";//用戶名private static String dbUserName="root";//密碼private static String dbPassword="root";//驅(qū)動名稱private static String jdbcName="com.mysql.jdbc.Driver";public static void main(String[] args) {try {Class.forName(jdbcName);System.out.println("加載驅(qū)動成功");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();System.out.println("加載驅(qū)動失敗");}Connection con=null;try {//獲取數(shù)據(jù)庫連接con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);System.out.println("獲取數(shù)據(jù)庫連接成功");System.out.println("進行數(shù)據(jù)庫操作");} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}} }運行結果:
總結
以上是生活随笔為你收集整理的2、JDBC连接数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1、JDBC概述
- 下一篇: 8、使用元数据(描述数据属性的信息)分析