mysql數據庫jdbc了解,oracle mysql jdbc

本文目錄一覽:

Java裏面的JDBC是什麼意思啊?

Java數據庫連接是Java語言中用來規範客戶端程序如何來訪問數據庫的應用程序接口,提供了諸如查詢和更新數據庫中數據的方法。JDBC也是Sun Microsystems的商標。我們通常說的JDBC是面向關係型數據庫的。

這種類型的驅動把所有JDBC的調用傳遞給ODBC,再讓後者調用數據庫本地驅動代碼(也就是數據庫廠商提供的數據庫操作二進制代碼庫,例如Oracle中的oci.dll)。

API概述

JDBC API主要位於JDK中的java.sql包中(之後擴展的內容位於javax.sql包中),主要包括(斜體代表接口,需驅動程序提供者來具體實現):

DriverManager:負責加載各種不同驅動程序(Driver),並根據不同的請求,向調用者返回相應的數據庫連接(Connection)。Driver:驅動程序,會將自身加載到DriverManager中去,並處理相應的請求並返回相應的數據庫連接(Connection)。Connection:數據庫連接,負責與進行數據庫間通訊,SQL執行以及事務處理都是在某個特定Connection環境中進行的。

可以產生用以執行SQL的Statement。Statement:用以執行SQL查詢和更新(針對靜態SQL語句和單次執行)。PreparedStatement:用以執行包含動態參數的SQL查詢和更新(在服務器端編譯,允許重複執行以提高效率)。CallableStatement:

用以調用數據庫中的存儲過程。SQLException:代表在數據庫連接的建立和關閉和SQL語句的執行過程中發生了例外情況(即錯誤)。

怎樣用jdbc連接mysql數據庫

1.在新建的Project中右鍵新建Floder

2

2.創建名為lib的包

3.創建完畢之後的工程目錄

4.接下來解壓你下載的mysql的jar包,拷貝其中的.jar文件

5.在工程lib包下郵件 選擇paste即粘貼,把mysql的jar包拷貝進來

6.拷貝完畢如圖:

7.在mysql的jar包上右鍵選擇 build path – add to build path

8.添加完畢之後,工程才與Mysql的jar包關聯起來,現在可以使用相關類和方法了

9.在工程中新建JdbcTest1.java類

10.輸入如下代碼:

11.代碼解釋:

Driver是個實現類,它由具體的數據庫廠商來實現。

它的connect方法可以獲取數據庫連接。參數如上圖。

運行之後,輸出如下,證明數據庫連接成功!

12.說明:這個是使用Driver連接數據庫的,而通常開發中使用的是DriverManager或數據庫連接池,這個僅作為理解數據庫連接事例使用。

jdbc 連接mysql時中的URL怎麼寫的

String url=”jdbc:mysql://localhost:3306/sample_db?user=rootpassword=your_password”;

例如:

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Connection;

import java.sql.Statement;

 

 

public class MysqlDemo {

    public static void main(String[] args) throws Exception {

        Connection conn = null;

        String sql;

        // MySQL的JDBC URL編寫方式:jdbc:mysql://主機名稱:連接端口/數據庫的名稱?參數=值

        // 避免中文亂碼要指定useUnicode和characterEncoding

        // 執行數據庫操作之前要在數據庫管理系統上創建一個數據庫,名字自己定,

        // 下面語句之前就要先創建javademo數據庫

        String url = “jdbc:mysql://localhost:3306/javademo?”

                + “user=rootpassword=rootuseUnicode=truecharacterEncoding=UTF8”;

 

        try {

            // 之所以要使用下面這條語句,是因為要使用MySQL的驅動,所以我們要把它驅動起來,

            // 可以通過Class.forName把它加載進去,也可以通過初始化來驅動起來,下面三種形式都可以

            Class.forName(“com.mysql.jdbc.Driver”);// 動態加載mysql驅動

            // or:

            // com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();

            // or:

            // new com.mysql.jdbc.Driver();

 

            System.out.println(“成功加載MySQL驅動程序”);

            // 一個Connection代表一個數據庫連接

            conn = DriverManager.getConnection(url);

            // Statement裏面帶有很多方法,比如executeUpdate可以實現插入,更新和刪除等

            Statement stmt = conn.createStatement();

            sql = “create table student(NO char(20),name varchar(20),primary key(NO))”;

            int result = stmt.executeUpdate(sql);// executeUpdate語句會返回一個受影響的行數,如果返回-1就沒有成功

            if (result != -1) {

                System.out.println(“創建數據表成功”);

                sql = “insert into student(NO,name) values(‘2012001′,’陶偉基’)”;

                result = stmt.executeUpdate(sql);

                sql = “insert into student(NO,name) values(‘2012002′,’周小俊’)”;

                result = stmt.executeUpdate(sql);

                sql = “select * from student”;

                ResultSet rs = stmt.executeQuery(sql);// executeQuery會返回結果的集合,否則返回空值

                System.out.println(“學號\t姓名”);

                while (rs.next()) {

                    System.out

                            .println(rs.getString(1) + “\t” + rs.getString(2));// 入如果返回的是int類型可以用getInt()

                }

            }

        } catch (SQLException e) {

            System.out.println(“MySQL操作錯誤”);

            e.printStackTrace();

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            conn.close();

        }

 

    }

 

}

怎樣使用jdbc訪問mysql數據庫

JDBC連接MYSQL數據庫:

package cn.outofmemory.test;

import java.sql.Connection;

import java.sql.DriverManager;

public class Mysql {

public static void main(String arg[]) {

try {

Connection con = null; //定義一個MYSQL鏈接對象

Class.forName(“com.mysql.jdbc.Driver”).newInstance(); //MYSQL驅動

con = DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/test”, “root”, “root”); //鏈接本地MYSQL

System.out.print(“yes”);

} catch (Exception e) {

System.out.print(“MYSQL ERROR:” + e.getMessage());

}

}

}

Class.forName(“com.mysql.jdbc.Driver”).newInstance(); 我們鏈接的是MYSQL數據庫,所以需要一個MYSQL的數據庫驅動,如果你的環境中沒有安裝,

可以下載:mysql-connector-java-5.1.17-bin.jar JAR包,然後放進jdk1.6.0_37\jre\lib\ext 重啟eclispe 就可以在JRE系統庫中看到。

con = DriverManager.getConnection;(“jdbc:mysql://127.0.0.1:3306/test”, “root”, “root”); 是鏈接數據庫的語句,

返回Connection con;對象。參數格式:(“jdbc:mysql://ip:端口/數據庫名稱”, 用戶名,密碼)

寫入一條數據

package main;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

public class Mysql {

/**

* 入口函數

* @param arg

*/

public static void main(String arg[]) {

try {

Connection con = null; //定義一個MYSQL鏈接對象

Class.forName(“com.mysql.jdbc.Driver”).newInstance(); //MYSQL驅動

con = DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/test”, “root”, “root”); //鏈接本地MYSQL

Statement stmt; //創建聲明

stmt = con.createStatement();

//新增一條數據

stmt.executeUpdate(“INSERT INTO user (username, password) VALUES (‘init’, ‘123456’)”);

ResultSet res = stmt.executeQuery(“select LAST_INSERT_ID()”);

int ret_id;

if (res.next()) {

ret_id = res.getInt(1);

System.out.print(ret_id);

}

} catch (Exception e) {

System.out.print(“MYSQL ERROR:” + e.getMessage());

}

}

}

stmt.executeUpdate INSERT; DELETE; UPDATE;語句都用executeUpdate函數來操作

stmt.executeQuery SELECT;語句都用stmt.executeQuery函數來操作

ResultSet res = stmt.executeQuery;(“select LAST;_INSERT_ID()”);

查詢最後插入數據的ID號,返回ResultSet res;對象

刪除和更新數據

package main;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

public class Mysql {

/**

* 入口函數

* @param arg

*/

public static void main(String arg[]) {

try {

Connection con = null; //定義一個MYSQL鏈接對象

Class.forName(“com.mysql.jdbc.Driver”).newInstance(); //MYSQL驅動

con = DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/test”, “root”, “root”); //鏈接本地MYSQL

Statement stmt; //創建聲明

stmt = con.createStatement();

//新增一條數據

stmt.executeUpdate(“INSERT INTO user (username, password) VALUES (‘init’, ‘123456’)”);

ResultSet res = stmt.executeQuery(“select LAST_INSERT_ID()”);

int ret_id;

if (res.next()) {

ret_id = res.getInt(1);

System.out.print(ret_id);

}

//刪除一條數據

String sql = “DELETE FROM user WHERE id = 1”;

long deleteRes = stmt.executeUpdate(sql); //如果為0則沒有進行刪除操作,如果大於0,則記錄刪除的條數

System.out.print(“DELETE:” + deleteRes);

//更新一條數據

String updateSql = “UPDATE user SET username = ‘xxxx’ WHERE id = 2”;

long updateRes = stmt.executeUpdate(updateSql);

System.out.print(“UPDATE:” + updateRes);

} catch (Exception e) {

System.out.print(“MYSQL ERROR:” + e.getMessage());

}

}

}

刪除和更新數據都使用stmt.executeUpdate函數。

刪除和更新數據都會返回一個Long的結果,如果為0,則刪除或者更新失敗,如果大於0則是操作刪除的記錄數

查詢語句

package main;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.Statement;

public class Mysql {

/**

* 入口函數

* @param arg

*/

public static void main(String arg[]) {

try {

Connection con = null; //定義一個MYSQL鏈接對象

Class.forName(“com.mysql.jdbc.Driver”).newInstance(); //MYSQL驅動

con = DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/test”, “root”, “root”); //鏈接本地MYSQL

Statement stmt; //創建聲明

stmt = con.createStatement();

//新增一條數據

stmt.executeUpdate(“INSERT INTO user (username, password) VALUES (‘init’, ‘123456’)”);

ResultSet res = stmt.executeQuery(“select LAST_INSERT_ID()”);

int ret_id;

if (res.next()) {

ret_id = res.getInt(1);

System.out.print(ret_id);

}

//刪除一條數據

String sql = “DELETE FROM user WHERE id = 1”;

long deleteRes = stmt.executeUpdate(sql); //如果為0則沒有進行刪除操作,如果大於0,則記錄刪除的條數

System.out.print(“DELETE:” + deleteRes);

//更新一條數據

String updateSql = “UPDATE user SET username = ‘xxxx’ WHERE id = 2”;

long updateRes = stmt.executeUpdate(updateSql);

System.out.print(“UPDATE:” + updateRes);

//查詢數據並輸出

String selectSql = “SELECT * FROM user”;

ResultSet selectRes = stmt.executeQuery(selectSql);

while (selectRes.next()) { //循環輸出結果集

String username = selectRes.getString(“username”);

String password = selectRes.getString(“password”);

System.out.print(“\r\n\r\n”);

System.out.print(“username:” + username + “password:” + password);

}

} catch (Exception e) {

System.out.print(“MYSQL ERROR:” + e.getMessage());

}

}

}

查詢語句使用stmt.executeQuery函數

rs.absolute() //絕對位置,負數表示從後面數

rs.first()第一條

rs.last()最後一條

rs.previoust()前一條

rs.next()後一條

rs.beforeFirst()第一條之前

rs.afterLast()最後之後

rs.isFirst(),rs.isLast(),rs.isBeforeFirst(),rs.isAfterLast

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/302898.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-31 11:48
下一篇 2024-12-31 11:48

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • 如何將Oracle索引變成另一個表?

    如果你需要將一個Oracle索引導入到另一個表中,可以按照以下步驟來完成這個過程。 一、創建目標表 首先,需要在數據庫中創建一個新的表格,用來存放索引數據。可以通過以下代碼創建一個…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • Python怎麼導入數據庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的數據庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28

發表回復

登錄後才能評論