JDBC问题请教

leecqan 2018-07-31 11:29:20
我在PL/SQL里面建好表了也能查到,然后在eclipse里面写Java程序去查询表里面的内容就显示说表不存在
...全文
191 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
幽饮烛 2018-07-31
  • 打赏
  • 举报
回复
引用 6 楼 qq_41023427 的回复:
这个我登陆PL/SQL的时候都会提示哪个用户登陆的,没有选错用户,

你在 PL SQL 里面看看对应的表是在哪个 schema 下的。
leecqan 2018-07-31
  • 打赏
  • 举报
回复
driver=oracle.jdbc.driver.OracleDriver
jdbcUrl=jdbc:oracle:thin:@localhost:1521:ORACLE12C
user=c##scott
password=tiger
这是properties文件
leecqan 2018-07-31
  • 打赏
  • 举报
回复
引用 4 楼 zssazrael 的回复:
连错库了吧。

PL/SQL 支持多连接,除非一直只用一个用户登陆一个数据库,不然得手动切换要在哪个连接上执行SQL。

这个我登陆PL/SQL的时候都会提示哪个用户登陆的,没有选错用户,
leecqan 2018-07-31
  • 打赏
  • 举报
回复
class JDBCtest {

@Test
public void testGet() {
String sql = "SELECT ID, NAME, EMAIL, BIRTH "
+ "FROM customers WHERE ID = ?";


Customer customer = get(Customer.class, sql, 5);
System.out.println(customer);

sql = "SELECT FLOW_ID flowId, TYPE, ID_CARD idCard, "
+ "EXAM_CARD examCard, STUDENT_NAME studentName, "
+ "LOCATION, GRADE " + "FROM examstudent WHERE FLOW_ID = ?";


Student stu = get(Student.class, sql, 5);
System.out.println(stu);
}

@SuppressWarnings("deprecation")
public <T> T get(Class<T>clazz,String sql,Object...args){
T entity=null;
Connection connection=null;
PreparedStatement preparedStatement=null;
ResultSet resultset=null;


try {
connection=JDBCTools.getConnection();

preparedStatement=connection.prepareStatement(sql);
for(int i=0;i<args.length;i++) {
preparedStatement.setObject(i+1, args[i]);

}
resultset=preparedStatement.executeQuery();

ResultSetMetaData rsmd=resultset.getMetaData();

Map<String,Object> Values=new HashMap<>();

if(resultset.next()) {
for(int i=0;i<rsmd.getColumnCount();i++) {
String ColumnLabel=rsmd.getColumnLabel(i+1);
Object ColumnValue=resultset.getObject(i+1);

Values.put(ColumnLabel,ColumnValue);

}
}
if(Values.size()>0) {
entity=clazz.newInstance();

for(Map.Entry<String,Object> entry:Values.entrySet()) {
String fieldName=entry.getKey();
Object value=entry.getValue();
ReflectionUtils.setFieldValue(entity, fieldName, value);
}
System.out.println(entity);
}
}catch (Exception e) {
e.printStackTrace();
} finally {
JDBCTools.releaseDB(resultset, preparedStatement, connection);
}

return entity;
}
}
幽饮烛 2018-07-31
  • 打赏
  • 举报
回复
连错库了吧。

PL/SQL 支持多连接,除非一直只用一个用户登陆一个数据库,不然得手动切换要在哪个连接上执行SQL。
leecqan 2018-07-31
  • 打赏
  • 举报
回复
引用 1 楼 weixin_42466285 的回复:
看看表的名字有没有错,是不是在同一个数据库里

名字没错,都是在Oracle数据库的同一个用户下建的表
leecqan 2018-07-31
  • 打赏
  • 举报
回复
java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)
weixin_42466285 2018-07-31
  • 打赏
  • 举报
回复
看看表的名字有没有错,是不是在同一个数据库里
verejava 2018-07-31
  • 打赏
  • 举报
回复
可能有大小写的问题 customers 改成 CUSTOMERS 看看

​JDBC 预编译 增删改查

http://www.verejava.com/?id=1715771977132
leecqan 2018-07-31
  • 打赏
  • 举报
回复
引用 8 楼 zssazrael 的回复:
[quote=引用 6 楼 qq_41023427 的回复:]
这个我登陆PL/SQL的时候都会提示哪个用户登陆的,没有选错用户,

你在 PL SQL 里面看看对应的表是在哪个 schema 下的。[/quote]
这个怎么查啊,请问一下命令是啥

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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