Bonjour, c'est un certain ingénieur d'entreprise. Un mémorandum parce que j'ai fait dto, à la manière de dao lors de la création d'une application de gestion de tâches avec swing, java. Cliquez ici pour consulter les articles précédents liés https://qiita.com/Ohtak/items/1be20a4b06b5833c3d61 https://qiita.com/Ohtak/items/f9a47b9be26c93fedaf9
D'abord à partir du fichier dto. Mais je n'ai rien fait de différent ...
TaskDto.java
public class TaskDto {
//ID de tâche
Integer id;
//Nom de la tâche
String title;
//Remarques sur la tâche
String discription;
//Date limite de la tâche
String limitDate;
//État de la tâche
Integer status;
/**
* @return id
*/
public Integer getId() {
return id;
}
/**
* @id de paramètre set id
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return title
*/
public String getTitle() {
return title;
}
/**
* @titre du jeu de titre du paramètre
*/
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;
}
/**
* @titre du jeu de titre du paramètre
*/
public void setLimitDate(String limitDate) {
this.limitDate = limitDate;
}
/**
* @return status
*/
public Integer getStatus() {
return status;
}
/**
* @état du paramètre état défini
*/
public void setStatus(Integer status) {
this.status = status;
}
}
C'est tout.
Vient ensuite le dao. Je ne ressemble pas vraiment au dao, alors je lui donne un nom de classe égoïste.
DBAccesser.java
public class DBAccesser {
public Connection con = null;
public Statement smt = null;
public List<TaskDto> selectAll(){
try {
//Créé s'il n'est pas connecté à la base de données
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) {
//Bloc de capture généré automatiquement TODO
e.printStackTrace();
return null;
}
}
public int selectLastId(){
try {
//Créé s'il n'est pas connecté à la base de données
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) {
//Bloc de capture généré automatiquement TODO
e.printStackTrace();
return 0;
}
}
public void insert(TaskDto task){
try {
//Se connecter à la base de données
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) {
//Bloc de capture généré automatiquement TODO
e.printStackTrace();
}
}
public void update(TaskDto task){
try {
//Se connecter à la base de données
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) {
//Bloc de capture généré automatiquement TODO
e.printStackTrace();
}
}
public void delete(int id){
try {
//Se connecter à la base de données
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) {
//Bloc de capture généré automatiquement TODO
e.printStackTrace();
}
}
}
En plus des quatre méthodes de base, il n'y a qu'une seule méthode originale. Je n'ai pas fait ça non plus ici. Je viens de le faire selon le manuel sqlite.
Cela ressemble à ceci lors de l'appel.
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);
C'est également facile.
L'avantage de l'utiliser est qu'il permet à l'appelant d'appeler plus facilement les opérations ensemble. C'est facile à faire ci-dessus car je l'utilise. C'était très ennuyeux car je ne l'ai pas utilisé au début ...
En utilisant le fichier dto, vous pouvez facilement utiliser les arguments et les résultats lors de l'accès à la base de données.
Plus je l'écris, plus je le sens maintenant, mais je continuerai à faire de mon mieux.
Recommended Posts