1. 程式人生 > 實用技巧 >Laravel通過查詢構造器實現複雜的查詢語句

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();

statement物件

https://blog.csdn.net/yhl_jxy/article/details/73695389