PS:走着走着忘记了自己做了什么,有时间就就记录下自己的脚印。。。。。。。 涛声一笑
场景:这几天在做前后台数据同步时,遇到这种情况,前台系统的数据表结构与后台的数据表结构不相同,但前台只需要后台表中某些数据的字段,以下记录下自己处理的原理过程。
技术支持:mybatis、JPA、spring工具类BeanUtils
首先双方约定好,前台定义接口以及实现,后台通过前台提供的接口包传输数据。
1、后台系统对应表结构的实体类
public class Person { private Integer userId; private String userName; private Integer userAge; private String address; public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } ...... }
2、前台系统对应表结构的实体类
public class Person{ private Integer id; private String name; private Integer age; private String sno; 。。。。。。
3、通过对比1、2,前台与后台的JavaBean属性字段不相同,假设前台需要同步后台Person中的userId(id),userName(name),userAge(age)属性。
4、将后台的JavaBean拷贝到前台工程中,保留前台需要字段
public class Person4Backstage{ private Integer userId; private String userName; private Integer userAge; public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserAge(){ return userAge; } public void setUserAge(){ this.userAge = userAge; } }
5、由于后台的JavaBean与前台JavaBean对应的属性名不一致,因此通过JPA将Person4Backstage中的属性与前台表中字段属性保持一致
import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; @Entity @Table(name = "person") public class Person4Person4Backstage implements Serializable{ private static final long serialVersionUID = 1L; private Integer userId; private String userName; private Integer userAge; @Column(name="id") public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } @Column(name="name") public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } @Column(name="age") public Integer getUserAge() { return userAge; } public void setUserAge(Integer userAge) { this.userAge = userAge; } }
6、在pom.xml文件加入对应jar依赖配置文件
<dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.0-api</artifactId> <version>1.0.1.Final</version> </dependency>
7、在PersonMapper.xml加入以下配置
<update id="updatePerson4Backstage" parameterType="com.zlt.pojo.Person4Backstage"> update person <set> <if test="userName != null"> name = #{userName,jdbcType=VARCHAR}, </if> <if test="userAge != null"> age = #{userAge,jdbcType=INTEGER}, </if> </set> where id = #{userId,jdbcType=INTEGER} </update>
8、在PersonMapper接口中加入以下方法:
int updatePerson4Backstage(Person4Backstage person);
9、在PersonService接口中加入以下方法:
int updatePerson4Backstage(Person person);注此参数Person是后台JavaBean Person
10、在PersonServiceImpl中实现:
public int updatePerson4Backstage(Person person){ int count = 0; Person4Backstage obj = new Person4Backstage(); BeanUtils.copyProperties(person, obj);//将后台传过来的属性通过copyProperties方法,实现属性拷贝,属性不一样不会拷贝 count = personMapper.updatePerson4Backstage(obj); return count; }
以上简单记录下,自己处理过程,如有不够全,请多多指教!
相关推荐
在IT领域,特别是对于企业级应用而言,数据同步是一项重要的技术,能够确保不同地理位置的数据中心之间数据的一致性和可用性。本文将详细介绍如何通过SQL Server的复制技术实现在两个SQL Server实例之间的数据同步。...
在Greenplum数据库环境中,数据同步是常见的需求,尤其在多个集群或数据库之间。这可能出于备份、恢复、测试环境复制等目的。本文将详细介绍如何在Greenplum的不同集群之间同步数据,以及如何监控性能以确保过程的...
数据同步是指在两个或更多系统之间保持数据的一致性,确保在任一系统中的更新都能被其他系统实时或定期获取并应用。这通常涉及数据库、API接口、消息队列等多种技术的结合使用。 1. **数据库复制与同步**: - **...
下面我们将深入探讨如何使用Java实现两个MySQL数据库之间的数据同步,以及涉及的相关知识点。 首先,我们需要理解MySQL的复制原理。MySQL的主从复制是基于日志的,主库上的所有更改都会被记录到二进制日志(binlog...
数据同步是指在两个或多个数据库之间,当某个数据库中的数据发生改变时,这些变化能够被实时或者近实时地反映到其他数据库中。这有助于防止数据丢失和减少数据冲突,保证各个节点的数据一致性。 在Java中,实现多...
本文将详细介绍如何在两台SQL Server之间实现数据同步,包括复制的基本概念、工作原理以及具体的实现步骤。 #### 二、复制的概念与基本元素 **复制**是一种将一组数据从一个数据源(通常称为“出版服务器”)复制到...
同步不同数据库之间的数据,比如postgresql到oracle,oracle到oracle,不限于此,支持自己配置。 实现思路: 在主线程中创建若干子线程,每个子线程分别用来同步一张数据表,提供web页面,监控各个子线程运行状况,...
实时同步是指数据在两个或多个数据库之间几乎即时地更新。这种同步方式对于保持业务流程的连续性和一致性至关重要,特别是在交易密集型应用、实时分析和大数据处理中。 2. **Java平台的优势**: Java因其跨平台...
如果这两个模块位于同一个进程中但运行在不同的线程上,那么他们可以利用线程同步机制来传递数据,如互斥锁(Mutex)、条件变量(Condition Variable)、信号(Signal)等。线程间通信通常比进程间通信更快,因为它...
本文将介绍如何使用 MySQL 实现两个数据库之间的实时数据同步。 一、环境准备 在进行数据同步之前,需要确保两个数据库的环境配置正确。这里假设主机 IP 为 10.48.248.41,slave 机 IP 为 172.22.1.80,两台机器在...
### MySQL两个数据库表之间的双向数据同步方案 #### 概述 本文档主要介绍了一种针对MySQL环境下两个数据库表之间的双向数据同步方案。该方案适用于需要保持两个不同位置或不同环境中数据库表数据一致性的场景,...
在开发环境中,有时需要在两台MySQL数据库之间实现数据同步,以确保数据的一致性和冗余。本教程将详细介绍如何在两台运行相同系统(FreeBSD 5.4)和软件(Apache 2.0.55、PHP 4.4.0、MySQL 4.1.15)的服务器上配置...
在多个环境中,比如开发、测试和生产,经常需要比较和同步不同的数据库以确保数据的一致性。本文将深入探讨如何使用特定的工具来比较和同步两个数据库之间的差异。 首先,我们要理解数据库间的差异可能源自多种原因...
1. **简单数据同步**:指的是两个数据库中的对应表结构完全一致时的数据迁移过程。这种同步方式适用于结构完全相同的数据库之间的数据交换,主要目的是快速、高效地完成数据的复制。 2. **选择性数据同步**:两个...
若需要双向同步(即两个SLD互相更新),可以勾选“Bi_Directional”选项。在此场景下,我们只需从生产系统向开发系统单向同步,所以不选此项。 接下来,填写生产系统(PRD)的URL、同步账号和密码,设置Namespace...
而DFS复制则允许这些共享文件夹在不同物理服务器之间复制数据,从而实现数据同步。 为了配置DFS,首先需要在网络中选择适当的服务器进行设置。根据文档描述,可以按照以下步骤进行: 1. 配置网络负载均衡(NLB),...
为了实现这些功能,组件支持多种数据存在方式的转换,包括文件、数据库数据、程序输入输出参数等,并能够实现跨不同数据库系统之间的数据传递和存储过程触发。 数据翻译是组件中的一个重要功能,它解决了不同数据...
该方法可以实现在两个或多个服务器之间实时同步数据,提高数据的一致性和可靠性。 标题解释 本文的标题“SQL Server 触发器实现不同服务器数据同步”表明了本文的主要内容,即使用 SQL Server 触发器来实现不同...