java - 找不到 DataSource.getConnection()

标签 java sql jdbc

我正在研究使用 JDBC 连接将行更新到数据库中的 OSGI 包。这是源代码:

package org.DX_57.osgi.SH_27.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.activation.DataSource;
import javax.annotation.Resource;
import org.DX_57.osgi.SH_27.api.SessionHandle;

public class SessionHandleImpl implements SessionHandle {
    
  @Resource(name="jdbc/Oracle") DataSource ds;
    
  @Override
  public String sayHello(String name) {
    return "test2 " + name;
  }
        
  @Override
  public String CheckUserDB(String userToCheck) {
    String storedPassword = null;
    String error_Message = null;
    String SQL_Statement = null;
    String error_Database = null;                
 
    Connection conn = ds.getConnection();
    if (conn == null) throw new SQLException(error_Database = "No connection");      
      
    try {
      conn.setAutoCommit(false);
      boolean committed = false;
      try {
        SQL_Statement = "SELECT Passwd from USERS WHERE Username = ?";
                   
        PreparedStatement passwordQuery = conn.prepareStatement(SQL_Statement);
        passwordQuery.setString(1, userToCheck);
         
        ResultSet result = passwordQuery.executeQuery();
                       
        if(result.next()){
          storedPassword = result.getString("Passwd");
        }
                                     
        conn.commit();
        committed = true;
      } finally {
        if (!committed) conn.rollback();
      }
    } finally {               
      conn.close();
    }  
  
    /** if the user is not found or password don't match display error message*/
    if (storedPassword == null) {
      error_Message = "Invalid Username!";
    } else {
      error_Message = "Invalid Password!";
    }
       
    return storedPassword;       
  }
}

当我尝试编译 bundle 时,我收到此错误消息:

这是 NetBeans 中的错误:

Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure
/home/rcbandit/Desktop/NetBeans/Prototype_3/SH_27/SH_27-impl/src/main/java/org/DX_57/osgi/SH_27/impl/SessionHandleImpl.java:[42,27] error: cannot find symbol

完整错误日志:http://pastebin.com/zDpy8RpL

好像找不到getConnection()?你知道我该如何解决这个问题吗?

最佳答案

您导入了错误的数据源:

import javax.activation.DataSource;

正确的是Datasource来自 javax.sql:

import javax.sql.DataSource;

关于java - 找不到 DataSource.getConnection(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9093725/

相关文章:

mysql - 为什么聚合函数不起作用,除非使用 GROUP BY 语句?

Java SQLException 与 JDBC - SQLITE_MISUSE

mysql - 如何选择非 "unique"行

java - 在 B 继承自 A 的情况下创建了多少个对象?

java - recyclerview 中的 Radiogroup 没有状态

Java - Python 共享内存通信

c# - 如何检查 SqlBulkCopy 上的列映射?

java - 无法使用 JDBC 连接远程 oracle 数据库

java - 将长整型转换为原始 jdbc

java - Eclipse 说我有编译错误,但我没有 - 如何修复?