项目背景: 项目需要对两个服务器上的表进行同步,表的结构可能不一样.比如服务器A上的表i同步数据到服务器B上的表j,i和j的结构可能不一样,当然大部分字段是一样的.项目看起来很简单,网上一搜也是很多,什么利用Oracle的同步工具,利用mybatis拦截器拦截sql语句等等.不好意思,由于种种原因,我们项目都没有办法使用.我们最后讨论的方案就是最传统的暴力解决,一条一条插入或者更新,当然这有一个很重要的前提,就是我们的数据不多,最多也就是几万条,如果数据量很多,比如上千万的这种级别,这种方案估计…
为mysql数据库单独的表赋权限 场景:考勤系统需要拿OA数据库td_oa中的flow_run和flow_run_data表中的数据做考勤计算 考勤系统只需要读取这两张表的数据,所以只需要开通一个单独的用户,授予这个用户对这两张表的读取权限即可(最小权限原则可以保证系统最大的安全) 用mysql的图形化管理工具 Navicat Premium 可以很轻松的做到(里面也集成了oracle和sql server的管理) 1.添加单独访问数据库用户 2.对指定表赋权 3.勾选服务器权限选项卡中的sho…
不同数据库之间复制表的数据的方法: 当表目标表存在时: insert into 目的数据库..表 select * from 源数据库..表 当目标表不存在时: select * into 目的数据库..表 from 源数据库..表 --如果在不同的SQL之间: insert into openrowset('sqloledb','目的服务器名';'sa';'',目的数据库.dbo.表) select * from 源数据库..表 -- 创建链接服务器 exec sp_addlinkedserv…
众所周知,Mybatis本身没有提供基于数据库方言的分页功能,而是基于JDBC的游标分页,很容易出现性能问题.网上有很多分页的解决方案,不外乎是基于Mybatis本机的插件机制,通过拦截Sql做分页.但是在像Oracle这样的数据库上,拦截器生成的Sql语句没有变量绑定,而且每次语句的都要去拦截,感觉有点浪费性能. Mybatis Generator是Mybatis的代码生成工具,可以生成大部分的查询语句. 本文提供的分页解决方案是新增Mybatis Generator插件,在用Mybatis…
前言 作为一个数据库,作为数据库中的一张表,随着用户的增多随着时间的推移,总有一天,数据量会大到一个难以处理的地步.这时仅仅一张表的数据就已经超过了千万,无论是查询还是修改,对于它的操作都会很耗时,这时就需要进行数据库切分的操作了. MyBatis实现分表最简单步骤 既然文章的标题都这么写了,不如直接上干货来的比较实际,我们就先来看看如何实现最简单的分表. 1.我们模拟用户表数据量超过千万(虽然实际不太可能) 2.用户表原来的名字叫做user_tab,我们切分为user_tab_0和user_t…
1.相关jar包 <!-- mybatis生成 jar包 --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency> <!-- oracle jar包 -->…
1. maven依赖 <!-- mybatis生成 jar包 --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency> <!-- oracle jar包 -->…
Oracle: SELECT * FROM ALL_TABLES;系统里有权限的表 SELECT * FROM DBA_TABLES; 系统表 SELECT * FROM USER_TABLES; 当前用户下的表     Sql Server 1,利用sysobjects系统表 在这个表中,在数据库中创建的每个对象(例如约束.默认值.日志.规则以及存储过程)都有对应一行,我们在该表中筛选出xtype等于U的所有记录,就为数据库中的表了. 示例语句如下:: select * from sysobj…
以下以数据库t1和test为例.  1.复制表结构及资料 select * into 数据库名.dbo.表名 from 源表(全部数据)     如:select * into t1.dbo.YS1 from test.dbo.DXYS ,此句执行的结果是把test数据库中的DXYS表及数据复制一份到t1数据库中,并命名为YS1,其中t1中的YS1表是新建的.     2.完全复制  insert into 数据库1.dbo.表1 select * from 数据库2.表2 如:insert i…
SQLite DBSync是开源嵌入式数据库SQLite的数据同步引擎,实现了SQLite与SQLite数据库之间以及SQLite与异构数据库(Oracle.MySQL.SQLServer)之间的增量的.双向的数据同步功能. 什么是SQLite DBSync? SQLite DBSync 应用场景是由同步客户端.同步服务端和中心数据库三部分组成. 同步客户端 同步客户端主要由客户端同步引擎和SQLite数据库组成,客户端同步引擎提供了对同步客户端上SQLite数据库的同步管理.同步增量数据捕获以…