java相关 求方法 实现数据库数据同步

java相关 求方法 实现数据库数据同步,第1张

楼主用hibernate 所以说就不需要在手动管理connection的AutoCommit属性了。不用触发器的话,也好办,不过可能麻烦一点。

假设你已经做好了表list1和list2 到对象list1和list2的映射。list1和list2配置成一对一映射,list2的主键也是list1的外键,生成机制由list1负责。级联关系cascade属性设置为all,也就是对list1 *** 作的时候hibernate会级联的 *** 作它的附着物list2

那么在 *** 作对象list1基础DAO中的曾删改查方法中,同时 *** 作list2对象即可。

以增加 *** 作为例:

比如 new出来一个list1对象,然后充填属性:

list1setName("张三");

list1setPwd("123456");

list1getList2setName(list1getName());

list1getList2setpwd(list1getPwd());

sessionsave(list1); //这里当持久化list1的时候,会级联把list2也持久了

提交transaction

关键问题还是配置,比较麻烦 容易出错。我对hibernate不是多了解,想的这个办法可能比较笨,应该还有好的办法来解决。等等高手来看看吧。

Java程序向数据库中插入数据,代码如下:

//首先创建数据库,(aess,oracle,mysql,sqlsever)其中之一,其中aess,sqlsever需要配置数据源(odbc);

//然后再eclipse中创建类(ConnDb,Test,TestBean)ConnDb功能为连接数据库,查询,插入,删除,修改数据的类,Test为含有main方法的测试类,TestBean为数据表中的字段属性及set,get方法

//以下是ConnDb代码:

packagedb;

importjavasqlConnection;

importjavasql;

import

javasqlResultSet;

importjavasql;

import

javasqlStatement;

importjavautilArrayList;

publicclassConnDb{

publicConnectionstartConn(Connectionconn){

try{

ClassforName("sunjdbcodbc");

conn=("jdbc:odbc:数据库","用户名","密码");

}catch(Exceptione){

Systemoutprintln("连接数据库时出现错误");

}

returnconn;

}

publicArrayList(Stringsql){

Connectionconn=null;

Statementstmt=null;

ResultSetrs=null;

ArrayListlist=newArrayList();

try{

conn=startConn(conn);

stmt=conn();

rs=stmt(sql);//sql为sql语句例如"selectfrom

表名",从main方法中传进来,这里用的是ArrayList类将查询结果存储起来

while(rsnext()){

TestBeantb=newTestBean();

tbsetTid(rsgetString("tid"));

tbsetTname(rsgetString("tname"));

tbsetTinfo(rsgetString("tinfo"));

listadd(tb);

}

}

catch(e){

//TODOAuto-generatedcatchblock

e();

}finally{

closeConn(rs,stmt,conn);

}

returnlist;

}

publicvoid(Stringsql){

Connectionconn=null;

Statementstmt=null;

try{

conn=

startConn(conn);

stmt=conn();

stmt(sql);

}

catch(e){

Systemoutprintln("修改,插入或者删除数据库数据时发生错误!");

}finally{

closeConn(stmt,conn);

}

}

publicvoidcloseConn(ResultSetrs,Statementstmt,Connectionconn){

try{

if(rs!=

null){

rsclose();

}

if(stmt!=null){

stmtclose();

}

if(conn!=null){

connclose();

}

}

catch(e){

//TODOAuto-generatedcatch

block

Systemoutprintln("关闭数据库的时候发生错误!");

}

}

publicvoidcloseConn(Statementstmt,Connectionconn){

try{

if(stmt!=null){

stmtclose();

}

if(conn!=null){

connclose();

}

}

catch(e){

//TODOAuto-generatedcatchblock

Systemoutprintln("关闭数据库的时候发生错误!");

}

}

}

你的sql有问题:

你针对Student表的每个字段都做了一次update *** 作,这样太耗性能,也不可取

update Student set ssex = "+  "'"+ SSex + "' , Sbirthday = "+  "'"+ birthday + "'

(其他字段) where SNo = "+ "'"+ SNo

注:一个sql语句可以同时更新多个字段

update Student set 字段1 = 值1, 字段2 = 值2 ,字段n = 值n where SNo  = 'SNo '

statexecuteUpdate

里面有n个update语句,用一条就可以搞定,即上面整合的那条sql即可

你这完全是使用方法的错误

增加一个数据库连接不就行咯

同样的参数

连接两个数据库,完全可以做到

简单的说用jdbc连接第一个库 啥 URL CLASSDRIVER 等等

第二个库就如果参数相同,那么就共用,如果不同,就增加几项参数咯

*** 作和第一个一样

以上就是关于java相关 求方法 实现数据库数据同步全部的内容,包括:java相关 求方法 实现数据库数据同步、java中怎么向数据库插入数据(java怎么导入数据库)、java.sql.Statement stat = null;stat.executeUpdate(sql);没抛出异常,但无法更新数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9765918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存