求助:大神们,给点建议吧。

正派青年演员 2012-08-28 03:26:30
有两个数据库,a数据库中有user表,有userid,name,pwd...等字段,b数据库中有member表,有userid,name,pwd,date....等等字段。如何把这两个表给关联起来。这两个数据库是依赖不同的系统,需要依据a项目把b项目整合到a项目中。

用的是mysql数据库。如何把这两个不同的数据库中的表关联起来呢。。

我是这样想的:不知道对不对。

在b数据库中建立一张中间表a_b,里面就连个字段。一个是a_userid和b_userid。基本上就这样了。

但是如果要对其进行CRUD呢??怎么弄。。纠结。。
...全文
310 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
a512796048 2012-08-31
  • 打赏
  • 举报
回复
给你个思路 不知道mysql可以不 如果是 oracle 可以 select * from table@database 这个是实例名是可以跨库查询的
MiceRice 2012-08-30
  • 打赏
  • 举报
回复
去开了个会,貌似楼主已经搞定了啊,不错不错。。。
正派青年演员 2012-08-30
  • 打赏
  • 举报
回复
INSERT INTO bbs.jrun_members(uid) SELECT user_id FROM nodoor.`user`
where user_id IS NOT NULL AND user_id NOT IN
(
SELECT uid from bbs.jrun_members
);

sql语句是没有错的。刚才抛的异常是:重复的null值,建了3个索引,但是有两个是unique。所以重复了null值,把他改成normal就是行了。谢谢楼上的大牛帮我解答。。
正派青年演员 2012-08-30
  • 打赏
  • 举报
回复
ps:现在只能插入一条数据进去。。
正派青年演员 2012-08-30
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 的回复:]

ORA-01400: 无法将 NULL 插入 ("SCOTT"."A"."NO")
这个错误是说有NULL值,那么或者你要过滤掉它。

可以用 IS NOT NULL 来过滤掉,类似:
INSERT INTO bbs.jrun_members(uid)
SELECT user_id FROM shop.`user`
WHERE user_id IS NOT NULL
And ……
[/Quote]

我在网上找了一个方法:
打开my.ini,查找
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
改成这个就不抛那异常了。
但是现在
[Err] 1062 - Duplicate entry '' for key 2又来这个异常了。

bbs数据库中的那个member表的uid设了主键,没设自增,没用她建索引。

什么情况啊。这是。。
MiceRice 2012-08-30
  • 打赏
  • 举报
回复
ORA-01400: 无法将 NULL 插入 ("SCOTT"."A"."NO")
这个错误是说有NULL值,那么或者你要过滤掉它。

可以用 IS NOT NULL 来过滤掉,类似:
INSERT INTO bbs.jrun_members(uid)
SELECT user_id FROM shop.`user`
WHERE user_id IS NOT NULL
And user_id NOT IN (
SELECT uid from bbs.jrun_members
);
正派青年演员 2012-08-30
  • 打赏
  • 举报
回复
BEGIN;
INSERT INTO bbs.jrun_members(uid) SELECT user_id FROM shop.`user`
where user_id NOT IN
(
SELECT uid from bbs.jrun_members
);
END;


这样插入还是不行啊。肿么办?

[Err] 1364 - Field 'salt' doesn't have a default value

抛这个异常。
xiejin90314 2012-08-30
  • 打赏
  • 举报
回复
tomcat可以配置多数据源的。
正派青年演员 2012-08-30
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 的回复:]

struts1中的action中继承了BaseAction类,没有实现execute方法,实现了这样一个方法
Java code
public ActionForward login(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
……
[/Quote]

HELP....
MiceRice 2012-08-30
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 的回复:]
你怎么老是开会
[/Quote]

最近主要工作是开会、挨叼、叼人、安抚人、协调人。
正派青年演员 2012-08-30
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 的回复:]

BEGIN;
INSERT INTO bbs.jrun_members(uid) SELECT user_id FROM shop.`user`
where user_id NOT IN
(
SELECT uid from bbs.jrun_members
);
END;
[/Quote]
有问题吗??
gaobailing 2012-08-30
  • 打赏
  • 举报
回复
BEGIN;
INSERT INTO bbs.jrun_members(uid) SELECT user_id FROM shop.`user`
where user_id NOT IN
(
SELECT uid from bbs.jrun_members
);
END;


正派青年演员 2012-08-30
  • 打赏
  • 举报
回复
struts1中的action中继承了BaseAction类,没有实现execute方法,实现了这样一个方法
public ActionForward login(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
System.out.println("come here ....");
String username=request.getParameter("username");
String password=request.getParameter("password");
System.out.println(username+","+password);
if("zhangsan".equals(username)&&"123".equals(password))
return mapping.findForward("success");
else
return mapping.findForward("login");
}

然后struts.ccnfig.xml文件中
 <action-mappings>  
<action validate="false" parameter="action" path="/login" scope="request" type="test.action.LoginAction">
<forward name="success" path="/loginSuccess.jsp"></forward>
<forward name="login" path="/login.jsp"></forward>
</action>
</action-mappings>

为什么不能执行到action类中的login方法,要怎么才能执行进去,以前学的struts2,没整过这个,哪位大牛给说说。顺便说说整个执行流程吧。谢谢。。
keithcai 2012-08-30
  • 打赏
  • 举报
回复

你怎么老是开会
正派青年演员 2012-08-30
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 的回复:]

去开了个会,貌似楼主已经搞定了啊,不错不错。。。
[/Quote]

当然要谢谢你的指点了。谢谢。
正派青年演员 2012-08-29
  • 打赏
  • 举报
回复
现在做的这个项目是要把一个独立的开源论坛项目整合到我们网站上。

如何把这两个独立的项目整合到一块呢。而且这两个项目是各自独立的。都能run起来。
数据库也是相互独立的。更悲催的是两个项目用的是完全不一样的框架。一个是springMVC+ibatis,另一个是strus1+hibernate...

哪位牛人给点思路吧。。

还一个问题是:我在一个项目中如何访问另一个项目中的类。。

顺便吐槽:尼玛,这开源论坛什么注释也没有,什么文档也没有。。看的我TM要崩溃了。。愤怒难忍。。。。
plumebobo 2012-08-29
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]

不记得MySQL关于子查询的支持要求,大致这样试试看:

Insert Into B.b(uid, xxoo, xxoo)
Select uid, xxoo, xxoo From A.a
Where uid NOT IN (
Select uid From B.b
)
[/Quote]


insert into A(F3,F4)
select F3,F4 from B where no in
(select no from B);

这样写是报下面错误
第 1 行出现错误:
ORA-01400: 无法将 NULL 插入 ("SCOTT"."A"."NO")

select F3,F4 from B where no in
(select no from B);

这样打印
F3 F4
1111 11111
2222 22222
3333 33333
plumebobo 2012-08-29
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]

不记得MySQL关于子查询的支持要求,大致这样试试看:

Insert Into B.b(uid, xxoo, xxoo)
Select uid, xxoo, xxoo From A.a
Where uid NOT IN (
Select uid From B.b
)
[/Quote]


比如我有两张表
A
NO F1 F2 F3 F4
1 11 111
2 22 222
3 33 333

B
NO F3 F4
1 1111 11111
2 2222 22222
3 3333 33333

怎样把B里面的数据更新到A里面?
要求演示效果
NO F1 F2 F3 F4
1 11 111 1111 11111
2 22 222 2222 22222
3 33 333 3333 33333


select A.no,A.F1,A.F2,B.F3,B.F4 from A,B where A.no=B.no;
我只会把他们查出来,不会更新。。。用的是Oracle
MiceRice 2012-08-29
  • 打赏
  • 举报
回复
不记得MySQL关于子查询的支持要求,大致这样试试看:

Insert Into B.b(uid, xxoo, xxoo)
Select uid, xxoo, xxoo From A.a
Where uid NOT IN (
Select uid From B.b
)
正派青年演员 2012-08-29
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]

做系统集中中间件,定时将B的数据插入到a
[/Quote]

你能具体点吗??小菜不解。。
加载更多回复(12)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧