mysql分库分表 dangdang

 LZ工作快5年了,一直没有接触过数据库分库分表的业务,这不最近借助跳槽的动力,自己搞了一波,用的是dangdang开源的一个分库分表插件,实现了简单的分库分表的功能,话不多说,代码开路,github地址https://github.com/dangdangdotcom/sharding-jdbc。

       首先是jar包引用,maven以来如下

Xml代码   收藏代码
  1. <dependency>  
  2.     <groupId>com.dangdanggroupId>  
  3.     <artifactId>sharding-jdbc-coreartifactId>  
  4.     <version>1.3.3version>  
  5. dependency>  
  6. <dependency>  
  7.     <groupId>com.dangdanggroupId>  
  8.     <artifactId>sharding-jdbc-config-springartifactId>  
  9.     <version>1.3.3version>  
  10. dependency>  

 

       然后就是spring配置,单独建了一个文件,主xml中import一下,配置数据源和分库分表规则,目前的规则逻辑都是按照id%2配置的,具体应用按照自己实际业务来。

Xml代码   收藏代码
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.        xmlns:rdb="http://www.dangdang.com/schema/ddframe/rdb"  
  5.        xsi:schemaLocation="http://www.springframework.org/schema/beans  
  6.                         http://www.springframework.org/schema/beans/spring-beans.xsd  
  7.                         http://www.dangdang.com/schema/ddframe/rdb  
  8.                         http://www.dangdang.com/schema/ddframe/rdb/rdb.xsd">  
  9.   
  10.     <bean id="statFilter" class="com.alibaba.druid.filter.logging.Slf4jLogFilter">  
  11.         <property name="statementExecutableSqlLogEnable" value="false"/>  
  12.         <property name="dataSourceLogEnabled" value="false"/>  
  13.     bean>  
  14.     <bean id="logFilter" class="com.alibaba.druid.filter.stat.StatFilter">  
  15.         <property name="slowSqlMillis" value="50"/>  
  16.         <property name="logSlowSql" value="false"/>  
  17.         <property name="mergeSql" value="true"/>  
  18.     bean>  
  19.   
  20.     <bean id="master0" class="com.alibaba.druid.pool.DruidDataSource" init-method="init"  
  21.           destroy-method="close">  
  22.         <property name="driverClassName" value="com.mysql.jdbc.Driver"/>  
  23.         <property name="username" value="root"/>  
  24.         <property name="url" value="jdbc:mysql://127.0.0.1:3306/demodb00"/>  
  25.         <property name="password" value="root"/>  
  26.         <property name="maxActive" value="10"/>  
  27.         <property name="initialSize" value="1"/>  
  28.         <property name="maxWait" value="60000"/>  
  29.         <property name="minIdle" value="1"/>  
  30.         <property name="timeBetweenEvictionRunsMillis" value="60000"/>  
  31.         <property name="minEvictableIdleTimeMillis" value="300000"/>  
  32.         <property name="validationQuery" value="SELECT 'x'"/>  
  33.         <property name="testWhileIdle" value="true"/>  
  34.         <property name="testOnBorrow" value="false"/>  
  35.         <property name="testOnReturn" value="false"/>  
  36.         <property name="poolPreparedStatements" value="true"/>  
  37.         <property name="maxPoolPreparedStatementPerConnectionSize" value="50"/>  
  38.         <property name="maxOpenPreparedStatements" value="100"/>  
  39.         <property name="proxyFilters">  
  40.             <list>  
  41.                 <ref bean="statFilter"/>  
  42.                 <ref bean="logFilter"/>  
  43.             list>  
  44.         property>  
  45.     bean>  
  46.   
  47.     <bean id="master1" class="com.alibaba.druid.pool.DruidDataSource" init-method="init"  
  48.           destroy-method="close">  
  49.         <property name="driverClassName" value="com.mysql.jdbc.Driver"/>  
  50.         <property name="username" value="root"/>  
  51.         <property name="url" value="jdbc:mysql://127.0.0.1:3306/demodb01"/>  
  52.         <property name="password" value="root"/>  
  53.         <property name="maxActive" value="10"/>  
  54.         <property name="initialSize" value="1"/>  
  55.         <property name="maxWait" value="60000"/>  
  56.         <property name="minIdle" value="1"/>  
  57.         <property name="timeBetweenEvictionRunsMillis" value="60000"/>  
  58.         <property name="minEvictableIdleTimeMillis" value="300000"/>  
  59.         <property name="validationQuery" value="SELECT 'x'"/>  
  60.         <property name="testWhileIdle" value="true"/>  
  61.         <property name="testOnBorrow" value="false"/>  
  62.         <property name="testOnReturn" value="false"/>  
  63.         <property name="poolPreparedStatements" value="true"/>  
  64.         <property name="maxPoolPreparedStatementPerConnectionSize" value="50"/>  
  65.         <property name="maxOpenPreparedStatements" value="100"/>  
  66.         <property name="proxyFilters">  
  67.             <list>  
  68.                 <ref bean="statFilter"/>  
  69.                 <ref bean="logFilter"/>  
  70.             list>  
  71.         property>  
  72.     bean>  
  73.   
  74.     

你可能感兴趣的:(#,Mysql,#,Spring)