Laravel通過查詢構造器實現複雜的查詢語句
JDBC
資料庫驅動
JDK提供jdbc介面,就是java怎樣去呼叫資料庫,但是注意提供的只是介面,資料庫提供商實現這些介面,就是所謂資料庫驅動。java呼叫資料庫驅動,驅動真正執行資料庫操作。
常用資料庫的驅動程式驅動程式包名:
Oracle資料庫:
驅動類的名字:oracle.jdbc.driver.OracleDriver JDBC URL:jdbc:oracle:thin:@dbip:port:databasename 說明:驅動程式包名有可能會變 JDBC URL中各個部分含義如下: dbip –為資料庫伺服器的IP地址,如果是本地可寫:localhost或127.0.0.1。 port –為資料庫的監聽埠,需要看安裝時的配置,預設為1521。 databasename –為資料庫的SID,通常為全域性資料庫的名字。
SQL Server資料庫:
驅動程式包名:msbase.jar mssqlserver.jar msutil.jar 驅動類的名字:com.microsoft.jdbc.sqlserver.SQLServerDriver JDBC URL:jdbc:microsoft:sqlserver://dbip:port;DatabaseName=databasename 說明:驅動程式包名有可能會變 JDBC URL中各個部分含義如下: dbip –為資料庫伺服器的IP地址,如果是本地可寫:localhost或127.0.0.1。 port –為資料庫的監聽埠,需要看安裝時的配置,預設為1433。 databasename –資料庫的名字。
MySQL資料庫:
驅動程式包名:mysql-connector-Java-3.1.11-bin.jar 驅動類的名字:com.mysql.jdbc.Driver / com.mysql.cj.jdbc.Driver JDBC URL:jdbc:mysql://dbip:port/databasename 說明:驅動程式包名有可能會變 JDBC URL其中各個部分含義如下: dbip –為資料庫伺服器的IP地址,如果是本地可寫:localhost或127.0.0.1。 port –為資料庫的監聽埠,需要看安裝時的配置,預設為3306。 databasename –資料庫的名字。
對於開發人員,只需掌握JDBC的介面操作即可
java.sql
javax.sql
資料庫驅動包:mysql-connector-java-5.1.47.jar
第一個JDBC程式
1、建立一個普通Java專案
2、準備資料庫驅動包
新建一個lib目錄,匯入jar包,右鍵選中add as Library
3、資料庫設計準備:
create database jdbc_study character set utf8 COLLATE utf8_general_ci;
use jdbc_study;
create table users(
id int primary key,
`name` varchar(20),
`password` varchar(20),
email varchar(30),
birthday TIMESTAMP
);
insert into users(id,`name`,`password`,email,birthday)
values(1,'Joey','111111','[email protected]','2020-1-1'),
(2,'Rose','122221','[email protected]','2020-2-1'),
(3,'Mike','133331','[email protected]','2020-2-5');
4、編寫測試程式碼
package com.hch.jdbc;
import java.sql.*;
public class Demo01_TestJDBC {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1、載入驅動
Class.forName("com.mysql.cj.jdbc.Driver");
//2、使用者資訊和url
String url = "jdbc:mysql://localhost:3306/jdbc_study?useUnicode=true&characterEncoding=utf8&useSSL=true";
String username = "root";
String password = "hch520";
//3、連線成功,資料庫物件 connection代表資料庫
Connection connection = DriverManager.getConnection(url, username, password);
//4、執行sql物件
Statement statement = connection.createStatement();
//5、用Sql物件去執行sql
String sql = "select * from users";
ResultSet resultSet = statement.executeQuery(sql); //resultSet返回的結果集,封裝了全部查詢物件
while(resultSet.next()){
System.out.println("id"+resultSet.getObject("id"));
System.out.println("name"+resultSet.getObject("name"));
System.out.println("pwd"+resultSet.getObject("password"));
System.out.println("email"+resultSet.getObject("email"));
System.out.println("birth"+resultSet.getObject("birthday"));
}
//6、釋放連線
resultSet.close();
statement.close();
connection.close();
}
}
步驟總結:
1、載入驅動
2、連線資料庫DriverManager
3、獲得執行sql的物件
Statement
4、獲得返回的結果集(查詢的)
5、釋放連線
DriverManager
Class.forName("com.mysql.cj.jdbc.Driver"); //固定寫法
Connection connection = DriverManager.getConnection(url, username, password);
//connection 代表資料庫
//資料庫設定自動提交
connection.setAutoCommit();
//事務提交
connection.commit();
//事務滾回
connection.rollback();
URL
String url = "jdbc:mysql://localhost:3306/jdbc_studyuseUnicode=true&characterEncoding=utf8&useSSL=true";
//mysql --3306
//協議://主機名:埠號/資料庫名?引數1&引數2&...
Statement執行SQL的物件 PrepareStatement執行SQL的物件
String sql = "Select * from users"; //編寫SQL
statement.excuteQuery(); //查詢操作返回的 ResultSet
statement.excute(); //執行任何SQL
statement.excuteUpdate(); //更新,插入,刪除理論上都是修改都用這個,返回一個受影響的行數
ResultSet 查詢的結果集 : 封裝了所有的查詢結果
獲得指定的資料型別:
resultSet.getObject()
resultSet.getInt()
resultSet.getString()
resultSet.getFloat()
resultSet.getDate()
釋放資源:
resultSet.close();
statement.close();
connection.close();