[英]How to insert from an extended class
我的信息是通过CSV读入“银行信息”,一个人CSV是
5
1,Tony,Stark,C,tonys,naslvj34-t934,stark@hmmm.org;tony@gmail.com;tostark55@yaho.com
2,Patrick,Hart,C,phart2,sdlwgl5034i52,hart@hmmm.org;hart1@who.org
3,Tom,Baker,E,bake95,kweojtnefq567,
4,Kevin,Black,C,keb765,prjhohier99,black@mail.org
5,Alex,Codd,E,alcodd,andlqjr78,codd@DBMS.org;alex@gmail.com
我的帐户 CSV 是,
5
1,313001,S,35881.12
2,313002,G,772400.34
3,313003,C,250002.15
4,313004,P,96310.66
5,313005,P,15624.15
1,313006,C,39950.99
在帐户 CSV 中,第二个标记是我的“帐户类型”,因此 S =“储蓄”G =“黄金储蓄”C =“支票”等等。 当在我的 CSV 解析器 class 中读取这些时,一个 object 由这些类型组成,因此进行了检查 class 并且当令牌 [2] 等于“C”时 CSV 被标记化。
我的人 class 是这样设置的,不包括我的 getters 和 setters
private int personId;
private String firstName;
private String lastName;
private String type;
private String usrname;
private String password;
private ArrayList<String> emails;
public Person(int personId, String firstName, String lastName, String type, String usrname, String password,
ArrayList<String> emails) {
super();
我的账户 class 就是这样设置的。
private Person accountHolder;
private int accountNumber;
private double currentBalance;
public Account() {}
public Account(Person accountHolder, int accountNumber, double currentBalance) {
this.accountHolder = accountHolder;
this.accountNumber = accountNumber;
this.currentBalance = currentBalance;
}
这是我的示例帐户类型之一(有多个)
public class CheckingAccount extends Account {
public CheckingAccount(Person p, int i, double d) {
super(p,i, d);
}
这是我的数据库加法器
public static void DbAddAccount(Person personId, Account accountHolder){
Connection conn = null;
try {
conn = DriverManager.getConnection(DatabaseInfo.URL, DatabaseInfo.USERNAME, DatabaseInfo.PASSWORD);
} catch (SQLException e) {
System.out.println("Connection Failed");
throw new RuntimeException(e);
}
String accountQuery = "insert into Account (accountId,accountNumber,currentBalance,type,personId) values (?,?,?,?,?);";
PreparedStatement accountPs = null;
ResultSet accountKeys = null;
int accountId = 0;
try {
//These are my prepare Statements for my queries
accountPs = conn.prepareStatement(accountQuery);
accountPs.setInt(1, accountId+ 1 );
accountPs.setInt(2, accountHolder.getAccountNumber());
accountPs.setDouble(3, accountHolder.getCurrentBalance());
accountPs.setString(4, ??????????????????????????????????);
accountPs.setInt(5, personId.getPersonId());
accountPs.executeUpdate();
accountPs.close();
conn.close();
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
JDBC 运行时未添加任何内容。
我认为您的代码存在以下问题:
问题 1 的解决方案; 在账户 Object 中声明 account_type。
对于第 2 期; 而不是使用 accountPs.setString(4, ????????????????????????????????????????); 使用:accountPs.setString(4, account.getAccountType());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.