Вызов хранимой процедуры изнутри класса Java и запись в консоль?

1

Я хочу, чтобы иметь возможность вызвать хранимую процедуру из базы данных Microsoft SQL Server и отобразить результаты на консоли (для начала). У кого-то я хочу поместить все эти данные в JTable или в Интернет, но сначала я буду рад, если я смогу отобразить его на консоли.

Я думаю, что проблема в том, что я не могу (или, вероятно, не знаю, как) установить соединение с базой данных.

Как подключиться к базе данных Microsoft SQL Server? (Я видел это раньше, и я думаю, что это было 4 строки кода. Я хочу, чтобы это работало на моей машине, поэтому я могу начать тестирование некоторых хранимых процедур.

Код Java:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class SQLServerTest {
    private ResultSet[] yourResult;

    private void showSuppliers(ResultSet[] rs) throws SQLException {
            Connection con =
                                DriverManager.getConnection("jdbc:default:connection");
            Statement stmt = null;

            String query = "select * from PeopleOne";

            stmt = con.createStatement();
            rs[0] = stmt.executeQuery(query);
        }

     private void ShowResultsToConsole(ResultSet[] rs) throws SQLException {
      for (ResultSet r : rs) {
        int c = 0; 
        r.getString(c);
      }
    }

    public static void main(String[] p) throws SQLException {
         SQLServerTest temp = new  SQLServerTest();
         temp.showSuppliers(temp.yourResult);
             temp.ShowResultsToConsole(temp.yourResult);
    }

}
  • 0
    Что мешает вам вызвать хранимую процедуру, если процедура содержит оператор select, ее можно вызвать с помощью запроса execute и для части подключения к серверу sql из базы данных я говорю, что мешает использовать Google for, и я предложу stackoverflow.com/ вопросы / 19047414 / ...
Теги:
sql-server
jdbc

1 ответ

2

Попробуйте что-то вроде этого.

public class DbTest {

static final String DRIVER_CLASS = "net.sourceforge.jtds.jdbc.Driver";
static final String DB_URL = "jdbc:jtds:sqlserver://127.0.0.1:1433/mydb";
static final String DB_USER = "username";
static final String DB_PASS = "password";

public static void testQuery() throws ClassNotFoundException, SQLException {

    Class.forName(DRIVER_CLASS);
    Connection jdbcConnection = DriverManager.getConnection(DB_URL,
            DB_USER, DB_PASS);

    ResultSet rs = jdbcConnection.createStatement().executeQuery(
            "SELECT TOP 10 field_name FROM table_name");

    while (rs.next()) {
        System.out.println(rs.getString("field_name"));
    }

}

public static void main(String args[]) throws Exception {
    testQuery();
}

Предполагается, что у вас есть JTDS JDBC Driver в вашем пути к классам.

Если вам нужно использовать драйвер JDBC Microsoft, вы должны иметь его в своем пути к классам и изменить следующее в коде.

static final String DRIVER_CLASS = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
static final String DB_URL = "jdbc:sqlserver://localhost:1433;databaseName=mydb";

Вы должны всегда правильно закрывать свои ресурсы, как описано в Java/JDBC: лучший шаблон проектирования для закрытия соединения с базой данных при возникновении исключения

  • 0
    Я думаю, что это в пути класса, но как мне убедиться, что это так? Это то, что в Java мне не нужно делать часто.
  • 0
    в части пароля все, что я вижу, это логин, который будет выглядеть примерно так. WY / abcd12345 и без пароля. Это имеет значение?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню