问题描述
有数据库databaseA,databaseB, 在databaseA中有张表tabA, 由于在项目中数据连接的权限问题,在J2EE项目中databaseB不能直接通过databaseA.tabA来访问tabA,需要在databaseB建跨库视图 viewA: select * from databaseA.tabA奇怪的问题发生了,用MySql客户端来访问viewA 都没有问题, 但是如果在J2EE项目中访问viewA就会抛出异常, databaseA.viewA 表或视图不存在, 一直找不到原因J2EE项目中是多数据库连接的, databaseA,databaseB 是在项目中创建2个连接的 问题补充:283433775 写道
解决方案
引用按你的方法试了,还真行, 可以告诉我为什么吗? 我也不知道原因,等下去官网找找看
解决方案二:
引用按你的方法试了,还真行, 可以告诉我为什么吗? 谢谢还是原理上得问题:你的mssql还是oracle,还是mysql,它是一个数据库的管理服务,里面有很多的库。可以理解为数据仓库。你的程序 j2ee ado.net也好,建立的连接,只能是对一个库,而不是对于整个数据仓库进行连接。既然你只能连接一个库比如databaseA,那么你只能访问你连接的那个库中的数据,库与库之间是完全隔离的,只有通过数据管理服务里面是可以互相通讯的。
解决方案三:
引用283433775 写道一个j2ee程序是可以同时连接多个数据库的,你对两个数据库databaseA和databaseB建立两个连接对象ConnectA和ConnectionB,这样你能通过程序来互相访问。两个连接都建立的 这个是不是可以理解为 oracle实例中有多个用户,多用户之间的互相访问呢?引用databaseA.viewA 表或视图不存在 这个异常提示的有奇快,试试看在databaseA下也建个视图 viewA select * from databaseA.tabA
解决方案四:
任何数据库都不支持跨库sql,你连接那个库,就只能sql访问哪个库的数据库表!
解决方案五:
应该是mysql的JDBC驱动无法支持跨库视图的访问,J2EE项目允许建多个数据源,你建两个数据源实现一下。
解决方案六:
这是肯定不行的,使用sql管理器当然可以通过databaseA.tabA来访问,但是在J2EE或者其他程序中,你连接的数据库,只是对databaseA或者databaseB这样的库进行连接,并非对整个数据库管理系统进行连接,所以你连接到databaseB就只能访问databaseB中的表,其他数据库比如databaseA数据库中的表是访问不到的。解决方法:一个j2ee程序是可以同时连接多个数据库的,你对两个数据库databaseA和databaseB建立两个连接对象ConnectA和ConnectionB,这样你能通过程序来互相访问。