JDBC:通過Java代碼操作mysql數據庫,數據庫會提供一些API供我們調用
MySQL、Oracle、等API有差異,但是Java統一了所有接口,即JDBC;
原始api-驅動包(類似轉接頭)-統一的api-Java
驅動包:安裝并引入項目里
下載第三方程序包:
- 官網
- github(Steam++)
- 中央倉庫(下載驅動包“MySQL Connector Java”)
Maven Repository: Search/Browse/Explore
ps.驅動包(.jar)要和mysql版本匹配
把驅動包引入項目:
1.復制到目錄中,一般叫lib
2.把目錄標記成庫的目錄
1 具體實現
1.1準備工作
先創建一個數據源DataSource (javax.sql? ? -? ? JDBC的包)
DataSource dataSource=new MysqlDataSource();//向上轉型
((MysqlDataSource)dataSource).setUrl("地址");//向下轉型
((MysqlDataSource)dataSource).setUser("root");//用戶名
((MysqlDataSource)dataSource).setPassword("123456");//密碼
地址: jdbc:mysql://127.0.0.1:3306/database名?characterEncoding=utf8&useSSL=false
127.0.0.1??環回ip地址,網絡上一個主機所在位置,自己給自己發消息,如果jdbc和mysql在同一個主機,就用環回ip,否則用對應主機ip(cmd? ipconfig);
3306 端口號(具體到某個軟件)
useSSL=false 是否進行加密
? 后面是訪問資源時需要哪些參數
root 管理員mysql默認自帶用戶
高內聚:把相關聯的功能放在一起;
低內聚:把相關聯功能零散分布;
低耦合:兩個模塊之間的關聯關系不是很緊密,一個變化對另一個影響小
URL(網址) 表示網絡上的資源位置
1.2建立連接
Connection connection=dataSource.getConnection();//java.sql包
//拋出異常 SQLException
1.3構造sql
String sql="mysql語句";
PreparedStatement statement=connection.prepareStatement(sql);
//插入用戶自行輸入數據
String sql="insert into student values(?,?)";
PreparedStatement statement=connection.preparestatement(sql);
statement.setInt(值,對應列名);
statement.setString(值,對應列名);
PreparedStatement 準備好的、預處理的語句;
1.4把sql發給服務器
//寫操作
//n表示影響到的行數
int n=statement.executeUpdate();//insert、update、delete 寫操作
//讀操作
//ResuleSet表示查詢到的結果集合(臨時表)
ResultSet resultSet=statement.executeQuery();//select 讀操作
//遍歷表
while(resultSet.next()){
//針對這一行處理,取出列的數據
int id=resultSet.getInt("列名");}
1.5關閉連接 釋放資源
//寫操作
statement.close();
connection.close();
//后生成的先釋放
//讀操作
resultSet.close();
statement.close();
connection.close();