1. 程式人生 > 實用技巧 >Java連線MySQL資料庫——含步驟和程式碼

Java連線MySQL資料庫——含步驟和程式碼

工具:eclipse

   MySQL5.6

   MySQL連線驅動:mysql-connector-java-5.1.27.jar

載入驅動:

  1. 在工程目錄中建立lib資料夾,將下載好的JDBC放到該資料夾下,如下圖所示:

  

  2. 右鍵工程名,在java build path中的Libraries分頁中選擇Add JARs...,選擇剛才新增的JDBC,如下圖:

  

資料包準備:

  在資料庫sqltestdb中建立如下資料表emp:

1

2

3

4

5

6

7

CREATETABLEemp(

empnoINT(4)PRIMARYKEY,

enameVARCHAR

(10),

jobVARCHAR(9),

hiredateDATE,

salFLOAT(7,2)

) ;

  新增資料:

  

連線資料庫並讀取資料:

  資料庫名稱:sqltestdb

  資料包名稱:emp

  埠號:3306

  使用者名稱:root

  密碼:root

package com.cn.peitest.tongBu;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class TongBu { public static void main(String[] args) { //宣告Connection物件 Connection con; //驅動程式名 String driver = "com.mysql.jdbc.Driver"; //URL指向要訪問的資料庫名mydata String url = "jdbc:mysql://localhost:3306/pei_test"; //MySQL配置時的使用者名稱 String user = "root";
//MySQL配置時的密碼 String password = "123456"; //遍歷查詢結果集 try { //載入驅動程式 Class.forName(driver); //1.getConnection()方法,連線MySQL資料庫!! con = DriverManager.getConnection(url,user,password); if(!con.isClosed()) System.out.println("Succeeded connecting to the Database!"); //2.建立statement類物件,用來執行SQL語句!! Statement statement = con.createStatement(); //要執行的SQL語句 String sql = "select * from blade_user"; //3.ResultSet類,用來存放獲取的結果集!! ResultSet rs = statement.executeQuery(sql); System.out.println("-----------------"); System.out.println("執行結果如下所示:"); System.out.println("-----------------"); System.out.println("姓名" + "\t" + "職稱"); System.out.println("-----------------"); String job = null; String id = null; while(rs.next()){ //獲取stuname這列資料 job = rs.getString("job"); //獲取stuid這列資料 id = rs.getString("ename"); //輸出結果 System.out.println(id + "\t" + job); } rs.close(); con.close(); } catch(ClassNotFoundException e) { //資料庫驅動類異常處理 System.out.println("Sorry,can`t find the Driver!"); e.printStackTrace(); } catch(SQLException e) { //資料庫連線失敗異常處理 e.printStackTrace(); }catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally{ System.out.println("資料庫資料成功獲取!!"); } } }

  執行結果:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Succeeded connectingtotheDatabase!

-----------------

執行結果如下所示:

-----------------

姓名 職稱

-----------------

李興華 經理

張三 總監

王五 廠長

齊秦 書記

張剛 組長

曹操 財務

李四 總裁

資料庫資料成功獲取!!

增加、刪除和修改資料:

  增加資料:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

String name;

String id;

PreparedStatement psql;

ResultSet res;

//預處理新增資料,其中有兩個引數--“?”

psql = con.prepareStatement("insert into emp (empno,ename,job,hiredate,sal) "

+"values(?,?,?,?,?)");

psql.setInt(1,3212);//設定引數1,建立id為3212的資料

psql.setString(2,"王剛");//設定引數2,name 為王剛

psql.setString(3,"總裁");

DateFormat dateFormat2 =newSimpleDateFormat("yyyy-MM-dd");

Date myDate2 = dateFormat2.parse("2010-09-13");

psql.setDate(4,newjava.sql.Date(myDate2.getTime()));

psql.setFloat(5, (float)2000.3);

psql.executeUpdate();//執行更新

  執行結果:

  

  更新資料:

1

2

3

4

5

6

 PreparedStatement psql;

//預處理更新(修改)資料,將王剛的sal改為5000.0

psql = con.prepareStatement("update emp set sal = ? where ename = ?");

psql.setFloat(1,(float)5000.0);

psql.setString(2,"王剛");

psql.executeUpdate();

  更改結果:

  

  刪除資料:

1

2

3

4

5

6

PreparedStatement psql;

//預處理刪除資料

psql = con.prepareStatement("delete from emp where sal > ?");

psql.setFloat(1,4500);

psql.executeUpdate();

psql.close();

  刪除結果:

  

private List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
 
public String queryAll() {
	Connection conn = null;
	Statement sta = null;
	ResultSet rs = null;
	try {
		Class.forName("com.mysql.jdbc.Driver");
		conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/easyui", "root", "root");
		sta = conn.createStatement();
		rs = sta.executeQuery("select * from e_user");
		ResultSetMetaData md = rs.getMetaData(); //獲得結果集結構資訊,元資料
		int columnCount = md.getColumnCount();   //獲得列數 
		while (rs.next()) {
			Map<String,Object> rowData = new HashMap<String,Object>();
			for (int i = 1; i <= columnCount; i++) {
				rowData.put(md.getColumnName(i), rs.getObject(i));
			}
			list.add(rowData);
 
		}
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	} catch (SQLException e) {
		e.printStackTrace();
	}
	return "success";
}