
一台MySql服务器不同数据库.docx
5页一台MySql服务器不同数据库之间数据同 步 解决方案(Java)原创!前提:目前MySql数据库中有两个数据库,名称分别为:db01和db02db01中的人员表叫t_user_info; db02中的人员表叫t_user需求:将表 t_user_info(id,name,type,content,createtime)的数据导入到表 t_use( userid,username,usertype, usercontent,user createtime) 中第一步:运用JDBC建立数据源/*** JDBC连接数据库(dbO1) bgy* @return Connection*/publicstatic Connection getConnection01()throws SQLException,java.lang.ClassNotFoundException{〃第一步:加载MySQL的JDBC的驱动Class.forName("com.mysql.jdbc.Driver");〃取得连接的url,能访问MySQL数据库的用户名,密码;db01:数据库名String url = "jdbc:mysql://192.168.88.1:3306/db01";String username = "bgy01";String password = "123456";〃第二步:创建与MySQL数据库的连接类的实例Connection con01 = (Connection) DriverManager.getConnection(url, username, password);return con01;* JDBC 连接数据库( db02) bgy* @return Connection*/public static Connection getConnection02() throws SQLException,java.lang.ClassNotFoundException{〃第一步:加载MySQL的JDBC的驱动Class.forName("com.mysql.jdbc.Driver");〃取得连接的url,能访问MySQL数据库的用户名,密码;db02:数据库名String url = "jdbc:mysql://192.168.88.2:3306/db02";String username = "bgy02";String password = "123456";〃第二步:创建与MySQL数据库的连接类的实例Connection con02 = (Connection) DriverManager.getConnection(url, username, password);return con02;}第二步:同步数据实现详细(方法 dSynchronous())/***同步数据 bgy* @return String* @throws ClassNotFoundException* @throws SQLException*/public String dSynchronous() throws SQLException, ClassNotFoundException {//前台传来值String param = request.getParameter("param");try{〃设置“dbOl"数据源Connection con01 = getConnection01();Statement sql_statement01 = (Statement) con01.createStatement();〃设置“db02〃数据源Connection con02 = getConnection02();Statement sql_statement02 = (Statement) con02.createStatement();//人员信息 1if("1".equals(param)){〃定位至db01sql_statement01.executeUpdate("use db01");//定位至 db02sql_statement02.executeUpdate("use db02");〃删除“db02''用户表t_user的数据String query1 = "TRUNCATE TABLE t_user;"; //TRUNCATE 比 DELETE 效率高太多sql_statement02.executeUpdate(query1);String query2 = "ALTER TABLE t_user AUTO_INCREMENT=1;"; // 自增序 列设为 1sql_statement02.executeUpdate(query2);〃向“db02''用户表t_user插入数据int tag = sql_statement02.executeUpdate("INSERT INTO db02.t_user (id, name,type,content,createtime) SELECT userid, username, usertype, usercontent, usercreatetime FROM db01.t_user_info");String jsondata = null;if(tag > 0){jsondata = "{'flag':'ok'}";}else{jsondata = "{'flag':'error'}";}}//“其余”if("2".equals(param)){//业务逻辑代码}//“其余”else{//业务逻辑代码}//关闭数据源sql_statement01.close();conWly.close();sql_statement02.close();conYxl.close();}catch(java.lang.ClassNotFoundException e){〃加载JDBC错误,所要用的驱动没有找到System.err.print("ClassNotFoundException");//其他错误System.err.println(e.getMessage());}catch(SQLException ex){//显示数据库连接错误或查询错误System.err.println("SQLException: " + ex.getMessage());}return SUCCESS;}。
