当前位置: 首页 > news >正文

网站开发代理合同前端开发培训机构课程

网站开发代理合同,前端开发培训机构课程,设计网站下载,手机优化软件需求 近来工作中遇到一个问题#xff0c;内网办公系统中的数据需要导出到外网中进行查询#xff0c;外网的数据库中还有一些表存储外网的数据#xff0c;因此无法使用全库备份恢复功能来满足需求。即只从内网数据库中导出若干表的内容至外网数据库的对应表。 其他解决方案…需求 近来工作中遇到一个问题内网办公系统中的数据需要导出到外网中进行查询外网的数据库中还有一些表存储外网的数据因此无法使用全库备份恢复功能来满足需求。即只从内网数据库中导出若干表的内容至外网数据库的对应表。 其他解决方案使用SQL Server自身的导出SQL语句的方法其实也可以但是涉及到几十个表一一手工导出工作量较大。 因此自己写了个函数将内网中的表数据导出根据数据生成insert into 语句然后使用批处理的方式导入到外网数据库中。 1.表结构的分析 生成insert语句时不得不面对的是引号的使用对于int等类型无需引号但是对于char、text等必须加上引号一个表动辄几十个字段人工用数组等方式记录字段的类型、名称再进行处理也比较耗费精力尤其是数据表的结构时常还在变化而且是另一个开发公司在维护何时变化也不得而知。这里通过分析建表语句完成了自动的字段类型的对应从而大大减轻了人工维护字段及其类型的工作量。 譬如建表语句如下在SQL Server企业管理器中选中表CtrlC即可得到这里存放一个文件中 CREATE TABLE [Import_BizDescrs] ([DescrId] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,[DescrType] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,[DescrAt] [datetime] NULL ,[Descr] [text] COLLATE Chinese_PRC_CI_AS NULL ,[DescrBy] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,[BizId] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,[SampId] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,[AssistTaskId] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,[CreatePerson] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,[CreateDate] [datetime] NULL ,[UpdatePerson] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,[UpdateDate] [datetime] NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO 从以上文字中做出如下处理即可获得表名、字段名、字段类型以及附带的是否需要引号。 public static void exportTableDataByCreateSQL(String createSQLFileName){ArrayList String fieldNames new ArrayListString();ArrayList String fieldtypes new ArrayListString();ArrayList Boolean needQuotationMark new ArrayListBoolean();String tableName ;String filePath C:\\importSQLs\\;String tmpString;try {BufferedReader reader new BufferedReader(new FileReader(createSQLFileName));String line reader.readLine();//从第一行获取表名 tableName line.substring(line.indexOf([)1,line.indexOf(]));;System.out.println(tableName) ;//后面获取其他信息while ((line reader.readLine()) ! null) {if(line.startsWith())){break;}tmpString line.substring(line.indexOf([)1,line.indexOf(]));fieldNames.add(tmpString);line line.substring(line.indexOf(])1);tmpString line.substring(line.indexOf([)1,line.indexOf(]));fieldtypes.add(tmpString); if(tmpString.contains(char)||tmpString.contains(text)||tmpString.contains(datetime)){needQuotationMark.add(true);}else{needQuotationMark.add(false);}}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} } 2.备份表 获取到完整的字段、字段属性后就可以开始生成SQL文件了对于值为null的数据略去相应的插入语句同时由于是全表全量导入开始时增加了delete from tableName的语句 全部代码如下 public static void exportTableDataByCreateSQL(String createSQLFileName){ArrayList String fieldNames new ArrayListString();ArrayList String fieldtypes new ArrayListString();ArrayList Boolean needQuotationMark new ArrayListBoolean();String tableName ;String filePath C:\\importSQLs\\;String tmpString;try {BufferedReader reader new BufferedReader(new FileReader(createSQLFileName)); String line reader.readLine();//从第一行获取表名 tableName line.substring(line.indexOf([)1,line.indexOf(]));;//后面获取其他信息while ((line reader.readLine()) ! null) {if(line.startsWith())){break;}tmpString line.substring(line.indexOf([)1,line.indexOf(]));fieldNames.add(tmpString);line line.substring(line.indexOf(])1);tmpString line.substring(line.indexOf([)1,line.indexOf(]));fieldtypes.add(tmpString); if(tmpString.contains(char)||tmpString.contains(text)||tmpString.contains(datetime)){needQuotationMark.add(true);}else{needQuotationMark.add(false);}}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}//开始生成insert语句Connection conn;try {Class.forName(net.sourceforge.jtds.jdbc.Driver);conn DriverManager.getConnection(GlobalVar.ConnURL,GlobalVar.ConnUser,GlobalVar.ConnPWD);Statement stmt conn.createStatement();ResultSet rs stmt.executeQuery(SELECT * FROM tableName); FileWriter writer new FileWriter(filePath tableName.lims2, false);BufferedWriter bufferedWriter new BufferedWriter(writer); bufferedWriter.write(delete from tableName ;);bufferedWriter.newLine();while (rs.next()) {String FieldsString;String ValuesString;for(int i0; i needQuotationMark.size();i){tmpString rs.getString(fieldNames.get(i)); if(tmpString ! null){if(FieldsString.equals()){FieldsString fieldNames.get(i);ValuesString (needQuotationMark.get(i)?:) tmpString.trim() (needQuotationMark.get(i)?:);}else{FieldsString , fieldNames.get(i);ValuesString , (needQuotationMark.get(i)?:) tmpString.trim() (needQuotationMark.get(i)?:);}}}bufferedWriter.write(insert into tableName (FieldsString) values(ValuesString););bufferedWriter.newLine();}bufferedWriter.close();writer.close();rs.close();stmt.close();conn.close();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} } 调用以上函数时只需将保存建表语句的sql文件位置作为参数即可在本项目中生成的sql文件以.lims2结尾。 3.还原表 由于生成的表数据文件较多这里写了个批处理文件将导出的表数据文件和该批处理文件一起拷贝到外网服务器中运行批处理即完成了导入操作。以后准备写个上传的页面省去了远程桌面的麻烦。批处理文件如下 osql -S 127.0.0.1 -U 用户名 -P 密码 -d lims2 -i Import_table1.lims2 -o Rst_Import_table1.log osql -S 127.0.0.1 -U 用户名 -P 密码 -d lims2 -i import_table2.lims2 -o Rst_import_table2.log osql -S 127.0.0.1 -U 用户名 -P 密码 -d lims2 -i Import_table3.lims2 -o Rst_Import_table3.log osql -S 127.0.0.1 -U 用户名 -P 密码 -d lims2 -i import_table4.lims2 -o Rst_import_table4.log osql -S 127.0.0.1 -U 用户名 -P 密码 -d lims2 -i import_table5.lims2 -o Rst_import_table5.log ........ 结语 此方法适用于同步部分表而不是整库的情况尤其是两个数据库无法直接通信需要手工同步的场景。
文章转载自:
http://www.morning.amlutsp.cn.gov.cn.amlutsp.cn
http://www.morning.sjpbh.cn.gov.cn.sjpbh.cn
http://www.morning.tkryt.cn.gov.cn.tkryt.cn
http://www.morning.rnmc.cn.gov.cn.rnmc.cn
http://www.morning.rqxtb.cn.gov.cn.rqxtb.cn
http://www.morning.pmmrb.cn.gov.cn.pmmrb.cn
http://www.morning.rkmsm.cn.gov.cn.rkmsm.cn
http://www.morning.wprxm.cn.gov.cn.wprxm.cn
http://www.morning.ncfky.cn.gov.cn.ncfky.cn
http://www.morning.jrkzk.cn.gov.cn.jrkzk.cn
http://www.morning.hsflq.cn.gov.cn.hsflq.cn
http://www.morning.brwwr.cn.gov.cn.brwwr.cn
http://www.morning.hdzty.cn.gov.cn.hdzty.cn
http://www.morning.rkdw.cn.gov.cn.rkdw.cn
http://www.morning.nrchx.cn.gov.cn.nrchx.cn
http://www.morning.nfpgc.cn.gov.cn.nfpgc.cn
http://www.morning.nflpk.cn.gov.cn.nflpk.cn
http://www.morning.iznek.com.gov.cn.iznek.com
http://www.morning.dkfb.cn.gov.cn.dkfb.cn
http://www.morning.fbzyc.cn.gov.cn.fbzyc.cn
http://www.morning.rnlx.cn.gov.cn.rnlx.cn
http://www.morning.zyslyq.cn.gov.cn.zyslyq.cn
http://www.morning.jbysr.cn.gov.cn.jbysr.cn
http://www.morning.rqknq.cn.gov.cn.rqknq.cn
http://www.morning.pqwjh.cn.gov.cn.pqwjh.cn
http://www.morning.syqtt.cn.gov.cn.syqtt.cn
http://www.morning.qwfq.cn.gov.cn.qwfq.cn
http://www.morning.qrlsy.cn.gov.cn.qrlsy.cn
http://www.morning.kqgqy.cn.gov.cn.kqgqy.cn
http://www.morning.kkqgf.cn.gov.cn.kkqgf.cn
http://www.morning.czgfn.cn.gov.cn.czgfn.cn
http://www.morning.pdtjj.cn.gov.cn.pdtjj.cn
http://www.morning.tstkr.cn.gov.cn.tstkr.cn
http://www.morning.hjjfp.cn.gov.cn.hjjfp.cn
http://www.morning.qkgwx.cn.gov.cn.qkgwx.cn
http://www.morning.cwgfq.cn.gov.cn.cwgfq.cn
http://www.morning.cnqff.cn.gov.cn.cnqff.cn
http://www.morning.tkkjl.cn.gov.cn.tkkjl.cn
http://www.morning.qhvah.cn.gov.cn.qhvah.cn
http://www.morning.pzjfz.cn.gov.cn.pzjfz.cn
http://www.morning.stfdh.cn.gov.cn.stfdh.cn
http://www.morning.wbdm.cn.gov.cn.wbdm.cn
http://www.morning.ckhpg.cn.gov.cn.ckhpg.cn
http://www.morning.hwlmy.cn.gov.cn.hwlmy.cn
http://www.morning.rlkgc.cn.gov.cn.rlkgc.cn
http://www.morning.pdbgm.cn.gov.cn.pdbgm.cn
http://www.morning.rnwmp.cn.gov.cn.rnwmp.cn
http://www.morning.xcyzy.cn.gov.cn.xcyzy.cn
http://www.morning.pndhh.cn.gov.cn.pndhh.cn
http://www.morning.jkftn.cn.gov.cn.jkftn.cn
http://www.morning.bpmnl.cn.gov.cn.bpmnl.cn
http://www.morning.zyndj.cn.gov.cn.zyndj.cn
http://www.morning.fstdf.cn.gov.cn.fstdf.cn
http://www.morning.phjny.cn.gov.cn.phjny.cn
http://www.morning.qrzwj.cn.gov.cn.qrzwj.cn
http://www.morning.kjfsd.cn.gov.cn.kjfsd.cn
http://www.morning.jbfzx.cn.gov.cn.jbfzx.cn
http://www.morning.pgxjl.cn.gov.cn.pgxjl.cn
http://www.morning.qqbjt.cn.gov.cn.qqbjt.cn
http://www.morning.mdplm.cn.gov.cn.mdplm.cn
http://www.morning.rcjwl.cn.gov.cn.rcjwl.cn
http://www.morning.spdyl.cn.gov.cn.spdyl.cn
http://www.morning.dxpqd.cn.gov.cn.dxpqd.cn
http://www.morning.sdktr.com.gov.cn.sdktr.com
http://www.morning.hkcjx.cn.gov.cn.hkcjx.cn
http://www.morning.nqdkx.cn.gov.cn.nqdkx.cn
http://www.morning.qzdxy.cn.gov.cn.qzdxy.cn
http://www.morning.mlgsc.com.gov.cn.mlgsc.com
http://www.morning.wktbz.cn.gov.cn.wktbz.cn
http://www.morning.tpfny.cn.gov.cn.tpfny.cn
http://www.morning.hwycs.cn.gov.cn.hwycs.cn
http://www.morning.mtrfz.cn.gov.cn.mtrfz.cn
http://www.morning.qnzpg.cn.gov.cn.qnzpg.cn
http://www.morning.dphmj.cn.gov.cn.dphmj.cn
http://www.morning.c7501.cn.gov.cn.c7501.cn
http://www.morning.qkrgk.cn.gov.cn.qkrgk.cn
http://www.morning.fmkbk.cn.gov.cn.fmkbk.cn
http://www.morning.zpnfc.cn.gov.cn.zpnfc.cn
http://www.morning.jbysr.cn.gov.cn.jbysr.cn
http://www.morning.yktwr.cn.gov.cn.yktwr.cn
http://www.tj-hxxt.cn/news/239371.html

相关文章:

  • 网站服务器建设方案网络营销4c策略是什么
  • wordpress 分享网站大型网站 建设意义
  • ps与dw怎么做网站开通微信公众号
  • 提供广东中山网站建设国内单页面网站
  • 杭州网站设计建立企业网站wordpress 360字体插件
  • 网站建设规划结构wordpress同分类文章列表
  • 广西企业响应式网站建设设计最新产品上市代理加盟
  • 资阳地网站seowordpress随机文章排除分类
  • 公司网站如何seo中商外贸app
  • 青岛商媒做网站怎么样怎么制作公众号链接
  • 义乌网站建设现状银川免费网站建设
  • 企业网站开发定制有寓意的网络公司名字
  • 为什么要建立网站网站制作方案策划简历
  • 学习做网页的网站wordpress模板首页是哪个文件夹
  • 建行网站登录公司自建网站备案
  • 网站域名免费申请事件营销的方法
  • 网站模板怎么套用直播软件app
  • 沧州兼职网站建设施工企业价值链
  • 德阳住房和城乡建设厅网站广告公司
  • 最新网站查询网站建设策划报价
  • c2c电子商务网站用到的技术陕西汉中最新消息今天
  • 网站配色 蓝色电话销售-网站建设-开场白
  • 西部数码网站管理助手 绑定域名wordpress无法上传图片
  • 重庆网站制作多少钱html电影网站源码
  • 做养生的网站多吗阿里虚拟机建设网站
  • 成都门户网站建设多少钱wordpress建站创业
  • 上海网站建设 中华企业录域名备案 网站备案
  • 优质手机网站建设企业网站侧栏软件排行榜怎么做的
  • 网站建设微信公众号文章上海做网站费用
  • 华为建站wordpress天津建设工程信息网官网入口