• Java代码实现不同应用系统中数据同步程序


    系统A---->系统B。系统A表数据有新增、修改、删除时,会把这些发生记录的数据同步至系统B。

    实现思想:(一)、首先怎么确定系统A需要同步的表中数据发生了变化。

    (二)、什么时候需要同步这些有变化的数据。

    (三)、咋实现?

    第一步:使用SQL中的触发器记录数据变化

    触发器的作用是针对需要同步的表进行一个监控作用,当表数据发生了变化,触发器会立马检测到,进行数据记录,此时,我这里使用一个中间临时表进行记录。

     实现触发器的SQL:创建一个触发器名称为BIUDFER_YWCL_CASE_220905,需要针对哪张表进行检测———CCS_CASE_BASE_T。监控这张表的动作是update、insert、delete。

    数字1表示新增,2表示修改,3表示删除。主要是根据针对监控的表的主键进行记录,此表的主键是caseid。

    1. CREATE OR REPLACE TRIGGER BIUDFER_YWCL_CASE_220905
    2. after update or insert or delete on CCS_CASE_BASE_T
    3. FOR EACH ROW
    4. declare
    5. v_num number;
    6. BEGIN
    7. CASE
    8. WHEN inserting THEN
    9. insert into EXCH_TRIGGER values(:new.caseid ,'1','CCS_CASE_BASE_T',to_char(list_id.nextval));
    10. WHEN UPDATING THEN
    11. select count(1) into v_num from EXCH_TRIGGER where INFO_CTRLID=:new.caseid and LIST_TABLE='CCS_CASE_BASE_T' and INFO_CTRLSTATE in('1','2');
    12. if v_num=0 then
    13. insert into EXCH_TRIGGER values(:new.caseid ,'2','CCS_CASE_BASE_T',to_char(list_id.nextval));
    14. end if;
    15. WHEN DELETING THEN
    16. select count(1) into v_num from EXCH_TRIGGER where INFO_CTRLID=:old.caseid and LIST_TABLE='CCS_CASE_BASE_T' and INFO_CTRLSTATE in('1');
    17. if v_num=1 then
    18. delete from EXCH_TRIGGER where INFO_CTRLID=:old.caseid and LIST_TABLE='CCS_CASE_BASE_T' and INFO_CTRLSTATE in('1');
    19. else
    20. select count(1) into v_num from EXCH_TRIGGER where INFO_CTRLID=:old.caseid and LIST_TABLE='CCS_CASE_BASE_T' and INFO_CTRLSTATE in('2');
    21. if v_num=1 then
    22. delete from EXCH_TRIGGER where INFO_CTRLID=:old.caseid and LIST_TABLE='CCS_CASE_BASE_T' and INFO_CTRLSTATE in('2');
    23. insert into EXCH_TRIGGER values(:old.caseid ,'3','CCS_CASE_BASE_T',to_char(list_id.nextval));
    24. else
    25. insert into EXCH_TRIGGER values(:old.caseid ,'3','CCS_CASE_BASE_T',to_char(list_id.nextval));
    26. end if;
    27. end if;
    28. END CASE;
    29. END;

    临时表EXCH_TRIGGER,建表语句

    1. CREATE TABLE "EXCH_TRIGGER"
    2. (
    3. "INFO_CTRLID" VARCHAR2(40),
    4. "INFO_CTRLSTATE" VARCHAR2(1),
    5. "LIST_TABLE" VARCHAR2(200),
    6. "LIST_ID" VARCHAR2(18) NOT NULL,
    7. NOT CLUSTER PRIMARY KEY("LIST_ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
    8. COMMENT ON TABLE "EXCH_TRIGGER" IS '导库控制表';
    9. COMMENT ON COLUMN "EXCH_TRIGGER"."INFO_CTRLSTATE" IS '操作数据库状态:1=insert,2=update,3=delete';
    10. COMMENT ON COLUMN "EXCH_TRIGGER"."LIST_TABLE" IS '操作表';

     临时表的序列,自增id。

    CREATE SEQUENCE "LIST_ID" INCREMENT BY 1 START WITH 1 MAXVALUE 999999999 MINVALUE 1 CACHE 20;

    第二步、Java程序实现

    代码中要随时知道表中有记录生成,就需要用到定时任务。所以就是编写定时任务。

    1. "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:context="http://www.springframework.org/schema/context"
    5. xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
    6. xsi:schemaLocation="
    7. http://www.springframework.org/schema/beans
    8. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    9. http://www.springframework.org/schema/context
    10. http://www.springframework.org/schema/context/spring-context-3.0.xsd
    11. http://www.directwebremoting.org/schema/spring-dwr
    12. http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd">
    13. <bean id="quartz" lazy-init='false' class="org.springframework.scheduling.quartz.SchedulerFactoryBean">bean>
    14. <bean id="MyDzfwQuartz" class="com.zrar.main.quartz.MyDzfwQuartz">bean>
    15. <bean id="MyDzfwTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    16. <property name="targetObject">
    17. <ref bean="MyDzfwQuartz"/>
    18. property>
    19. <property name="targetMethod" value="dataChange">
    20. property>
    21. bean>
    22. <bean id="MyDzfwTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    23. <property name="jobDetail" ref="MyDzfwTask" />
    24. <property name="cronExpression" value="0 * * * * ?" />
    25. bean>
    26. <bean id="HljToGxbZskQuartz" class="com.zrar.main.quartz.HljToGxbZskQuartz">bean>
    27. <bean id="HljToGxbZskDataChangeTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    28. <property name="targetObject">
    29. <ref bean="HljToGxbZskQuartz"/>
    30. property>
    31. <property name="targetMethod" value="dataChange">
    32. property>
    33. bean>
    34. <bean id="HljToGxbZskDataChangeTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    35. <property name="jobDetail" ref="HljToGxbZskDataChangeTask" />
    36. <property name="cronExpression" value="0 * * * * ?" />
    37. bean>
    38. <bean id="HljToGxbQuartz" class="com.zrar.main.quartz.HljToGxbQuartz">bean>
    39. <bean id="HljToGxbDataChangeTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    40. <property name="targetObject">
    41. <ref bean="HljToGxbQuartz"/>
    42. property>
    43. <property name="targetMethod" value="dataChange">
    44. property>
    45. bean>
    46. <bean id="HljToGxbDataChangeTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    47. <property name="jobDetail" ref="HljToGxbDataChangeTask" />
    48. <property name="cronExpression" value="0 * * * * ?" />
    49. bean>
    50. <bean id="HljToGxbYYQuartz" class="com.zrar.main.quartz.HljToGxbYYQuartz">bean>
    51. <bean id="HljToGxbYYDataChangeTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    52. <property name="targetObject">
    53. <ref bean="HljToGxbYYQuartz"/>
    54. property>
    55. <property name="targetMethod" value="dataChange">
    56. property>
    57. bean>
    58. <bean id="HljToGxbYYDataChangeTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    59. <property name="jobDetail" ref="HljToGxbYYDataChangeTask" />
    60. <property name="cronExpression" value="0 * * * * ?" />
    61. bean>
    62. <bean id="myDzfwStartQuertz" lazy-init="true" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
    63. <property name="triggers">
    64. <list>
    65. <ref bean="MyDzfwTrigger"/>
    66. <ref bean="HljToGxbDataChangeTrigger"/>
    67. <ref bean="HljToGxbZskDataChangeTrigger"/>
    68. <ref bean="HljToGxbYYDataChangeTrigger"/>
    69. list>
    70. property>
    71. bean>
    72. beans>

    定时任务完成后,就编写实现类与方法

    1. package com.zrar.main.quartz;
    2. import com.alibaba.fastjson.JSONObject;
    3. import com.zrar.easyweb.core.util.PropertyManager;
    4. import com.zrar.easyweb.persistence.core.IBaseZrarDao;
    5. import com.zrar.main.zskbo.ZlInfoBO;
    6. import com.zrar.main.zskbo.ZlInfoNrBO;
    7. import com.zrar.main.util.HttpRequestUtil;
    8. import com.zrar.main.vo.ExchCaseTriggerVO;
    9. import javax.annotation.Resource;
    10. import java.util.HashMap;
    11. import java.util.List;
    12. import java.util.Map;
    13. public class HljToGxbZskQuartz {
    14. private static String HLJTOGXBZSK_URL= PropertyManager.getProperty("HLJTOGXBZSK_URL","application");
    15. //黑龙江知识库的ZL_INFO、ZL_INFO_NR
    16. public static Map zsk= new HashMap();
    17. static {
    18. zsk.put("ZL_INFO", ZlInfoBO.class);
    19. zsk.put("ZL_INFO_NR", ZlInfoNrBO.class);
    20. }
    21. @Resource
    22. private IBaseZrarDao daozsk;
    23. public void dataChange() {
    24. String sql="select * from EXCH_TRIGGER order by to_number(LIST_ID)";
    25. String sql1="delete from EXCH_TRIGGER where LIST_ID=?";
    26. List ls= daozsk.getList(sql, ExchCaseTriggerVO.class);
    27. for(ExchCaseTriggerVO vo:ls) {
    28. String cid=vo.getInfoCtrlid();
    29. String stat=vo.getInfoCtrlstate();
    30. String table=vo.getListTable().toUpperCase();
    31. String id=vo.getListId();
    32. Map m1= new HashMap();
    33. m1.put("cid", cid);
    34. m1.put("stat", stat);
    35. m1.put("table", table);
    36. if("1".equals(stat)||"2".equals(stat)) {
    37. Object obj=daozsk.getBO(zsk.get(table), cid);
    38. m1.put("obj", obj);
    39. }
    40. String s= HttpRequestUtil.httpRequest(HLJTOGXBZSK_URL, m1);
    41. JSONObject jo= JSONObject.parseObject(s);
    42. String code=jo.getString("code");
    43. if("0".equals(code)) {
    44. daozsk.update(sql1,id);
    45. }
    46. }
    47. }
    48. }
    1. package com.zrar.main.util;
    2. import java.nio.charset.StandardCharsets;
    3. import org.apache.commons.lang.StringUtils;
    4. import org.apache.http.HttpResponse;
    5. import org.apache.http.client.HttpClient;
    6. import org.apache.http.client.methods.HttpPost;
    7. import org.apache.http.entity.StringEntity;
    8. import org.apache.http.impl.client.HttpClients;
    9. import org.apache.http.message.BasicHeader;
    10. import org.apache.http.util.EntityUtils;
    11. import com.alibaba.fastjson.JSON;
    12. import com.zrar.easyweb.core.util.PropertyManager;
    13. public class HttpRequestUtil {
    14. private static String url=PropertyManager.getProperty("JH_URL","application");
    15. /**
    16. * 发起https请求并获取结果
    17. *
    18. * @param requestUrl 请求地址
    19. * @param commoninfo 提交的数据
    20. * @return
    21. */
    22. public static String httpRequest(String requestUrl, Object commoninfo){
    23. //返回的code -1 为失败
    24. String result = "{\"message\": \"%s\",\"code\": \"-1\"}";
    25. HttpClient client = HttpClients.createDefault();
    26. if(StringUtils.isEmpty(requestUrl)){
    27. requestUrl=url;
    28. }
    29. try {
    30. HttpPost post = new HttpPost(requestUrl);
    31. String materialInfo=JSON.toJSONString(commoninfo);
    32. post.setHeader(new BasicHeader("content-type", "text/plain;charset=utf-8"));
    33. //String body =materialInfo;
    34. post.setEntity(new StringEntity(materialInfo,StandardCharsets.UTF_8));
    35. //发送请求
    36. HttpResponse response = client.execute(post);
    37. //从response获取返回内容
    38. result= EntityUtils.toString(response.getEntity());
    39. System.out.println(result);
    40. }catch(Exception e){
    41. e.printStackTrace();
    42. result=String.format(result,"调用接口失败,异常信息:"+e.toString());
    43. }
    44. return result;
    45. }
    46. }

    第三步、系统A数据推送到接口方处理数据,存储到系统B中。

    1. package com.zrar.main.blh;
    2. import com.alibaba.fastjson.JSONObject;
    3. import com.zrar.easyweb.persistence.core.IBaseZrarDao;
    4. import com.zrar.easyweb.web.core.annotation.BLH;
    5. import com.zrar.easyweb.web.core.annotation.Mapping;
    6. import com.zrar.easyweb.web.core.event.IZrarRequest;
    7. import com.zrar.easyweb.web.core.event.IZrarResponse;
    8. import com.zrar.easyweb.web.core.event.impl.ZrarResponse;
    9. import com.zrar.main.bo.YwclCaseBO;
    10. import com.zrar.main.bo.YwclLzmxBO;
    11. import com.zrar.main.cxbo.YyfwtjBO;
    12. import com.zrar.main.zskbo.ZlInfoBO;
    13. import com.zrar.main.zskbo.ZlInfoNrBO;
    14. import javax.annotation.Resource;
    15. import javax.servlet.http.HttpServletRequest;
    16. import java.io.BufferedReader;
    17. import java.io.IOException;
    18. import java.io.InputStream;
    19. import java.io.InputStreamReader;
    20. import java.util.Arrays;
    21. import java.util.HashMap;
    22. import java.util.Map;
    23. @BLH("HljToGxbBLH")
    24. @Mapping("/hljToGxbBLH")
    25. public class HljToGxbBLH {
    26. public static Map m= new HashMap();
    27. public static Map zsk= new HashMap();
    28. public static Map yyfwtj= new HashMap();
    29. static {
    30. m.put("CCS_CASE_TRANSFER_T", YwclLzmxBO.class);
    31. m.put("CCS_CASE_BASE_T", YwclCaseBO.class);
    32. zsk.put("ZL_INFO", ZlInfoBO.class);
    33. zsk.put("ZL_INFO_NR", ZlInfoNrBO.class);
    34. yyfwtj.put("TJ_YYFWFX", YyfwtjBO.class);
    35. }
    36. @Resource
    37. private IBaseZrarDao dao;
    38. @Resource
    39. private IBaseZrarDao daozsk;
    40. @Resource
    41. private IBaseZrarDao daocx;
    42. /**
    43. * 获取传输的数据
    44. * @param request
    45. * @return
    46. */
    47. private String getQueryString(HttpServletRequest request){
    48. StringBuffer sb = new StringBuffer();
    49. InputStream is = null;
    50. InputStreamReader isr = null;
    51. BufferedReader br = null;
    52. try{
    53. is = request.getInputStream();
    54. isr = new InputStreamReader(is, "UTF-8");
    55. br = new BufferedReader(isr);
    56. String ss = "";
    57. while ((ss = br.readLine()) != null) {
    58. sb.append(ss);
    59. }
    60. }catch(Exception e){
    61. e.printStackTrace();
    62. }finally{
    63. if(br != null){
    64. try {
    65. br.close();
    66. } catch (IOException e) {
    67. e.printStackTrace();
    68. }
    69. }
    70. if(isr != null){
    71. try {
    72. isr.close();
    73. } catch (IOException e) {
    74. e.printStackTrace();
    75. }
    76. }
    77. if(is != null){
    78. try {
    79. is.close();
    80. } catch (IOException e) {
    81. e.printStackTrace();
    82. }
    83. }
    84. }
    85. return sb.toString();
    86. }
    87. /**
    88. * @Description:黑龙江工信部数据同步至部里(主表和流转明细表)
    89. * CCS_CASE_TRANSFER_T CCS_CASE_BASE_T
    90. * @Author: simajilai
    91. * @date: 2022/9/5 17:13
    92. **/
    93. @Mapping("/hljToGxbDataChange")
    94. public IZrarResponse hljToGxbDataChange(IZrarRequest req) {
    95. IZrarResponse res = new ZrarResponse();
    96. HttpServletRequest request=req.getHttpServletRequest();
    97. //获取参数流
    98. String queryString=getQueryString(request);
    99. // System.out.println(queryString);
    100. JSONObject jo= JSONObject.parseObject(queryString);
    101. String table=jo.getString("table");
    102. String stat=jo.getString("stat");
    103. String cid=jo.getString("cid");
    104. Class c=m.get(table);
    105. if("3".equals(stat)) {
    106. Object o=dao.getBO(c, cid);
    107. if(o!=null) {
    108. dao.deleteBO(o);
    109. }
    110. }else if("1".equals(stat)||"2".equals(stat)) {
    111. JSONObject jo1= jo.getJSONObject("obj");
    112. Object o=JSONObject.parseObject(jo1.toString(), c);
    113. dao.saveOrUpdateBO(Arrays.asList(o));
    114. }
    115. res.addResHtml("{\"code\":\"0\",\"message\":\"数据交互成功\"}");
    116. return res;
    117. }
    118. /**
    119. * @Description:
    120. * @Author: simajilai
    121. * @date: 2022/9/6 8:41
    122. **/
    123. @Mapping("/hljToGxbZskDataChange")
    124. public IZrarResponse hljToGxbZskDataChange(IZrarRequest req) {
    125. IZrarResponse res = new ZrarResponse();
    126. HttpServletRequest request=req.getHttpServletRequest();
    127. //获取参数流
    128. String queryString=getQueryString(request);
    129. // System.out.println(queryString);
    130. JSONObject jo= JSONObject.parseObject(queryString);
    131. String table=jo.getString("table");
    132. String stat=jo.getString("stat");
    133. String cid=jo.getString("cid");
    134. Class c=zsk.get(table);
    135. if("3".equals(stat)) {
    136. Object o=daozsk.getBO(c, cid);
    137. if(o!=null) {
    138. daozsk.deleteBO(o);
    139. }
    140. }else if("1".equals(stat)||"2".equals(stat)) {
    141. JSONObject jo1= jo.getJSONObject("obj");
    142. Object o=JSONObject.parseObject(jo1.toString(), c);
    143. daozsk.saveOrUpdateBO(Arrays.asList(o));
    144. }
    145. res.addResHtml("{\"code\":\"0\",\"message\":\"数据交互成功\"}");
    146. return res;
    147. }
    148. /**
    149. * @Description:语音服务统计
    150. * @Author: simajilai
    151. * @date: 2022/9/6 16:06
    152. **/
    153. @Mapping("/hljToGxbYYDataChange")
    154. public IZrarResponse hljToGxbYYDataChange(IZrarRequest req) {
    155. IZrarResponse res = new ZrarResponse();
    156. HttpServletRequest request=req.getHttpServletRequest();
    157. //获取参数流
    158. String queryString=getQueryString(request);
    159. // System.out.println(queryString);
    160. JSONObject jo= JSONObject.parseObject(queryString);
    161. String table=jo.getString("table");
    162. String stat=jo.getString("stat");
    163. String cid=jo.getString("cid");
    164. Class c=yyfwtj.get(table);
    165. if("3".equals(stat)) {
    166. Object o=daocx.getBO(c, cid);
    167. if(o!=null) {
    168. daocx.deleteBO(o);
    169. }
    170. }else if("1".equals(stat)||"2".equals(stat)) {
    171. JSONObject jo1= jo.getJSONObject("obj");
    172. Object o=JSONObject.parseObject(jo1.toString(), c);
    173. daocx.saveOrUpdateBO(Arrays.asList(o));
    174. }
    175. res.addResHtml("{\"code\":\"0\",\"message\":\"数据交互成功\"}");
    176. return res;
    177. }
    178. }

    第四步、如果数据同步涉及到不同的库,什么应用库、查询库、知识库之类的,那么就需要配置数据源。。。

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    4. xsi:schemaLocation="
    5. http://www.springframework.org/schema/beans
    6. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    7. http://www.springframework.org/schema/context
    8. http://www.springframework.org/schema/context/spring-context-3.0.xsd ">
    9. <context:property-placeholder location="classpath*:*.properties" />
    10. <bean id="dataSourceTargetcx" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
    11. <property name="driverClassName" value="${cx.hibernate.connection.driver_class}">property>
    12. <property name="url" value="${cx.hibernate.connection.url}" />
    13. <property name="username"><value>${cx.hibernate.connection.username}value>property>
    14. <property name="password" value="${cx.hibernate.connection.password}"/>
    15. <property name="filters"><value>statvalue>property>
    16. <property name="maxActive"><value>50value>property>
    17. <property name="initialSize"><value>1value>property>
    18. <property name="maxWait"><value>60000value>property>
    19. <property name="minIdle"><value>1value>property>
    20. <property name="timeBetweenEvictionRunsMillis"><value>60000value>property>
    21. <property name="minEvictableIdleTimeMillis"><value>300000value>property>
    22. <property name="validationQuery"><value>SELECT 'x' from dualvalue>property>
    23. <property name="testWhileIdle"><value>truevalue>property>
    24. <property name="testOnBorrow"><value>falsevalue>property>
    25. <property name="testOnReturn"><value>falsevalue>property>
    26. <property name="poolPreparedStatements"><value>truevalue>property>
    27. <property name="maxOpenPreparedStatements"><value>20value>property>
    28. bean>
    29. <bean id="sessionFactorycx"
    30. class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    31. <property name="dataSource" ref="dataSourceTargetcx" />
    32. <property name="hibernateProperties">
    33. <props>
    34. <prop key="hibernate.dialect">${hibernate.dialect}prop>
    35. <prop key="hibernate.show_sql">${hibernate.show_sql}prop>
    36. <prop key="hibernate.format_sql">${hibernate.show_sql}prop>
    37. <prop key="hibernate.generate_statistics">falseprop>
    38. props>
    39. property>
    40. <property name="packagesToScan">
    41. <list>
    42. <value>com.zrar.main.cxbovalue>
    43. list>
    44. property>
    45. bean>
    46. <bean id="persistemce_oraclecx" class="org.springframework.orm.hibernate4.HibernateTemplate">
    47. <property name="sessionFactory" ref="sessionFactorycx">property>
    48. bean>
    49. <bean id="persistemce_oracle_jdbccx" class="org.springframework.jdbc.core.JdbcTemplate">
    50. <property name="dataSource" ref="dataSourceTargetcx">property>
    51. bean>
    52. <bean id="sqlSessionFactorycx" class="org.mybatis.spring.SqlSessionFactoryBean">
    53. <property name="dataSource" ref="dataSourceTargetcx" />
    54. <property name="configLocation" value="classpath:mybatis-config.xml" />
    55. <property name="mapperLocations" value="classpath*:mappers/**/*.xml">property>
    56. bean>
    57. <bean id="sqlSessioncx" class="org.mybatis.spring.SqlSessionTemplate">
    58. <constructor-arg index="0" ref="sqlSessionFactorycx" />
    59. bean>
    60. <bean id="daocx" class="com.zrar.easyweb.persistence.core.factory.BaseZrarDaoFactory">
    61. <property name="hbTemplate" ref="persistemce_oraclecx" />
    62. <property name="jdbcTemplate" ref="persistemce_oracle_jdbccx" />
    63. <property name="sqlSession" ref="sqlSessioncx">property>
    64. bean>
    65. beans>

     配置多个数据源的文件application.properties。

    1. # [\u6570\u636E\u5E93\u914D\u7F6E]
    2. #hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
    3. #hibernate.connection.url=jdbc:oracle:thin:@192.168.2.242:1521:ora242
    4. #hibernate.connection.username=gxb12381
    5. #hibernate.connection.password=gxb12381
    6. hibernate.connection.driver_class=dm.jdbc.driver.DmDriver
    7. hibernate.connection.url=jdbc:dm://192.168.2.240:5236
    8. hibernate.connection.username=hlj12381
    9. hibernate.connection.password=arkj123456
    10. hibernate.dialect=org.hibernate.dialect.OracleDialect
    11. hibernate.default_schema=gxb
    12. hibernate.show_sql=false
    13. hibernate.format_sql=true
    14. cx.hibernate.connection.driver_class=dm.jdbc.driver.DmDriver
    15. cx.hibernate.connection.url=jdbc:dm://192.168.2.240:5236
    16. cx.hibernate.connection.username=hlj12381cx
    17. cx.hibernate.connection.password=arkj123456
    18. zsk.hibernate.connection.driver_class=dm.jdbc.driver.DmDriver
    19. zsk.hibernate.connection.url=jdbc:dm://192.168.2.240:5236
    20. zsk.hibernate.connection.username=hljzsk
    21. zsk.hibernate.connection.password=arkj123456
    22. # Redis settings
    23. # server IP
    24. redis.host=192.168.8.1
    25. # server port
    26. redis.port=6379
    27. # use dbIndex
    28. redis.database=0
    29. redis.password=
    30. # \u63a7\u5236\u4e00\u4e2apool\u6700\u591a\u6709\u591a\u5c11\u4e2a\u72b6\u6001\u4e3aidle(\u7a7a\u95f2\u7684)\u7684jedis\u5b9e\u4f8b
    31. redis.maxIdle=300
    32. # \u8868\u793a\u5f53borrow(\u5f15\u5165)\u4e00\u4e2ajedis\u5b9e\u4f8b\u65f6\uff0c\u6700\u5927\u7684\u7b49\u5f85\u65f6\u95f4\uff0c\u5982\u679c\u8d85\u8fc7\u7b49\u5f85\u65f6\u95f4(\u6beb\u79d2)\uff0c\u5219\u76f4\u63a5\u629b\u51faJedisConnectionException\uff1b
    33. redis.maxWait=3000
    34. # \u5728borrow\u4e00\u4e2ajedis\u5b9e\u4f8b\u65f6\uff0c\u662f\u5426\u63d0\u524d\u8fdb\u884cvalidate\u64cd\u4f5c\uff1b\u5982\u679c\u4e3atrue\uff0c\u5219\u5f97\u5230\u7684jedis\u5b9e\u4f8b\u5747\u662f\u53ef\u7528\u7684
    35. redis.testOnBorrow=true
    36. # \u6700\u5927\u8fde\u63a5\u6570
    37. redis.maxActive=300
    38. JH_URL=http://127.0.0.1:8800/api/dataChange
    39. HLJTOGXB_URL=http://127.0.0.1:8800/hljToGxbBLH/hljToGxbDataChange
    40. HLJTOGXBZSK_URL=http://127.0.0.1:8800/hljToGxbBLH/hljToGxbZskDataChange
    41. HLJTOGXBYY_URL=http://127.0.0.1:8800/hljToGxbBLH/hljToGxbYYDataChange

  • 相关阅读:
    Docket安装nginx
    安装docker,打包jar包镜像文件,输出tar压缩包
    关于solidity解析abi方法,入参和结果字节码
    创建vue项目的安装汇总
    ORA-00257: Archiver error. Connect AS SYSDBA only until resolved错误解决
    el-form表单中不同数据类型对应的时间格式化和校验规则
    ParagonNTFS15.9.314新版Mac强大的读写工具
    0X03
    Redis常见基本类型(5)-List, Set
    开发《俄罗斯方块》的意义
  • 原文地址:https://blog.csdn.net/u011271164/article/details/126750027