L'histoire de la création de DTO, semblable à Dao avec Java, SQLite

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

1. Code

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.

2. Appelant

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.

3. Impressions

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

L'histoire de la création de DTO, semblable à Dao avec Java, SQLite
L'histoire de la fabrication d'un Othello ordinaire à Java
L'histoire de la création d'un lanceur de jeu avec une fonction de chargement automatique [Java]
L'histoire de la création d'un proxy inverse avec ProxyServlet
[Édition Java] Histoire de la sérialisation
Une histoire sur l'utilisation de l'API League Of Legends avec JAVA
L'histoire de l'écriture de Java dans Emacs
L'histoire de la comparaison de chaînes de bas niveau en Java
L'histoire de l'apprentissage de Java dans la première programmation
Une histoire sur la compatibilité d'un Dockerfile existant avec le GPU
L'histoire du réglage de l'application Android avec libGDX
Calculer le score de similarité des chaînes de caractères avec JAVA
CI l'architecture des applications Java / Kotlin avec ArchUnit
Surveillez l'état interne des programmes Java avec Kubernetes
Vérifiez le comportement de Java Intrinsic Locks avec bpftrace
L'histoire de la création de Dr.Orchid avec LINE BOT
Remplacez seulement une partie de l'hôte URL par java
20190803_Java & k8s sur Azure L'histoire d'aller au festival
Une histoire remplie des bases de Spring Boot (résolu)
[Java] Simplifiez la mise en œuvre de la gestion de l'historique des données avec Reladomo
L'histoire de la transmission de Java à Heroku à l'aide du pipeline BitBucket
Assurez-vous de comparer le résultat Java compareTo avec 0
L'histoire de la création d'une version Java du serveur Minecraft avec GCP (et également de la création d'une liste blanche)
L'histoire du refactoring avec un assistant personnel pour la première fois dans une application Rails
[Java] Supprimer les éléments de la liste
[Java1.8 +] Obtenez la date du jour × suivant avec LocalDate
L'histoire de ne pas connaître le comportement de String en passant par Java
Histoire du passage de Java Gold SE8
Essayez HelloWorld avec la configuration minimale de Heroku Java spring-boot
L'histoire de @ViewScoped dévore la mémoire
L'histoire de toString () commençant par le passage d'un tableau à System.out.println
Suivez le lien avec Selenium (Java)
Le point addictif lors de l'authentification de base avec Java URLConnection
Impressions de faire Black Jack-cli avec Ruby
L'histoire de la création d'un jeu d'Othello de type communication avec Scala.
Écraser le téléchargement du fichier avec le même nom avec BOX SDK (java)
La version d'Elasticsearch que vous utilisez est-elle compatible avec Java 11?
L'origine des expressions Java lambda
L'histoire de rendre possible la construction d'un projet qui a été construit par Maven avec Ant
Je voulais écrire un processus équivalent à une instruction while avec l'API Java 8 Stream
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
Exprimons le résultat de l'analyse du code d'octet Java dans un diagramme de classes
L'histoire de l'acquisition de Java Silver en deux mois de totalement inexpérimenté.
Vérifiez l'enregistrement MX de l'adresse e-mail avec java et vérifiez le domaine
[Java] Récupère MimeType à partir du contenu du fichier avec Apathce Tika [Kotlin]
L'histoire de la rencontre avec l'annotation personnalisée Spring
Obtenez le résultat de POST en Java
Histoire de paiza.jp [solution d'entrée standard Java]
Vérifiez le contenu du magasin de certificats Java
Vérifiez le contenu des paramètres avec le levier
Examiner l'utilisation de la mémoire des éléments Java
Mémo: [Java] Vérifiez le contenu du répertoire
L'histoire de la mise à jour du Docker Container de Sonar Qube
Comparer les éléments d'un tableau (Java)
L'histoire de RxJava souffrant de NoSuchElementException
Quelles sont les fonctionnalités mises à jour de Java 13
Mesurez facilement la taille des objets Java
Retour sur les bases de Java
À propos du traitement de BigDecimal (avec réflexion)