有两个数据库,a数据库中有user表,有userid,name,pwd...等字段,b数据库中有member表,有userid,name,pwd,date....等等字段。如何把这两个表给关联起来。这两个数据库是依赖不同的系统,需要依据a项目把b项目整合到a项目中。用的是mysql数据库。如何把这两个不同的数据库中的表关联起来呢。。我是这样想的:不知道对不对。在b数据库中建立一张中间表a_b,里面就连个字段。一个是a_userid和b_userid。基本上就这样了。但是如果要对其进行CRUD呢??怎么弄。。纠结。。
解决方案 »
- jsp怎么样对button按钮或者超链接设置权限
- 我自己写了个快速排序法,但是没排成功,大家帮忙看看哪里错了?
- 如何实现不生成文件,但是可以直接下载,要求是PDF格式
- hibernate hql语句怎么实现随机抽取数据库数据
- 有谁用过oscache.oscache使用问题.
- 请问这个异常是由什么造成的?
- 按照the j2ee 1.4 tutorial所讲怎样进行"Deploying with the Admin Console"?
- 如何把SQL SERVER 数据库中某个字段里诸如2002-11-6这样的时间数据取出来并转化为星期几
- hibernate+struts,frameset ,session丢失
- CXF3.0 Cannot cast from Endpoint to EndpointImpl
- web harvest 100分
- hibernate 一对一映射 为什么 配置文件无法加载映射文件?
跨库查询
Select u.*, m.*
From a.user u, b.member m
Where u.userid = m.userid
但如果是完全独立的两个MySQL服务器,这事就比较悲惨了
如果说 id 是不能一一对应的,那么建立映射表是绝对有必要的。
如果两个库的id其实已经是一一对应的,那么就完全没必要建立映射表了。
数据库也是相互独立的。更悲催的是两个项目用的是完全不一样的框架。一个是springMVC+ibatis,另一个是strus1+hibernate...哪位牛人给点思路吧。。还一个问题是:我在一个项目中如何访问另一个项目中的类。。顺便吐槽:尼玛,这开源论坛什么注释也没有,什么文档也没有。。看的我TM要崩溃了。。愤怒难忍。
1、数据库部署在一个服务上,分两个库而已;
2、整合的那个开源论坛,用户ID跟你的主网站保持一致,或者干脆不要用开源论坛自己的用户注册功能,你修改下你自己网站的用户注册,实现同时写两边的 用户表,保证绝对一致。
3、两个应用独立部署,然后用单点登录进行集成。关于第二步,其实还有其它变通的做法:
比如把开源论坛的用户表删除,改为查询你本网站用户库的视图;
或者改为统一使用LDAP服务器来提供统一用户管理等。
话说有很好的开源论坛啊,为啥会找了个没注释没文档的
Select uid, xxoo, xxoo From A.a
Where uid NOT IN (
Select uid From B.b
)
A
NO F1 F2 F3 F4
1 11 111
2 22 222
3 33 333B
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
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
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抛这个异常。
这个错误是说有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
);
我在网上找了一个方法:
打开my.ini,查找
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
改成这个就不抛那异常了。
但是现在
[Err] 1062 - Duplicate entry '' for key 2又来这个异常了。bbs数据库中的那个member表的uid设了主键,没设自增,没用她建索引。什么情况啊。这是。。
where user_id IS NOT NULL AND user_id NOT IN
(
SELECT uid from bbs.jrun_members
);sql语句是没有错的。刚才抛的异常是:重复的null值,建了3个索引,但是有两个是unique。所以重复了null值,把他改成normal就是行了。谢谢楼上的大牛帮我解答。。
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,没整过这个,哪位大牛给说说。顺便说说整个执行流程吧。谢谢。。
INSERT INTO bbs.jrun_members(uid) SELECT user_id FROM shop.`user`
where user_id NOT IN
(
SELECT uid from bbs.jrun_members
);
END;
HELP....