我在本地创建了一个数据库和表
测试连接DB2之后发现可以连接成功
但是查询的时候
发现SQL语句中把表名前面强制加上了用户名
比如当前连接数据库的用户是 db2admin
本来SQL我写的是
SELECT * FROM TABLE
但是发现Log里打出来的是 SELECT * FROM DB2ADMIN.TABLE
但实际上这个表是在 SQLJ下的
所以,我就把SQL语句写成了 SELECT * FROM SQLJ.TABLE
然后运行就成功了
现在想问问为什么会这样
然后有什么办法我在配置的时候就指定了 SQLJ
不需要每条SQL语句都写这个东西在表名前
执行sql之前,set schema ...
因为db2会自动吧schema放到表明前面的。
而你连接数据库的用户名和密码就是默认的schema,你可以先set current schema=XX,
正常的做法,是用一个配置文件,里面有schema的名字,然后在sql中拼接。
个人感觉这不是一个好的思路,还是用schema.tablename这样的表名吧。
就算可以通过配置指定一个default schema,万一将来业务扩展引入了更多的schema呢?
连接串试试
"jdbc:db2://localhost:50000/SQLJ