JFinal 多数据源切换,实现数据迁移

来源:互联网 发布:匡恩网络武汉 编辑:程序博客网 时间:2024/06/06 00:33


第一步:使用单例模式,启动两个数据池 。DataSource2同 DataSource1

public class DataSource1 {private DataSource1(){}private static DruidPlugin druidPlugin1 ;private static Properties prop = new Properties();static {try {prop.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("application.conf"));} catch (IOException e) {e.printStackTrace();}}public static DruidPlugin getInstance(){if(druidPlugin1 == null){druidPlugin1  = new DruidPlugin(prop.getProperty("db.url"),prop.getProperty("db.username"),prop.getProperty("db.password"));druidPlugin1.start();}return druidPlugin1;}}

//实现数据迁移

public class Test {public static void dbTest(List<String> tableNames) {DruidPlugin dataSource1 = DataSource1.getInstance();DruidPlugin dataSource2 = DataSource2.getInstance();try {DbKit.addConfig(new Config("mysql1", dataSource1.getDataSource()));//Db的名字DbKit.addConfig(new Config("mysql2", dataSource2.getDataSource()));for (String tableName : tableNames) {List<Record> records = Db.use("mysql1").find("select * from " + tableName);Db.use("mysql2").batchSave(tableName, records, 20);//Db.use("mysql2")实现切换}} finally {dataSource1.stop();dataSource2.stop();}}public static void main(String[] args) {List<String> tableNames = new ArrayList<String>();tableNames.add("t_b_detail_test");dbTest(tableNames);}}


注意:使用的是JFinal  2.2版本,DbKit.addConfig方法中可设置数据源的名称












0 0
原创粉丝点击