Problemas persistencia do jdbc da Oracle

2 respostas
J

Olá, pessoal!

Gostaria me ajudar para corrigir alguns código que ocorreu erro? é primeira vez usar configuração jdbc da Oracle.

Ocorreu os erros

java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at ReadData.getConnection(ReadData.java:19)
	at ReadData.readDataOracle(ReadData.java:34)
	at ExecutarTela.main(ExecutarTela.java:10)
java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@127.0.0.1:1521/XE
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at ReadData.getConnection(ReadData.java:24)
	at ReadData.readDataOracle(ReadData.java:34)
	at ExecutarTela.main(ExecutarTela.java:10)

Classe ReadData

public class ReadData {
	private static String driver = "oracle.jdbc.OracleDriver";
	private static String dataBase = "XE";
	private static String ip = "127.0.0.1"; //127.0.0.1
	private static String url = "jdbc:oracle:thin:@" + ip + ":1521/" + dataBase;
	private static String user = "hr";
	private static String password = "hr";

	public Connection getConnection() throws SQLException {
		try {
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return DriverManager.getConnection(url);
	}

	public void readDataOracle() {
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		ArrayList<Employee> al = new ArrayList<Employee>();

		try {
			conn = getConnection();
			ps = conn
					.prepareStatement("select employee_id, first_name,last_name,salary from employees");
			rs = ps.executeQuery();

			while (rs.next()) {

				Employee ep = new Employee();

				ep.setBadge(rs.getInt(0));
				ep.setFirstName(rs.getString(1));
				ep.setLastName(rs.getString(2));
				ep.setSalary(rs.getDouble(3));

				al.add(ep);

			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				if (ps != null) {
					ps.close();
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

			try {
				if (rs != null) {
					rs.close();
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

			try {
				if (conn != null && !conn.isClosed()) {
					conn.close();
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}

		imprimirTela(al);

	}

	public void imprimirTela(ArrayList<Employee> al) {

		for (int i = 0; i < al.size(); i++) {
			DecimalFormat df = new DecimalFormat("R$###,###,###.00");

			System.out.println(al.get(i).getBadge() + " - "
					+ al.get(i).getFirstName() + " " + al.get(i).getLastName()
					+ " - Salario: " + df.format(al.get(i).getSalary()));
		}

	}

}

Aguardo pela suas respondas… obrigado!!

2 Respostas

J

Desculpa! acabei de lembrar que tinha esquecido para colocar o driver’s da jdbc e adicionei… funcionou corretamente

mas ocorreu outro erro, veja em baixo

mensagem de erro

java.sql.SQLException: argumentos inválidos na chamada
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
	at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:235)
	at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:453)
	at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)
	at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
	at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:753)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at ReadData.getConnection(ReadData.java:24)
	at ReadData.readDataOracle(ReadData.java:34)
	at ExecutarTela.main(ExecutarTela.java:10)
R

Exemplo de URL JDBC para o Oracle:

jdbc:oracle:thin:User/Pass@localhost:1521:XE
jdbc:oracle:thin:User/Pass@:1521:XE

jdbc:oracle:thin:User/Pass@//localhost:1521/XE
jdbc:oracle:thin:User/Pass@//:1521/XE
jdbc:oracle:thin:User/Pass@//localhost/XE
jdbc:oracle:thin:User/Pass@///XE
Criado 25 de julho de 2011
Ultima resposta 25 de jul. de 2011
Respostas 2
Participantes 2