Rumah pangkalan data tutorial mysql MySQL之——JDBC 实现Master Slave

MySQL之——JDBC 实现Master Slave

Jan 21, 2017 pm 01:11 PM

今天,给大家带来一段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();
	}
}
Salin selepas log masuk

以上就是MySQL之——JDBC 实现Master Slave的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah perbezaan antara tuan dan tuan rumah Apakah perbezaan antara tuan dan tuan rumah Sep 28, 2023 pm 01:34 PM

Perbezaan antara tuan dan tuan rumah ialah: 1. Hos boleh memainkan peranan sebagai pelanggan atau pelayan, manakala tuan adalah pelayan pusat yang bertanggungjawab untuk menyelaras dan menguruskan pelayan hamba lain dalam sistem teragih; biasanya mempunyai kuasa pemprosesan yang lebih tinggi dan sumber digunakan untuk memproses dan mengagihkan tugas, mengurus data, dan mengekalkan kestabilan keseluruhan sistem 3. Hos ialah nod dalam rangkaian, dan tuan adalah pelayan yang memainkan peranan utama dalam sistem teragih.

Selepas Java8 (291), TLS1.1 dilumpuhkan dan JDBC tidak boleh menyambung ke SqlServer2008 menggunakan SSL. Selepas Java8 (291), TLS1.1 dilumpuhkan dan JDBC tidak boleh menyambung ke SqlServer2008 menggunakan SSL. May 16, 2023 pm 11:55 PM

Selepas Java8-291, TLS1.1 dinyahdayakan, supaya JDBC tidak dapat menyambung ke SqlServer2008 menggunakan SSL. Berikut adalah penyelesaian untuk mengubah suai fail java.security jre ia adalah jre, pergi ke {JAVA_HOME}/jre/ Dalam lib/security, sebagai contoh????C:\ProgramFiles\Java\jre1.8.0_301\lib\security Jika ia adalah versi mudah alih bebas pemasangan Eclipse , cari java.security dalam folder pemasangan, seperti????xxx\plugins \org

Bagaimana untuk melaksanakan sisipan kelompok JDBC di Jawa Bagaimana untuk melaksanakan sisipan kelompok JDBC di Jawa May 18, 2023 am 10:02 AM

1. Jelaskan bahawa dalam JDBC, kaedah executeBatch boleh melaksanakan berbilang penyata dml dalam kelompok, dan kecekapan adalah lebih tinggi daripada melaksanakan executeUpdate secara individu Apakah prinsipnya? Bagaimana untuk melaksanakan pelaksanaan batch dalam mysql dan oracle? Artikel ini akan memperkenalkan kepada anda prinsip di sebalik ini. 2. Pengenalan Eksperimen Eksperimen ini akan dijalankan melalui tiga langkah berikut: a. Merekodkan penggunaan masa pelaksanaan batch dan pelaksanaan tunggal jdbc dalam mysql b. c. Catatkan pelaksanaan kumpulan dan pelaksanaan tunggal oracleplsql versi java dan pangkalan data yang memakan masa adalah seperti berikut: Java17, Mysql8, Oracle.

Ralat Java: Ralat JDBC, Cara Menyelesaikan dan Mengelak Ralat Java: Ralat JDBC, Cara Menyelesaikan dan Mengelak Jun 24, 2023 pm 02:40 PM

Dengan aplikasi Java yang meluas, ralat JDBC sering berlaku apabila program Java menyambung ke pangkalan data. JDBC (JavaDatabaseConnectivity) ialah antara muka pengaturcaraan dalam Java yang digunakan untuk menyambung ke pangkalan data Oleh itu, ralat JDBC ialah ralat yang dihadapi apabila program Java berinteraksi dengan pangkalan data. Berikut ialah beberapa ralat JDBC yang paling biasa dan cara menyelesaikan dan mengelakkannya. ClassNotFoundException Ini adalah JDBC yang paling biasa

Bagaimana untuk menganalisis pengaturcaraan JDBC dalam MySQL Bagaimana untuk menganalisis pengaturcaraan JDBC dalam MySQL May 30, 2023 pm 10:19 PM

1. Prasyarat untuk pengaturcaraan pangkalan data Bahasa pengaturcaraan, seperti Java, C, C++, Python dan pangkalan data lain, seperti Oracle, MySQL, SQLServer dan pakej pemacu pangkalan data lain: Pangkalan data yang berbeza menyediakan pakej pemacu pangkalan data yang berbeza yang sepadan dengan bahasa pengaturcaraan yang berbeza : MySQL menyediakan pakej pemacu Java mysql-connector-java, yang diperlukan untuk mengendalikan MySQL berdasarkan Java. Begitu juga, untuk mengendalikan pangkalan data Oracle berdasarkan Java, pakej pemacu pangkalan data Oracle ojdbc diperlukan. 2. Pengaturcaraan pangkalan data Java: JDBCJDBC, JavaDatabaseConnectiv

Masalah biasa yang dihadapi dalam Java menggunakan JDBC API untuk menyambung ke pangkalan data MySQL Masalah biasa yang dihadapi dalam Java menggunakan JDBC API untuk menyambung ke pangkalan data MySQL Jun 10, 2023 am 09:55 AM

Dalam tahun-tahun kebelakangan ini, bahasa Java telah digunakan dengan lebih meluas, dan JDBCAPI ialah kaedah kreatif untuk aplikasi Java untuk berinteraksi dengan pangkalan data JDBC adalah berdasarkan standard sambungan pangkalan data terbuka yang dipanggil ODBC, yang membolehkan aplikasi Java menyambung ke mana-mana pangkalan data sistem pengurusan (DBMS). Antaranya, MySQL ialah sistem pengurusan pangkalan data yang popular. Walau bagaimanapun, pembangun juga akan menghadapi beberapa masalah biasa apabila menyambung ke pangkalan data MySQL Artikel ini bertujuan untuk memperkenalkan sambungan JDBCAPI M

Apakah perbezaan antara rangka kerja Hibernate dan JDBC? Apakah perbezaan antara rangka kerja Hibernate dan JDBC? Apr 17, 2024 am 10:33 AM

Perbezaan antara Hibernate dan JDBC: Tahap abstraksi: Hibernate menyediakan pemetaan objek peringkat tinggi dan penjanaan pertanyaan, manakala JDBC memerlukan pengekodan manual. Pemetaan hubungan objek: Hibernate memetakan objek Java dan jadual pangkalan data, manakala JDBC tidak menyediakan fungsi ini. Penjanaan pertanyaan: Hibernate menggunakan HQL untuk memudahkan penjanaan pertanyaan, manakala JDBC memerlukan menulis pertanyaan SQL yang kompleks. Pengurusan transaksi: Hibernate menguruskan transaksi secara automatik, manakala JDBC memerlukan pengurusan manual.

Bagaimana MySQL melaksanakan JDBC Bagaimana MySQL melaksanakan JDBC May 27, 2023 am 11:06 AM

Konsep pengenalan asas JDBC JDBC (JavaDataBaseConnectivity, sambungan pangkalan data java) ialah API Java yang digunakan untuk melaksanakan pernyataan SQL dan boleh menyediakan akses bersatu kepada pelbagai pangkalan data hubungan Ia terdiri daripada satu set kelas dan antara muka yang ditulis dalam bahasa Java.  Spesifikasi JDBC mentakrifkan antara muka, dan pelaksanaan khusus dilaksanakan oleh vendor pangkalan data utama. JDBC ialah spesifikasi standard untuk Java untuk mengakses pangkalan data Bagaimana untuk mengendalikan pangkalan data memerlukan kelas pelaksanaan khusus, iaitu pemacu pangkalan data. Setiap pengeluar pangkalan data menulis pemacu pangkalan datanya sendiri mengikut format komunikasi pangkalan datanya sendiri. Jadi kita hanya perlu dapat menghubungi J

See all articles