Hallo, das ist ein bestimmter Firmeningenieur. Ein Memorandum, weil ich dto gemacht habe, dao-like, als ich eine Task-Management-Anwendung mit Swing, Java, erstellt habe. Klicken Sie hier für verwandte frühere Artikel ↓ https://qiita.com/Ohtak/items/1be20a4b06b5833c3d61 https://qiita.com/Ohtak/items/f9a47b9be26c93fedaf9
Zuerst aus der dto-Datei. Ich habe aber nichts anderes gemacht ...
TaskDto.java
public class TaskDto {
//Aufgaben-ID
Integer id;
//Aufgabennname
String title;
//Anmerkungen zur Aufgabe
String discription;
//Aufgabenfrist
String limitDate;
//Aufgabenstatus
Integer status;
/**
* @return id
*/
public Integer getId() {
return id;
}
/**
* @param id set id
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return title
*/
public String getTitle() {
return title;
}
/**
* @param title set title
*/
public void setTitle(String title) {
this.title = title;
}
/**
* @return discription
*/
public String getDiscription() {
return discription;
}
/**
* @Param Discription Set Discription
*/
public void setDiscription(String discription) {
this.discription = discription;
}
/**
* @return title
*/
public String getLimitDate() {
return limitDate;
}
/**
* @param title set title
*/
public void setLimitDate(String limitDate) {
this.limitDate = limitDate;
}
/**
* @return status
*/
public Integer getStatus() {
return status;
}
/**
* @param status set status
*/
public void setStatus(Integer status) {
this.status = status;
}
}
Das ist es.
Als nächstes kommt dao. Ich sehe nicht wirklich wie Dao aus, also gebe ich ihm einen egoistischen Klassennamen.
DBAccesser.java
public class DBAccesser {
public Connection con = null;
public Statement smt = null;
public List<TaskDto> selectAll(){
try {
//Erstellt, wenn keine Verbindung zur Datenbank besteht
con = DriverManager.getConnection("jdbc:sqlite:/Users/taskManager.sqlite");
smt = con.createStatement();
String sql = "select * from task";
ResultSet rs = smt.executeQuery(sql);
List<TaskDto> tasks = new ArrayList<TaskDto>();
while( rs.next() ) {
TaskDto task = new TaskDto();
task.setId(rs.getInt(1));
task.setTitle(rs.getString(2));
task.setDiscription(rs.getString(3));
task.setLimitDate(rs.getString(4));
task.setStatus(rs.getInt(5));
tasks.add(task);
}
con.close();
return tasks;
}
catch (SQLException e) {
//TODO automatisch generierter Fangblock
e.printStackTrace();
return null;
}
}
public int selectLastId(){
try {
//Erstellt, wenn keine Verbindung zur Datenbank besteht
con = DriverManager.getConnection("jdbc:sqlite:/Users/taskManager.sqlite");
smt = con.createStatement();
String sql = "select id from task order by id desc limit 1";
ResultSet rs = smt.executeQuery(sql);
int id = rs.getInt(1);
con.close();
return id;
}
catch (SQLException e) {
//TODO automatisch generierter Fangblock
e.printStackTrace();
return 0;
}
}
public void insert(TaskDto task){
try {
//Verbindung zur Datenbank herstellen
con = DriverManager.getConnection("jdbc:sqlite:/Users/taskManager.sqlite");
smt = con.createStatement();
String sql = "insert into task (id, name, limit_date, comment) values(" + String.valueOf(task.getId()) + ", '" + task.getTitle() + "', '" + task.getLimitDate() + "', '" + task.getDiscription() + "');";
smt.executeUpdate(sql);
con.close();
} catch (SQLException e) {
//TODO automatisch generierter Fangblock
e.printStackTrace();
}
}
public void update(TaskDto task){
try {
//Verbindung zur Datenbank herstellen
con = DriverManager.getConnection("jdbc:sqlite:/Users/taskManager.sqlite");
smt = con.createStatement();
String sql = "update task set name='"+ task.getTitle() + "', limit_date='" + task.getLimitDate() + "', comment='"+ task.getDiscription() + "', status = " + task.getStatus() + " where id=" + task.getId() + ";";
smt.executeUpdate(sql);
con.close();
} catch (SQLException e) {
//TODO automatisch generierter Fangblock
e.printStackTrace();
}
}
public void delete(int id){
try {
//Verbindung zur Datenbank herstellen
con = DriverManager.getConnection("jdbc:sqlite:/Users/taskManager.sqlite");
smt = con.createStatement();
String sql = "DELETE FROM task WHERE id=" + id + ";";
smt.executeUpdate(sql);
con.close();
} catch (SQLException e) {
//TODO automatisch generierter Fangblock
e.printStackTrace();
}
}
}
Zusätzlich zu den vier Grundmethoden gibt es nur eine ursprüngliche Methode. Das habe ich auch hier nicht schwer gemacht. Ich habe es gerade gemäß dem SQLite-Handbuch gemacht.
Beim Anruf sieht es so aus.
taskRegisterPanel.java
DBAccesser dbAccesser = new DBAccesser();
TaskDto task = new TaskDto();
task.setId(Integer.parseInt(taskId.getText()));
task.setTitle(taskTitle.getText());
task.setLimitDate(taskLimit.getText());
task.setDiscription(taskDiscription.getText());
task.setStatus(0);
dbAccesser.update(task);
Das ist auch einfach.
Dies hat den Vorteil, dass der Anrufer die Operationen leichter zusammen aufrufen kann. Es ist einfach oben zu tun, weil ich es benutze. Es war sehr nervig, weil ich es zuerst nicht benutzt habe ...
Mit der dto-Datei können Sie die Argumente und Ergebnisse beim Zugriff auf die Datenbank einfach bearbeiten.
Je mehr ich es schreibe, desto mehr fühle ich es jetzt, aber ich werde weiterhin mein Bestes geben.