1. 程式人生 > >資料庫操作:Jdbc,mysql,oracle,hbase,phoenix

資料庫操作:Jdbc,mysql,oracle,hbase,phoenix

本文主要關於java連線不同庫的操作

一.JDBC

最簡單的入門demo

public void demo1() throws SQLException{
    // 1.載入驅動
    DriverManager.registerDriver(new Driver());
    // 2.獲得連線.
    Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/web017", "root", "123");
    // 3.編寫SQL並且執行SQL.
    String sql = "select * from user"
; Statement statement = connection.createStatement(); // 結果集:查詢後的資料的封裝. ResultSet rs = statement.executeQuery(sql); // 遍歷: while(rs.next()){ int id = rs.getInt("id"); String username = rs.getString("username"); String password = rs.getString("password"); System.out
.println(id+" "+username+" "+password); } // 4.釋放資源. rs.close(); statement.close(); connection.close(); }

1.DriverManager:驅動的管理類.

一、註冊驅動:(載入驅動)
registerDriver(Driver driver);  //普通方式

但是在實際開發中很少使用registerDriver註冊驅動?
1.使用這個方法註冊驅動,使程式依賴了具體的驅動.

 import com.mysql.jdbc.Driver
;

2.這個方法會導致驅動被註冊兩次:

//---檢視Driver類的原始碼.
//檢視原始碼可以看到:在靜態程式碼塊中註冊了驅動.
//靜態程式碼塊何時執行?--------------在類載入的時候.
static {
    try {
        java.sql.DriverManager.registerDriver(new Driver());
    } catch (SQLException E) {
        throw new RuntimeException("Can't register driver!");
    }
}

解決這兩個問題:

--使用反射的方式獲得:

MySql驅動:Class.forName("com.mysql.jdbc.Driver");
Oracle驅動:Class.forName("oracle.jdbc.driver.OracleDriver");
二、獲得連線:
getConnection(String url,String username,String password);
url         :資料庫連線的路徑.
username    :連線資料庫使用者名稱.
password    :連線資料庫密碼.

//url的寫法:
jdbc:mysql://localhost:3306/web017
    jdbc        :連線資料庫協議.
    mysql       :JDBC協議的一個子協議.
    localhost   :資料庫伺服器主機名.
    3306        :mysql資料庫伺服器的埠號.
    web017      :資料庫名稱.
url簡寫為  :jdbc:mysql//localhost:3306/web017預設連線本地的mysql伺服器預設的埠號3306.
簡寫  :jdbc:mysql:///web017

2.Connection:連線物件.

Connection由DriverManager建立的.代表的是一個連線的物件.
主要有兩個作用:

一、建立執行SQL語句的物件.
Statement createStatement(int resultSetType, int resultSetConcurrency)//建立Statement.

PreparedStatement prepareStatement(String sql)//建立PreparedStatement,對SQL進行預編譯.

CallableStatement prepareCall(String sql)//建立CallableStatement.用來執行資料庫中儲存過程.
二、進行事務的管理:
void setAutoCommit(boolean autoCommit)//設定事務不自動提交.
void commit()//事務提交.
void rollback()//事務回滾.

3.Statement:執行SQL的物件.

Statement物件由Connection物件建立的.代表是可以執行SQL的類.
主要有兩個作用:

一、執行SQL語句.
ResultSet executeQuery(String sql)
    //執行查詢語句.
    //執行select語句.返回了一個ResultSet物件.
    //代表查詢結果的表格資料.

int executeUpdate(String sql)
    //執行更新語句.
    //執行updateinsertdelete語句的時候.返回int型別資料.
    //int型別的資料代表的是影響的行數.

boolean excute(String sql)
    //執行SQL語句.
    //執行selectinsertupdatedelete語句.返回的是boolean值.
    //如果返回的結果為ResultSet.那麼boolean值為true.如果返回的是更新的記錄數.那麼boolean就為false.
二、執行批處理.
void addBatch(String sql)
//將SQL新增到批處理中.
void cleatBatch()
//清空批處理.
int[] executeBatch()
//執行批處理.

4.ResultSet:結果集.

ResultSet物件由Statement物件中executeQuery(String sql);
返回的.ResultSet物件代表的是select查詢後的結果.
在ResultSet內部維護了一個指向表格資料行的遊標Cursor,初始化時候,遊標在第一行之前的位置.
呼叫ResultSet中next()方法.可以使遊標指向具體的資料行,進而呼叫方法獲得該行的資料.

//方法:
boolean next()// 向下移動游標.

//獲得結果集中整形資料.
int getInt(int columnIndex)
int getInt(String columnLabel)

//獲得結果集中字串型別的資料.
String getString(int columnIndex)
String getString(String columnLabel)

//獲得結果集中Object 型別的資料.
Object getObject(int columnIndex)
Object getObject(String columnLabel)
//遍歷結果集:
while(rs.next()){
    int id = rs.getInt("id");
    String username = rs.getString("username");
    String password = rs.getString("password");
    System.out.println(id+"    "+username+"    "+password);
}
//獲得結果集中的資料:
int id = rs.getInt("id");
String username = rs.getString("username");
String password = rs.getString("password");

//如果結果集中只有一條記錄:
if(rs.next()){
    ...
}

5.滾動結果集

結果集預設的情況下只能向下而且不可以在結果集上進行修改記錄.
* MYSQL資料庫結果集可以滾動.
* 在Statement被建立的時候:

Statement createStatement(int resultSetType,int resultSetConcurrency);
//  resultSetType           :結果集型別
//      TYPE_FORWARD_ONLY           :結果集只能向下.
//      TYPE_SCROLL_INSENSITIVE     :結果集可以滾動.不允許進行修改結果集
//      TYPE_SCROLL_SENSITIVE       :結果集可以滾動.允許在修改結果集.

//  resultSetConCurrency    :結果集併發策略.
//      CONCUR_READ_ONLY            :結果集不可以修改
//      CONCUR_UPDATABLE            :結果集可以修改.

//  組合:
//  TYPE_FORWARD_ONLY       CONCUR_READ_ONLY    :結果集只能向下而且不可以進行修改.(預設值)
//  TYPE_SCROLL_INSENSITIVE CONCUR_READ_ONLY    :結果集可以滾動,但是不可以修改結果集.
//  TYPE_SCROLL_SENSITIVE   CONCUR_UPDATABLE    :結果集可以滾動,而且可以修改結果集.

案例

public void demo2() throws ClassNotFoundException, SQLException {
    // 1.載入驅動
    Class.forName("com.mysql.jdbc.Driver");
    // 2.獲得連線
    Connection conn = DriverManager.getConnection("jdbc:mysql:///web017","root", "123");
    // 3.執行SQL.
    String sql = "select * from user";
    Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    ResultSet rs = stmt.executeQuery(sql);
    // 直接定位到某一行:
    rs.absolute(3);
    rs.updateString("username", "eee");
    rs.updateRow();
    // 4.釋放資源
    rs.close();
    stmt.close();
    conn.close();
}

6.資源釋放:

資源的釋放是非常重要,我們寫的資源釋放的程式碼,是非常不規範!!!
尤其Connection物件是非常稀有!代表的是資料庫連線物件.安裝MYSQL的資料庫時候,MYSQL有最大連線數量.
如果達到MYSQL的最大連線數量,而且Connection都沒有被釋放.其他人連線不到資料庫.
如果Connection不能及時,正確關閉.極易導致系統宕機.
Connection的使用原則:儘量要晚建立,儘量早釋放!!!
為了確保釋放的程式碼能夠得到執行,資源釋放的程式碼一定要放在finally程式碼塊.

資源釋放的一段標準程式碼:

if (rs != null) {
    try {
        rs.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    rs = null; // 為了讓JVM垃圾回收更早回收該物件.
}

if (stmt != null) {
    try {
        stmt.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    stmt = null;
}

if (conn != null) {
    try {
        conn.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    conn = null;
}

二.JDBCUtils

JDBC工具類的抽取:

ClassLoader getClassLoader()        //返回該類的類載入器。

InputStream getResourceAsStream(String name)    //返回讀取指定資源的輸入流。

String getProperty(String key)      //用指定的鍵在此屬性列表中搜索屬性。
void load(InputStream inStream)     //從輸入流中讀取屬性列表(鍵和元素對)。

static ResourceBundle getBundle(String baseName) 
       //使用指定的基本名稱、預設的語言環境和呼叫者的類載入器獲取資源包。
String getString(String key) 
       //從此資源包或它的某個父包中獲取給定鍵的字串。
public class JDBCUtils {

    private static final String DRIVERCLASS;
    private static final String URL;
    private static final String USERNAME;
    private static final String PASSWORD;

    static {
        // 解析屬性檔案:Properties.
        Properties properties = new Properties();
        // 獲得代表屬性檔案的輸入流:
        // 使用類的載入器獲得屬性檔案的輸入流:
        InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
        // 載入屬性檔案:
        try {
            properties.load(is);
        } catch (IOException e) {
            e.printStackTrace();
        }

        DRIVERCLASS = properties.getProperty("jdbc.driverClass");
        URL = properties.getProperty("jdbc.url");
        USERNAME = properties.getProperty("jdbc.username");
        PASSWORD = properties.getProperty("jdbc.password"); 
    }

    /**
     * 註冊驅動的方法:
     */
    public static void loadDriver() {
        try {
            Class.forName(DRIVERCLASS);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    /**
     * 獲得連線的方法
     */
    public static Connection getConnection() {
        Connection conn = null;
        try {
            // 載入驅動
            loadDriver();
            conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }

    /**
     * 釋放資源的程式碼
     */
    public static void release(Statement stmt, Connection conn) {
        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            stmt = null;
        }

        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            conn = null;
        }
    }

    public static void release(ResultSet rs, Statement stmt, Connection conn) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            rs = null;
        }

        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            stmt = null;
        }

        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            conn = null;
        }
    }
}

三.JDBC連線池

一.DBCP:DataBase connection pool

1.什麼是DBCP:

DBCP:DBCP(DataBase connection pool),資料庫連線池。
是 apache 上的一個 java 連線池專案,也是 tomcat 使用的連線池元件。
單獨使用dbcp需要2個包:commons-dbcp.jar,commons-pool.jar
由於建立資料庫連線是一個非常耗時耗資源的行為,所以通過連線池預先同資料庫建立一些連線,
放在記憶體中,應用程式需要建立資料庫連線時直接到連線池中申請一個就行,用完後再放回去。

2.使用DBCP

//步驟一:下載DBCP的開發包.
    commons-dbcp-1.4.jar
    commons-pool-1.5.6.jar
//步驟二:瞭解DBCP的核心API:
    BasicDataSource          //用於手動配置DBCP連線池.
    BasicDataSourceFactory   //使用配置檔案的方式配置連線池.

3.手動方式配置連線池:

@Test
/**
 * DBCP的測試類:
 * 手動方式配置連線池:
 */
public void demo1() {
    Connection conn = null;
    PreparedStatement stmt = null;
    ResultSet rs = null;
    try {
        // 建立連線池:
        BasicDataSource dataSource = new BasicDataSource();
        // 手動設定引數:
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql:///web018");
        dataSource.setUsername("root");
        dataSource.setPassword("123");
        // 獲得連線:
        conn = dataSource.getConnection();
        // 編寫SQL:
        String sql = "select * from account";
        // 預編譯SQL:
        stmt = conn.prepareStatement(sql);
        // 執行SQL:
        rs = stmt.executeQuery();
        // 遍歷結果集:
        while (rs.next()) {
            System.out.println(rs.getInt("id") + "   "
                    + rs.getString("name") + "   " + rs.getDouble("money"));
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        JDBCUtils.release(rs, stmt, conn);
    }
}

4.通過配置檔案的方式配置連線池:

//步驟一:在src下提供一個屬性檔案:dbcp.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///web018
username=root
password=123

//步驟二:使用DBCP的連線池:
@Test
/**
 * DBCP的測試類:
 * * 測試配置檔案的方式配置連線池
 */
public void demo2() {
    Connection conn = null;
    PreparedStatement stmt = null;
    ResultSet rs = null;
    try {
        // 建立屬性檔案物件
        Properties properties = new Properties();
        // 獲得代表屬性檔案的輸入流;
        InputStream is = DBCPDemo1.class.getClassLoader()
                .getResourceAsStream("dbcp.properties");
        properties.load(is);
        // 建立連線池:
        DataSource dataSource = BasicDataSourceFactory
                .createDataSource(properties);
        // 獲得連線:
        conn = dataSource.getConnection();
        // 編寫SQL:
        String sql = "select * from account";
        // 預編譯SQL:
        stmt = conn.prepareStatement(sql);
        // 執行SQL:
        rs = stmt.executeQuery();
        // 遍歷結果集:
        while (rs.next()) {
            System.out.println(rs.getInt("id") + "   "
                    + rs.getString("name") + "   " + rs.getDouble("money"));
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        JDBCUtils.release(rs, stmt, conn);
    }
}

二.C3P0:

1.什麼是C3P0:

C3P0是一個開源的JDBC連線池,它實現了資料來源和JNDI繫結,支援JDBC3規範和JDBC2的標準擴充套件。
目前使用它的開源專案有Hibernate,Spring等。

2.使用C3P0連線池:

//步驟一:下載C3P0開發包:
    c3p0-0.9.1.2.jar
//步驟二:瞭解C3P0的API:
    ComboPooledDataSource

3.手動方式配置C3P0連線池:

@Test
/**
 * 手動配置C3P0連線池:
 */
public void demo1() {
    Connection conn = null;
    PreparedStatement stmt = null;
    ResultSet rs = null;
    try {
        // 建立連線池:
        ComboPooledDataSource dataSource = new ComboPooledDataSource();
        // 設定連線池的基本引數:
        dataSource.setDriverClass("com.mysql.jdbc.Driver");
        dataSource.setJdbcUrl("jdbc:mysql:///web018");
        dataSource.setUser("root");
        dataSource.setPassword("123");
        // 獲得連線:
        conn = dataSource.getConnection();
        // 編寫SQL:
        String sql = "select * from account";
        // 預編譯SQL:
        stmt = conn.prepareStatement(sql);
        // 執行SQL;
        rs = stmt.executeQuery();
        while (rs.next()) {
            System.out
                    .println(rs.getInt("id") + "   " + rs.getString("name")
                            + "    " + rs.getDouble("money"));
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        JDBCUtils.release(rs, stmt, conn);
    }
}

4.配置檔案的方式配置C3P0連線池:

@Test
/**
 * 配置檔案的方式配置C3P0連線池:
 */
public void demo2(){
    Connection conn = null;
    PreparedStatement stmt = null;
    ResultSet rs = null;
    try {
        // 建立連線池:
        ComboPooledDataSource dataSource = new ComboPooledDataSource();
        // 獲得連線:
        conn = dataSource.getConnection();
        // 編寫SQL:
        String sql = "select * from account";
        // 預編譯SQL:
        stmt = conn.prepareStatement(sql);
        // 執行SQL;
        rs = stmt.executeQuery();
        while (rs.next()) {
            System.out
                    .println(rs.getInt("id") + "   " + rs.getString("name")
                            + "    " + rs.getDouble("money"));
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        JDBCUtils.release(rs, stmt, conn);
    }
}

5.使用C3P0連線池改造JDBC的工具類:

public class JDBCUtils2 {
    private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
    /**
     * 獲得連線的方法
     */
    public static Connection getConnection(){
        Connection conn = null;
        try {
            conn = dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

    /**
     * 提供釋放資源的方法
     */
    public static void release(Statement stmt, Connection conn) {
        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            stmt = null;
        }

        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            conn = null;
        }
    }

    public static void release(ResultSet rs, Statement stmt, Connection conn) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            rs = null;
        }

        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            stmt = null;
        }

        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            conn = null;
        }
    }
}

三.JNDI:

1.什麼是JNDI:

JNDI(Java Naming and Directory Interface,Java命名和目錄介面)
是SUN公司提供的一種標準的Java命名系統介面,JNDI提供統一的客戶端API,
通過不同的訪問提供者介面JNDI服務供應介面(SPI)的實現,由管理者將JNDI API對映
為特定的命名服務和目錄系統,使得Java應用程式可以和這些命名服務和目錄服務之間進行互動。
將一個物件與一個名稱進行繫結,通過名稱查詢到指定的物件.

2.Tomcat內建連線池:

需要進行一個配置:配置一個<Context>標籤.完成一個類與名稱的繫結.
<Context>標籤配置的位置:
    tomcat/conf/context.xml             --- 配置連線池.可以被tomcat下的所有虛擬主機和所有的虛擬路徑訪問.
    tomcat/conf/Catalina/localhost/context.xml  --- 配置連線池.可以tomcat下的localhost虛擬主機下的所有應用訪問.
    工程/META-INF/context.xml             --- 配置連線池.只能夠被當前的工程所訪問.

3. 配置JNDI連線池:

步驟一:配置context.xml.在META-INF/context.xml
<Context>
  <Resource name="jdbc/EmployeeDB" auth="Container"
            type="javax.sql.DataSource" username="root" password="123"
            driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql:///web018"
            maxActive="8" maxIdle="4"/> 
</Context>
步驟二:連線池由Tomcat伺服器進行維護的.啟動Tomcat的時候,需要獲得連線.需要建立連線池.能夠獲得MYSQL驅動.需要將MYSQL驅動交給Tomcat進行管理.
  • 需要將mysql的驅動包copy到tomcat/lib
步驟三:定義個能夠執行在Tomcat內部的類訪問到連線池:
  • Servlet!!!
public class JNDIServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        try {
            Context initCtx = new InitialContext();
            Context envCtx = (Context) initCtx.lookup("java:comp/env");
            // 通過名稱查詢類物件.
            DataSource dataSource = (DataSource) envCtx
                    .lookup("jdbc/EmployeeDB");
            conn = dataSource.getConnection();
            // 編寫SQL
            String sql = "select * from account";
            // 預編譯SQL
            stmt = conn.prepareStatement(sql);
            // 執行SQL:
            rs = stmt.executeQuery();
            // 遍歷結果集:
            while (rs.next()) {
                System.out.println(rs.getInt("id") + "   "
                        + rs.getString("name") + "  " + rs.getDouble("money"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            JDBCUtils2.release(rs, stmt, conn);
        }

    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        doGet(request, response);
    }

}

四.PhoenixUtils

PhoenixUtils是Java用Phoenix的客戶端連線資料庫Hbase的工具類,主要內容和JDBCUtils相似.

DataSchedule.properties檔案內容

phoenixDriver=org.apache.phoenix.jdbc.PhoenixDriver

phoenixZookeeper=jdbc:phoenix:node1,node2,node4:2181

工具類

package cn.gilight.utils;

import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;

import org.apache.log4j.Logger;
import org.apache.phoenix.jdbc.PhoenixConnection;
import org.apache.phoenix.jdbc.PhoenixDriver;

public class PhoenixUtils {

    private static Logger logger = Logger.getLogger(PhoenixUtils.class);
    private static String connectionString = null;
    private static String dirverClass = null;

    static {
        try {
            Properties prop = new Properties();
            InputStream is = PhoenixUtils.class.getClassLoader().getResourceAsStream("DataSchedule.properties");
            prop.load(is);
            connectionString = prop.getProperty("phoenixZookeeper");
            dirverClass = prop.getProperty("phoenixDriver");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection() throws Throwable {
        Class.forName(dirverClass);
        return DriverManager.getConnection(connectionString);
    }

    public static PhoenixConnection getPhoenixConnection() throws Throwable {
        Class.forName(dirverClass);
        logger.info("phoenix connection " + connectionString);
        return (PhoenixConnection) PhoenixDriver.INSTANCE.connect(connectionString, null);
    }
}

Mybatis

Hibernate

相關推薦

資料庫操作:Jdbc,mysql,oracle,hbase,phoenix

本文主要關於java連線不同庫的操作 一.JDBC 最簡單的入門demo public void demo1() throws SQLException{ // 1.載入驅動 DriverManager.registerDriver(n

C#操作SqlServer MySql Oracle通用幫助類

.html 結果 dbn t對象 htm cut ins 定義 div C#操作SqlServer MySql Oracle通用幫助類 【前言】   作為一款成熟的面向對象高級編程語言,C#在ADO.Net的支持上已然是做的很成熟,我們可以方便地調用ADO.Net操作各類關

mysqlHBase+Phoenix遷移資料的心得總結

* 轉載請註明出處 公司有一張大表,資料量超過3億.Leader找我讓我完成這個資料遷移的工作. mysql -> HBase + Phoenix 1.總體方案有哪些?   1)通過Sqoop直接從伺服器(JDBC方式)抽取資料到HBase中   因為資料量非常大,因此優先考慮用Sqoop和M

mysqlHBase+Phoenix遷移數據的心得總結

reduce 遭遇 問題 無法識別 任務 mes rate arc 字節 * 轉載請註明出處 公司有一張大表,數據量超過3億.Leader找我讓我完成這個數據遷移的工作. mysql -> HBase + Phoenix 1.總體方案有哪些?   1)通過Sqoop直

java操作JDBCOracle工具類

/** * JDBC之Oracle工具類 * * @author: Rodge * @time: 2018年10月4日 下午4:06:15 * @version: V1.0.0 */ public class JDBCUtilForOracle { private static fi

Django資料庫操作MySQL+Djan)

1、mySQL 使用 pymysql 安裝 pip install pymysql 配置 引入pymysql 並將pymysql 設定為 mysql的使用方式 2、設定 settings.py 檔案修改位置為: 修改為: 3、設定ORM 資料模型類和myS

重溫資料庫操作JDBC

前言 在日常的開發當中,我們總是用框架去連線資料庫,去完成業務中的需求,但是不可避免的有時候我們需要對資料進行額外的處理, 批量的修改或查詢,這時候用框架就顯得有點殺雞用牛刀了,在這裡我們將重溫原始的JDBC操作,好記性不如爛筆頭。 JD

資料庫學習資料 MySQL Oracle Redis

資料庫(關注公眾號:淺醉JAVA 獲取提取碼) 702【更多教程關注公眾號:淺醉JAVA】redis從入門到高可用             連結:https://pan.baidu.

Python資料庫操作MySQL

嗯...這兩天搗鼓了一下Python,不得不說指令碼語言就是強大方便,隨手開啟cmd,敲一行跑一行,媽媽再也不用擔心我打不開編譯器了......(這是針對一些配置中下的電腦開啟AS說的...) 好...今天先記錄一下Python的MYSQL資料庫操作吧。其實很簡單,第一步,

SpringBoot多資料庫連線(mysql+oracle)

出於業務需求,有時我們需要在spring boot web應用程式中配置多個數據源並連線到多個數據庫。 使用過Spring Boot框架的小夥伴們,想必都發現了Spring Boot對JPA提供了非常好的支援,在開發過程中可以很簡潔的程式碼輕鬆訪問資料庫,獲取我們想要的資料。 因此在這裡,使用Spring B

jdbc連線Oracle/MySQL資料庫進行批量匯入操作,如何提高效率???

package com.test.main; import java.sql.BatchUpdateException; import java.sql.Connection; import java.sql.PreparedStatement; import java.util.Date; impor

使用Jsp/Js/Ajax/Json/Jquery/Easyui + Servlet + JDBC + Lucene/Mysql/Oracle完成資料庫分頁

package loaderman.action; import java.io.IOException; import java.io.PrintWriter; import java.util.LinkedHashMap; import java.util.Map; import

jdbc連線oraclemysql等主流資料庫的驅動類和url

jdbc連線oracle、mysql等主流資料庫的驅動類和url ----------------------------------------------------------- oracle  driverClass:oracle.jdbc.driver.OracleDriver

spring 使用jdbc連線mysql.oracle資料庫

使用maven做的測試 pom.xml //由於oracle收費,中心庫沒有jar包,所以下載oracle.jar 命令列自己匯入本地庫   命令列 mvn install:install-file -DgroupId=com.oracle -DartifactId=ojd

Java通過JDBC 進行MySQL資料庫操作

一:前言 在測試工作中難免會和資料庫打交道,可能大家對資料庫語句都比較熟,比如常見的增刪改查等,但是當我們在做自動化測試時,比如介面測試,大部分請求引數,可能都是從資料庫中取值,並且介面返回值最後都會記錄在資料庫中,這樣前提就需要和資料庫建立連線,才能進行讀寫

intelij idea下使用java和JDBC連線oracle資料庫及簡單的SQL操作

(1) 閱讀參考資料,理解 JDBC 的呼叫機制; (2) 學會在 tomcat 中部署 JDBC 介面驅動; 首先修改 D:\SoftwareSetups\Tomcat\webapps\manager\META-INF\context.xml,在 其中新增以下程式碼: &l

jdbc連線資料庫步驟(mysqloracle、sqlserver2008)

•建立一個以JDBC連線資料庫的程式,包含7個步驟: 1、載入JDBC驅動程式: 在連線資料庫之前,首先要載入想要連線的資料庫的驅動到JVM(Java虛擬機器), 這通過java.lan

springboot學習筆記(二):基於MySql資料庫JDBC操作

1 , 連線資料庫 SpringBoot的Web應用中,基於MySql資料庫的JDBC操作 JDBC 連線資料庫主要配置 1 , 屬性配置檔案(application.properties) spring.datasource.url=jdbc:

資料庫連線:spring配置jdbc連線oracle,mysql,sqlserver

一、導包 連線oracle11g所需的jar包:ojdbc6.jar 連線mysql5.1所需的jar包:mysql-connector-java-5.1.12-bin.jar 連線sqlserver2008所需的jar包:sqljdbc4.jar 注意

java總結(ORACLE資料庫&jdbc&Mysql

不間斷更新。。。。Oracle資料庫概述Oracle是著名的Oracle(甲骨文)公司的資料庫產品·Oracle是世界上第一個商品化的關係型資料庫管理系統·Oracle採用標準SQL(結構化查詢語言),支援多種數據型別,提供面向物件的資料支援,具有第四代語言開發工具,支援UN