Maison base de données tutoriel mysql MySQL - JDBC implémente Master Slave

MySQL - JDBC implémente Master Slave

Jan 21, 2017 pm 01:11 PM

Aujourd'hui, je vais vous apporter un morceau de code pour que JDBC implémente Master Slave. Eh bien, sans plus d'explications, passons directement au code.

Le code spécifique est le suivant :

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();
	}
}
Copier après la connexion

Ce qui précède est le contenu de MySQL-JDBC pour implémenter Master Slave. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (. www.php.cn) !


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est la différence entre maître et hôte Quelle est la différence entre maître et hôte Sep 28, 2023 pm 01:34 PM

Les différences entre le maître et l'hôte sont les suivantes : 1. L'hôte peut jouer le rôle de client ou de serveur, tandis que le maître est le serveur central chargé de coordonner et de gérer les autres serveurs esclaves dans un système distribué. 2. L'hôte est un périphérique informatique ordinaire et le maître ; a généralement une puissance de traitement plus élevée et les ressources sont utilisées pour traiter et distribuer les tâches, gérer les données et maintenir la stabilité de l'ensemble du système 3. L'hôte est un nœud du réseau et le maître est le serveur qui joue un rôle central dans le système distribué.

Après Java8 (291), TLS1.1 est désactivé et JDBC ne peut pas se connecter à SqlServer2008 via SSL. Comment résoudre le problème ? Après Java8 (291), TLS1.1 est désactivé et JDBC ne peut pas se connecter à SqlServer2008 via SSL. Comment résoudre le problème ? May 16, 2023 pm 11:55 PM

Après Java8-291, TLS1.1 est désactivé, de sorte que JDBC ne peut pas se connecter à SqlServer2008 à l'aide de SSL. Que dois-je faire ? Voici la solution pour modifier le fichier java.security 1. Recherchez le fichier java.security de jre. c'est jre, allez dans {JAVA_HOME}/jre/ Dans lib/security, par exemple ????C:\ProgramFiles\Java\jre1.8.0_301\lib\security S'il s'agit de la version portable sans installation verte d'Eclipse. , recherchez java.security dans le dossier d'installation, tel que ????xxx\plugins \org

Erreurs Java : erreurs JDBC, comment les résoudre et les éviter Erreurs Java : erreurs JDBC, comment les résoudre et les éviter Jun 24, 2023 pm 02:40 PM

Avec l'application répandue de Java, des erreurs JDBC se produisent souvent lorsque les programmes Java se connectent aux bases de données. JDBC (JavaDatabaseConnectivity) est une interface de programmation en Java utilisée pour se connecter à une base de données. Par conséquent, une erreur JDBC est une erreur rencontrée lorsqu'un programme Java interagit avec une base de données. Voici quelques-unes des erreurs JDBC les plus courantes et comment les résoudre et les éviter. ClassNotFoundException C'est le JDBC le plus courant

Comment implémenter l'insertion par lots JDBC en Java Comment implémenter l'insertion par lots JDBC en Java May 18, 2023 am 10:02 AM

1. Expliquez que dans JDBC, la méthode executeBatch peut exécuter plusieurs instructions dml par lots et que l'efficacité est bien supérieure à l'exécution individuelle d'executeUpdate. Quel est le principe ? Comment implémenter l'exécution par lots dans MySQL et Oracle ? Cet article vous présentera le principe derrière cela. 2. Introduction à l'expérience Cette expérience sera réalisée en trois étapes : a. Enregistrer la durée d'exécution par lots de jdbc et d'exécution unique dans MySQL. b. Enregistrer la durée d'exécution par lots de jdbc et d'exécution unique dans Oracle ; Enregistrez l'exécution par lots et l'exécution unique d'oracleplsql. Les versions Java et de base de données associées qui prennent du temps d'exécution sont les suivantes : Java17, Mysql8, Oracle.

Comment analyser la programmation JDBC dans MySQL Comment analyser la programmation JDBC dans MySQL May 30, 2023 pm 10:19 PM

1. Conditions préalables à la programmation de bases de données Langages de programmation, tels que Java, C, C++, Python et autres bases de données, telles qu'Oracle, MySQL, SQLServer et d'autres packages de pilotes de base de données : Différentes bases de données fournissent différents packages de pilotes de base de données correspondant à différents langages de programmation. : MySQL fournit le package de pilotes Java mysql-connector-java, qui est requis pour faire fonctionner MySQL basé sur Java. De même, pour faire fonctionner la base de données Oracle basée sur Java, le package de pilotes de base de données Oracle ojdbc est requis. 2. Programmation de bases de données Java : JDBCJDBC, JavaDatabaseConnectiv

Problèmes courants rencontrés en Java lors de l'utilisation de l'API JDBC pour se connecter à la base de données MySQL Problèmes courants rencontrés en Java lors de l'utilisation de l'API JDBC pour se connecter à la base de données MySQL Jun 10, 2023 am 09:55 AM

Ces dernières années, l'application du langage Java est devenue de plus en plus répandue et JDBCAPI est une méthode créative permettant aux applications Java d'interagir avec les bases de données. JDBC est basé sur un standard de connexion de base de données ouvert appelé ODBC, qui permet aux applications Java de se connecter à n'importe quel type de base de données. système de gestion de base de données (SGBD). Parmi eux, MySQL est un système de gestion de bases de données populaire. Cependant, les développeurs rencontreront également des problèmes courants lors de la connexion aux bases de données MySQL. Cet article vise à présenter la connexion JDBCAPI M.

Quelle est la différence entre le framework Hibernate et JDBC ? Quelle est la différence entre le framework Hibernate et JDBC ? Apr 17, 2024 am 10:33 AM

Différences entre Hibernate et JDBC : Niveau d'abstraction : Hibernate fournit un mappage d'objets et une génération de requêtes de haut niveau, tandis que JDBC nécessite un codage manuel. Mappage objet-relationnel : Hibernate mappe les objets Java et les tables de base de données, alors que JDBC ne fournit pas cette fonctionnalité. Génération de requêtes : Hibernate utilise HQL pour simplifier la génération de requêtes, tandis que JDBC nécessite l'écriture de requêtes SQL complexes. Gestion des transactions : Hibernate gère automatiquement les transactions, tandis que JDBC nécessite une gestion manuelle.

Comment MySQL implémente JDBC Comment MySQL implémente JDBC May 27, 2023 am 11:06 AM

Concepts d'introduction de base de JDBC JDBC (JavaDataBaseConnectivity, connexion à une base de données Java) est une API Java utilisée pour exécuter des instructions SQL et peut fournir un accès unifié à une variété de bases de données relationnelles. Elle est composée d'un ensemble de classes et d'interfaces écrites en langage Java.  La spécification JDBC définit l'interface et l'implémentation spécifique est implémentée par les principaux fournisseurs de bases de données. JDBC est la spécification standard permettant à Java d'accéder aux bases de données. Le fonctionnement réel de la base de données nécessite des classes d'implémentation spécifiques, c'est-à-dire des pilotes de base de données. Chaque fabricant de base de données écrit son propre pilote de base de données selon le format de communication de sa propre base de données. Donc nous devons juste pouvoir appeler J

See all articles