標籤:資料庫 java database mysql jdbc
第一步:下載mysql驅動,網址
http://dev.mysql.com/downloads/connector/j/
第二步:講mysql驅動mysql-connector-java-5.0.5-bin.jar加入到項目的lib目錄或者將該檔案的路徑加入到classpath環境變數裡面
第三步:建立資料庫
1、安裝mysql
2、建立資料庫:create database test;
3、建立表:
CREATE TABLE STUDENT ( SNO CHAR(7) NOT NULL, SNAME VARCHAR(8) NOT NULL, SEX CHAR(2) NOT NULL, BDATE DATE NOT NULL, HEIGHT DEC(5,2) DEFAULT 000.00, PRIMARY KEY(SNO) );
4、插入資料
第四步:java程式編寫
1、載入驅動:載入想要串連的資料庫的驅動到JVM,通過java.lang.Class類的靜態方法forName(String className)來實現,載入成功後,Driver類的執行個體就被註冊到DriverManager中
Class.forName("com.mysql.jdbc.Driver").newInstance(); 或者 com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver(); 或者 new com.mysql.jdbc.Driver();
2、建立連線物件,該對象就是一個資料庫連接
Connection con = DriverManager.getConnection("url", "user", "passwrod");
其中MySQL的JDBC URL編寫方式:jdbc:mysql://主機名稱:串連連接埠/資料庫的名稱?參數=值,避免中文亂碼要指定useUnicode和characterEncoding。
3、建立申明:建立一個java.sql.Statement執行個體,Statement執行個體分為以下三種類型:
1、執行靜態SQL語句。通常通過Statement執行個體實現。
2、執行動態SQL語句。通常通過PreparedStatement執行個體實現。
3、執行資料庫預存程序。通常通過CallableStatement執行個體實現。
具體的實現方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;
4、執行資料庫操作:Statement介面提供了三種執行SQL語句的方法:executeQuery 、executeUpdate、和execute。
1、ResultSet executeQuery():執行查詢資料庫的SQL語句,返回一個結果集(ResultSet)對象。 2、int executeUpdate():用於執行INSERT、UPDATE或DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等
3、execute():用於執行返回多個結果集、多個更新計數或二者組合的語句。
具體實現代碼:
5、處理結果:分兩種情況
1、執行更新返回的本次操作影響到的記錄數
2、執行查詢返回的結果是一個ResultSet對象
ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些行中資料的訪問。
使用結果集(ResultSet)對象的存取方法擷取資料:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ;
}
6、關閉JDBC對象:操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲明順序相反:
1、關閉記錄集
2、關閉聲明
3、關閉連線物件
以下是學習時測試代碼:
package com.nudt.jdbc;import java.net.ConnectException;import java.sql.*;public class DBUtilDemo{ private static final String URL = "jdbc:mysql://127.0.0.1:3306/imooc"; private static final String USER = "root"; private static final String PASSWD= "nudt2013"; private static Connection conn = null; static { try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(URL,USER,PASSWD); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } public static Connection getConnection(){ return conn; } public static void main (String args[])throws Exception{ Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select user_name,age from imooc_goddess"); String result = null; while(rs.next()){ result = "name:"+rs.getString("user_name")+";age:"+rs.getInt("age"); System.out.println(result); } }}
java通過JDBC串連mysql資料庫