Как исправить уже созданную таблицу и не отображать значения в консоли с SQL в Java?

0

Я нахожусь в классе Java, и назначение заключается в создании таблицы, которая будет отображать первые десять значений предварительно выбранных столбцов. Тем не менее, когда я запускаю свой код, с запущенным sql, он говорит, что моя таблица уже создана. Мне было интересно, есть ли способ, чтобы он прекратил ошибаться, когда это происходит, и все еще показывал мой код? Кроме того, когда я настраиваю новую таблицу, нужные мне значения (Income, ID, Pep) не будут отображаться, а будут только заголовки, которые я установил до синтаксиса. Как мне сделать эти исправления, чтобы они перестали выдавать ошибки, и я вижу свои значения в журнале консоли?

Это выполняется в eclipse, расширенном предыдущими файлами проекта из класса, который я беру. Я попытался добавить подготовленные операторы, попытался разобрать строки для других переменных и попытался синтаксис для получения значений, которые мне нужны.

Файл LoanProccessing.java (Основной файл):

import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class LoanProcessing extends BankRecords {

    public static void main(String[] args)  throws SQLException {
        // TODO Auto-generated method stub
        BankRecords br = new BankRecords();
        br.readData();
        Dao dao = new Dao();
        dao.createTable();
        dao.insertRecords(torbs); // perform inserts
        ResultSet rs = dao.retrieveRecords(); 
        System.out.println("ID\t\tINCOME\t\tPEP");
        try {
            while (rs.next()) {
                String ID= rs.getString(2);
                double income=rs.getDouble(3);
                String pep=rs.getString(4);
                 System.out.println(ID + "\t" + income + "\t" + pep);
            }
        }
             catch (SQLException e ) {
                 e.printStackTrace();
 }
        String s = "";
        s=String.format("%10s\t %10s \t%10s \t%10s \t%10s \t%10s ", rs.getString(2), rs.getDouble(3), rs.getString(4));
        System.out.println(s);
        String timeStamp = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(Calendar.getInstance().getTime());
        System.out.println("Cur dt=" + timeStamp);

Файл Dao.java:

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

public class Dao {
    //Declare DB objects 
    DBConnect conn = null;
    Statement stmt = null;

        // constructor
        public Dao() { //create db object instance
         conn = new DBConnect();
    }
        public void createTable() {
             try {
             // Open a connection
            System.out.println("Connecting to a selected database to create Table...");
            System.out.println("Connected database successfully...");

            // Execute create query
            System.out.println("Creating table in given database...");

            stmt = conn.connect().createStatement();

                String sql = "CREATE TABLE A_BILL__tab " +  "(pid INTEGER not NULL AUTO_INCREMENT, " +  " id VARCHAR(10), " + " income numeric(8,2), " + " pep VARCHAR(4), " + " PRIMARY KEY ( pid ))";

            stmt.executeUpdate(sql);
            System.out.println("Created table in given database...");
            conn.connect().close(); //close db connection 
            } catch (SQLException se) {
            // Handle errors for JDBC
             se.printStackTrace();
             }
                  }
        public void insertRecords(BankRecords[] torbs) {
              try {
              // Execute a query


              System.out.println("Inserting records into the table...");
              stmt = conn.connect().createStatement();
          String sql = null;

                // Include all object data to the database table
              for (int i = 0; i < torbs.length; ++i) {

        // finish string assignment to insert all object data 
        // (id, income, pep) into your database table
                  String ID = torbs[i].getID();
                  double income=torbs[i].getIncome();
                  String pep=torbs[i].getPep();
        sql = "INSERT INTO A_BILL__tab(ID,INCOME, PEP) " + "VALUES (' "+ID+" ', ' "+income+" ', ' "+pep+" ' )";


        stmt.executeUpdate(sql);
                }
                   conn.connect().close();
               } catch (SQLException se) { se.printStackTrace(); }
         }
        public ResultSet retrieveRecords() {
             ResultSet rs = null;
              try {
             stmt = conn.connect().createStatement();
             System.out.println("Retrieving records from table...");
             String sql = "SELECT ID,income,pep from A_BILL__tab order by pep desc";

             rs = stmt.executeQuery(sql);
             conn.connect().close();
              } catch (SQLException se) { se.printStackTrace(); 
                }
             return rs;
              }
              }

Ожидаемыми результатами будут printlns для табличных функций (вставка записей и т.д.), Заголовки, значения данных для первых 10 файлов, а также дата и время запуска программы. Фактическими результатами были некоторые табличные функции, заголовки, а затем время, когда программа работала, не считая того, когда она ошибалась с уже созданной таблицей. Я не совсем уверен, где или как исправить эти проблемы.

  • 0
    Компилируется ли код? Вы пытались его отладить?
Теги:

1 ответ

0

вы получаете это исключение, потому что каждый раз, когда вы запускаете свой код, ваш основной метод вызывает dao.createTable(); и, если таблица уже создана, она выдаст исключение. Так что для этой части используйте проверку, чтобы проверить, если таблица уже создана.

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

Ещё вопросы

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