MySQL之——JDBC 實現Master Slave
今天,帶給大家一段JDBC實作Master Slave的程式碼,好了,不多說了,我們直接上程式碼吧。
具體程式碼如下:
package com.lyz.test; import java.beans.PropertyVetoException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import com.mchange.v2.c3p0.ComboPooledDataSource; /** * Mysql JDBC 实现Master Slave * * @author liuyazhuang * @datetime 2016-11-17 * */ public class ReplicationDriverTest { private static final String URL = "jdbc:mysql://127.0.0.1:3306/test1?useUnicode=true&characterEncoding=utf8"; private static final String DRIVER = "com.mysql.jdbc.Driver"; /* Master Slave */ private static final String replicationURL = "jdbc:mysql:replication://localhost:3306,10.2.15.123:3306/test?useUnicode=true&characterEncoding=utf8"; /* 负载平衡 */ private static final String loadBalanceURL = "jdbc:mysql:loadbalance://localhost:3306,10.2.15.123:3306/test?useUnicode=true&characterEncoding=utf8"; private static final String REPLICATION_DRIVER = "com.mysql.jdbc.ReplicationDriver"; public static void main(String[] args) throws SQLException { // oneDB(); // replicationDB(URL); // replicationDB(replicationURL); replicationDB(loadBalanceURL); } public static void replicationDB(String url) throws SQLException { ComboPooledDataSource dataSource = new ComboPooledDataSource(); try { dataSource.setDriverClass(REPLICATION_DRIVER); } catch (PropertyVetoException e1) { e1.printStackTrace(); } dataSource.setJdbcUrl(url); dataSource.setMaxPoolSize(10); dataSource.setMinPoolSize(10); dataSource.setUser("kevin"); dataSource.setPassword("123456"); dataSource.setCheckoutTimeout(1000); dataSource.setDataSourceName("datasource"); dataSource.setInitialPoolSize(10); try { Connection connection = dataSource.getConnection(); connection.setReadOnly(true);//设置为只读,代理类将会获取Slave数据库连接,否则设置Master连接 java.sql.PreparedStatement pStatement_ = connection.prepareStatement("SELECT user_id, username, PASSWORD, email FROM account_0 LIMIT 0,3;"); ResultSet rs = pStatement_.executeQuery(); while (rs.next()) { System.out.println(rs.getInt(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3) + "\t" + rs.getString(4)); } rs.close(); pStatement_.close(); connection.close(); } catch (SQLException e) { e.printStackTrace(); } Connection connection = dataSource.getConnection(); connection.setReadOnly(false);//设置为只读,代理类将会获取Slave数据库连接,否则设置Master连接 java.sql.PreparedStatement pStatement_ = connection.prepareStatement("UPDATE account_0 SET username = 'kevin' , PASSWORD = 'password' ,email = 'xxxx' WHERE user_id = '1001' ;"); int row = pStatement_.executeUpdate(); System.out.println(row); pStatement_.close(); connection.close(); } public static void oneDB() throws SQLException { ComboPooledDataSource dataSource = new ComboPooledDataSource(); try { dataSource.setDriverClass(DRIVER); } catch (PropertyVetoException e1) { e1.printStackTrace(); } dataSource.setJdbcUrl(URL); dataSource.setMaxPoolSize(10); dataSource.setMinPoolSize(10); dataSource.setUser("root"); dataSource.setPassword("123456"); dataSource.setCheckoutTimeout(1000); dataSource.setDataSourceName("datasource00"); dataSource.setInitialPoolSize(10); try { Connection connection = dataSource.getConnection(); java.sql.PreparedStatement pStatement_ = connection.prepareStatement("SELECT * FROM user limit 1"); ResultSet rs = pStatement_.executeQuery(); while (rs.next()) { System.out.println(rs.getInt(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3) + "\t" + rs.getString(4)); } rs.close(); pStatement_.close(); connection.close(); } catch (SQLException e) { e.printStackTrace(); } Connection connection = dataSource.getConnection(); java.sql.PreparedStatement pStatement_ = connection.prepareStatement("UPDATE user SET NAME = 'KEVIN-LUAN' , sex = '1' , age = '89' WHERE id = 16 ;"); int row = pStatement_.executeUpdate(); System.out.println(row); pStatement_.close(); connection.close(); } }
以上就是MySQL之-JDBC 實作Master Slave的內容,更多相關內容請關注PHP中文網(www.php.cn)!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

master和host的區別有:1、host可以扮演客戶端或伺服器的角色,而master是分散式系統中負責協調和管理其他從伺服器的中央伺服器;2、host是普通的電腦設備,而master通常具有更高的處理能力和資源,用於處理和分發任務、管理資料和維護整個系統的穩定性;3、host是網路中的一個節點,而master是在分散式系統中擔任核心角色的伺服器。

Java8-291之後,禁用了TLS1.1,使JDBC無法用SSL連接SqlServer2008怎麼辦,以下是解決辦法修改java.security檔案1.找到jre的java.security檔案如果是jre,在{JAVA_HOME}/jre/ lib/security中,例如????C:\ProgramFiles\Java\jre1.8.0_301\lib\security如果是Eclipse綠色免安裝便攜版在安裝資料夾搜尋java.security,例如?????xxx\plugins \org

隨著Java的廣泛應用,Java程式在連接資料庫時經常會出現JDBC錯誤。 JDBC(JavaDatabaseConnectivity)是Java中用於連接資料庫的程式設計接口,因此,JDBC錯誤是在Java程式與資料庫互動時遇到的錯誤。以下將介紹一些最常見的JDBC錯誤及如何解決和避免它們。 ClassNotFoundException這是最常見的JDBC

一、說明在JDBC中,executeBatch這個方法可以將多個dml語句批次執行,效率比單一執行executeUpdate高很多,這是什麼原理呢?在mysql和oracle中又是如何實現批次執行的呢?本文將為大家介紹背後的原理。二、實驗介紹本實驗將透過以下三步驟進行a.記錄jdbc在mysql中批量執行和單條執行的耗時b.記錄jdbc在oracle中批量執行和單條執行的耗時c.記錄oracleplsql批量執行和單條執行的耗時相關java和資料庫版本如下:Java17,Mysql8,Oracl

一、資料庫程式設計的必備條件程式語言,如Java,C、C++、Python等資料庫,如Oracle,MySQL,SQLServer等資料庫驅動套件:不同的資料庫,對應不同的程式語言提供了不同的資料庫驅動包,如:MySQL提供了Java的驅動包mysql-connector-java,需要基於Java操作MySQL即需要該驅動包。同樣的,要基於Java操作Oracle資料庫則需要Oracle的資料庫驅動包ojdbc。二、Java的資料庫程式設計:JDBCJDBC,即JavaDatabaseConnectiv

近年來,Java語言的應用越來越廣泛,而JDBCAPI是Java應用程式中與資料庫互動的一種創意方法,JDBC基於一種名為ODBC的開放資料庫連接標準,使得Java應用程式能夠連接到任何資料庫管理系統(DBMS)。其中,MySQL更是一款備受青睞的資料庫管理系統。然而,連接MySQL資料庫時,開發人員也會遇到一些常見問題,本文旨在介紹JDBCAPI連接M

Hibernate與JDBC的差異:抽象層級:Hibernate提供高階物件映射和查詢生成,而JDBC需要手動編寫程式碼。物件-關聯映射:Hibernate映射Java物件和資料庫表,而JDBC不提供此功能。查詢產生:Hibernate使用HQL簡化查詢生成,而JDBC需要寫複雜的SQL查詢。事務管理:Hibernate自動管理事務,而JDBC需要手動管理。

JDBC基礎入門概念JDBC(JavaDataBaseConnectivity,java資料庫連接)是一種用於執行SQL語句的JavaAPI,可以為多種關係型資料庫提供統一訪問,它是由一組用Java語言編寫的類別和介面組成的。 JDBC規範定義接口,具體的實作由各大資料庫廠商來實現。 JDBC是Java存取資料庫的標準規範,真正怎麼操作資料庫還需要具體的實作類別,也就是資料庫驅動。每個資料庫廠商根據自家資料庫的通訊格式編寫好自己資料庫的驅動。所以我們只需要會呼叫J
