一、根據《java2實用教程》和藍墨雲學習視頻學習第十一章;java
二、嘗試將課本重點內容用本身的話複述手打;mysql
三、輸入課本代碼並上傳碼雲;git
四、使用IDEA調試代碼;sql
五、學習使用MySQL。數據庫
百度MySQL,進入官網,選擇社區版並下載,具體選項如圖;
apache
解壓過程略數組
mysqld --initialize-insecure
mysqladmin -u root -p password
11.4 JDBC服務器
11.5 鏈接數據庫工具
應用程序負責加載JDBC-MySQL數據庫驅動的代碼以下: try{ Class.forName("com.mysql.jdbc.Driver"); } catch(Exception e){}
Connection getConnection(java.lang.String, java.lang.String, java.lang.String) Connection getConnection(java.lang.String)
這兩個方法均可能拋出SQLException異常,DriverManager類調用上述方法能夠和數據庫創建鏈接,便可返回一個Connection對象。sqlserver
使用Connection getConnection(java.lang.String) 方法創建鏈接的代碼以下:
Connection con; String uri = "jdbc:mysql://192.168.100.1:3306/students?user=root&password=&useSSL=true"; try{ con = DriverManager.getConnection(uri); //鏈接代碼 } catch(SQLException e){ System.out.println(e); }
若是root用戶密碼是xx,將&password=更改成&password=xx便可
Connection con; String uri = "jdbc:mysql:// 192.168.100.1:3306/students? useSSL=true"; String user ="root"; String password =""; try{ con = DriverManager.getConnection(uri,user,password); //鏈接代碼 } catch(SQLException e){ System.out.println(e); }
characterEncoding
,並取值gb2312
或utf-8
String uri = "jdbc:mysql://localhost/students?useSSL=true&characterEncoding=utf-8"; con = DriverManager.getConnection(uri, "root",""); //鏈接代碼
11.6 查詢操做
try{Statement sql = con.createStatement(); } catch(SQLException e){}
ResultSet rs = sql.executeQuery("SELECT * FROM students");
ResultSet rs = sql.executeQuery("SELECT * FROM students");以後馬上關閉鏈接:con.close();,程序將沒法獲取rs中的數據。
11.6.1 順序查詢
11.6.2 控制遊標
Statement stmt = con.createStatement(int type ,int concurrency);
11.6.3 條件與排序查詢
where
子語句通常格式: select 字段 from 表名 where 條件
select name,height from mess where name='李四'
select * from mess where height>1.60 and height<=1.8
select * from mess where name like '%林%' order by name
11.7 更新、添加與刪除操做
update 表 set 字段 = 新值 where <條件子句>
insert into 表(字段列表) values (對應的具體的記錄)
insert into 表 values (對應的具體的記錄)
delete from 表名 where <條件子句>
11.8 使用預處理語句
11.8.1 預處理語句的優勢
ResultSet executeQuery() boolean execute() int executeUpdate()
11.8.2 使用通配符
String str = "select * from mess where height < ? and name= ? " PreparedStatement sql = con.prepareStatement(str);
在sql對象執行以前,必須調用相應的方法設置通配符?表明的具體值,如:
sql.setFloat(1,1.76f); sql.setString(2, "武澤");
void setDate(int parameterIndex, Date x) void setDouble(int parameterIndex, double x) void setFloat(int parameterIndex, float x) void setInt(int parameterIndex, int x) void setLong(int parameterIndex, long x) void setString(int parameterIndex, String x)
11.9 通用查詢
ResultSet
對象rs
調用getMetaData()
方法返回一個ResultSetMetaData
對象(結果集的元數據對象):ResultSetMetaData metaData = rs.getMetaData();
metaData
,調用getColumnCount()
方法就能夠返回結果集rs中的列的數目:int columnCount = metaData.getColumnCount();
metaData
調用getColumnName(int i)
方法就能夠返回結果集rs中的第i列的名字:String columnName = metaData.getColumnName(i);
11.10 事務
11.10.1 事務及處理
11.10.2 JDBC事務處理步驟
11.11鏈接SQL Server數據庫
try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch(Exception e){ }
try{ String uri= "jdbc:sqlserver://192.168.100.1:1433;DatabaseName=warehouse"; String user="sa"; String password="dog123456"; con=DriverManager.getConnection(uri,user,password); } catch(SQLException e){ System.out.println(e); }
11.12鏈接Derby數據庫
Connection con = DriverManager.getConnection("jdbc:derby:students;create=true");