Я пытаюсь добавить человека к администратору, который является неотъемлемым человеком со слоем DAO, но он принимает только некоторые параметры.
Человек:
public class Person {
protected String name;
protected String username;
protected String password;
public Person() {
this.name = "";
this.username = "";
this.password = "";
}
public Osoba( String name, String username, String password) {
this.name = name;
this.username = username;
this.password = password;
}
public Person(Person original) {
this.name = original.name;
this.username = original.username;
this.password = original.password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Person [name=" + name + ", username="
+ username + ", password=" + password +"]";
}
}
Администратор * * 1004
public class Admin extends Person {
private double salary;
public Administrator() {
this.name = "";
this.username = "";
this.password = "";
this.salary= 0;
}
public Admin(String name, String username, String password, double salary) {
this.name = name;
this.username = username;
this.password = password;
this.salary = salary;
}
public Admin(Admin original) {
super(original);
this.name = original.name;
this.username = original.username;
this.salary = original.salary;
this.salary = original.salary;
}
public int getSalary() {
return salary;
}
public void setSalary(double salary) {
salary = salary;
}
@Override
public String toString() {
return "Administrator [salary=" + salary + "]";
}
}
DAO для создания нового администратора:
public static int createAdmin(Admin d) {
int status = 0;
con = SQLite.dbConnector();
try {
PreparedStatement ps = con.prepareStatement("insert into admin values(?,?,?,?)");
ps.setString(1, d.getName());
ps.setString(2, d.getUsername());
ps.setString(3, d.getPassword());
ps.setString(4, d.getSalary());
int rs = ps.executeUpdate();
}catch(Exception e) {e.printStackTrace();}
return status;
}
в DAO Я использую SQLite для вставки данных в базу данных, другие объекты, которые необходимо создать, например, Book, работают с этим шаблоном
partsGUI для вставки данных:
nameAdmin = new JTextField();
nameAdmin.setColumns(10);
korisnickoAdministratora.setBounds(625, 249, 114, 21);
frame.getContentPane().add(nameAdmin);
usernameAdmin = new JTextField();
usernameAdmin.setColumns(10);
usernameAdmin.setBounds(625, 312, 114, 21);
frame.getContentPane().add(usernameAdmin);
passwordAdmin = new JTextField();
passwordAdmin.setColumns(10);
passwordAdmin.setBounds(625, 279, 114, 21);
frame.getContentPane().add(passwordAdmin);
salaryAdmin = new JTextField();
salaryAdmin.setColumns(10);
salaryAdmin.setBounds(625, 344, 114, 21);
frame.getContentPane().add(salaryAdministratora);
и часть, которая соединяет графический интерфейс с дао:
JButton btnAddAdmin = new JButton("AddAdmin");
btnAddAdmin.setBounds(545, 391, 192, 27);
frame.getContentPane().add(btnAddAdmin);
btnAddAdmin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
double s = Double.parseDouble(salaryAdmin.getText());
Admin d = new Admin(nameAdmin.getText(),usernameAdmin.getText(),passwordAdmin.getText(),s);
System.out.println(d);
AdminDAO.createAdmin(d);
System.out.println(d);
}catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
);
Теперь проблема в том, что это делает нового администратора с параметром только заработной платы, а System.out.prinln (d) выводит следующее:
Admin [salary=123.0]