Die Geschichte von dto, dao-like mit Java, SQLite

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

1. Code

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.

2. Anrufer

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.

3. Eindrücke

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.

Recommended Posts

Die Geschichte von dto, dao-like mit Java, SQLite
Die Geschichte eines gewöhnlichen Othello in Java
Die Geschichte eines Game Launcher mit automatischer Ladefunktion [Java]
Die Geschichte, einen Reverse-Proxy mit ProxyServlet zu erstellen
[Java Edition] Geschichte der Serialisierung
Eine Geschichte über das Erreichen der League Of Legends-API mit JAVA
Die Geschichte des Schreibens von Java in Emacs
Die Geschichte des einfachen String-Vergleichs in Java
Die Geschichte des Lernens von Java in der ersten Programmierung
Eine Geschichte darüber, wie eine vorhandene Docker-Datei mit der GPU kompatibel gemacht werden kann
Die Geschichte der Optimierung der Android-App mit libGDX
Berechnen Sie die Ähnlichkeitsbewertung von Zeichenketten mit JAVA
CI die Architektur von Java / Kotlin-Anwendungen mit ArchUnit
Überwachen Sie den internen Status von Java-Programmen mit Kubernetes
Überprüfen Sie das Verhalten von Java Intrinsic Locks mit bpftrace
Die Geschichte, Dr. Orchid mit LINE BOT zu machen
Ersetzen Sie nur einen Teil des URL-Hosts durch Java
20190803_Java & k8s on Azure Die Geschichte vom Festivalbesuch
Eine Geschichte voller Grundlagen von Spring Boot (gelöst)
[Java] Vereinfachen Sie die Implementierung der Datenverlaufsverwaltung mit Reladomo
Die Geschichte, Java mithilfe der BitBucket-Pipeline nach Heroku zu bringen
Stellen Sie sicher, dass Sie das Java compareTo-Ergebnis mit 0 vergleichen
Die Geschichte des Erstellens einer Java-Version des Minecraft-Servers mit GCP (und dem Festlegen einer weißen Liste)
Die Geschichte des Refactorings mit einem selbstgemachten Helfer zum ersten Mal in einer Rails-App
[Java] Löschen Sie die Elemente von List
[Java1.8 +] Mit LocalDate das Datum des nächsten × Tages abrufen
Die Geschichte, das Verhalten von String durch Passieren von Java nicht zu kennen
Die Geschichte von Java Gold SE8
Probieren Sie HelloWorld mit der Mindestkonfiguration von Heroku Java Spring-Boot aus
Die Geschichte von @ViewScoped, die Speicher verschlingt
Die Geschichte von toString () beginnt mit der Übergabe eines Arrays an System.out.println
Folgen Sie dem Link mit Selen (Java)
Der Suchtpunkt bei der Durchführung der Basisauthentifizierung mit Java URLConnection
Eindrücke von Black Jack-Cli mit Ruby
Die Geschichte eines Othello-Spiels vom Kommunikationstyp mit Scala.
Überschreiben Sie den gleichnamigen Upload mit dem BOX SDK (Java).
Ist die von Ihnen verwendete Version von Elasticsearch mit Java 11 kompatibel?
Der Ursprung von Java-Lambda-Ausdrücken
Die Geschichte, ein Projekt zu bauen, das Maven mit Ant gebaut hat
Eine Geschichte, die ich mit der Stream-API von Java8 einem Prozess schreiben wollte, der einer while-Anweisung entspricht
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
Lassen Sie uns das Ergebnis der Analyse von Java-Bytecode in einem Klassendiagramm ausdrücken
Die Geschichte des Erwerbs von Java Silver in zwei Monaten von völlig unerfahrenen.
Überprüfen Sie den MX-Eintrag der E-Mail-Adresse mit Java und die Domain
[Java] Holen Sie sich MimeType aus dem Inhalt der Datei mit Apathce Tika [Kotlin]
Die Geschichte der Begegnung mit Spring Custom Annotation
Holen Sie sich das Ergebnis von POST in Java
Geschichte von paiza.jp [Java Standard Input Solution]
Überprüfen Sie den Inhalt des Java-Zertifikatspeichers
Überprüfen Sie den Inhalt der Parameter mit pry
Untersuchen Sie die Speichernutzung von Java-Elementen
Anmerkung: [Java] Überprüfen Sie den Inhalt des Verzeichnisses
Die Geschichte der Aktualisierung des Docker-Containers von Sonar Qube
Vergleichen Sie Elemente eines Arrays (Java)
Die Geschichte von RxJava, das unter NoSuchElementException leidet
Was sind die aktualisierten Funktionen von Java 13
Messen Sie einfach die Größe von Java-Objekten
Rückblick auf die Grundlagen von Java
Über die Behandlung von BigDecimal (mit Reflexion)