Я нахожусь в классе 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 файлов, а также дата и время запуска программы. Фактическими результатами были некоторые табличные функции, заголовки, а затем время, когда программа работала, не считая того, когда она ошибалась с уже созданной таблицей. Я не совсем уверен, где или как исправить эти проблемы.
вы получаете это исключение, потому что каждый раз, когда вы запускаете свой код, ваш основной метод вызывает dao.createTable();
и, если таблица уже создана, она выдаст исключение. Так что для этой части используйте проверку, чтобы проверить, если таблица уже создана.
Я не совсем уверен, где вы создали переменную torbs
, но также убедитесь, что ее свойства не равны NULL, прежде чем вставлять их в базу данных.