Detaillierte Erläuterung der zugrunde liegenden Kapselung der Java-Verbindung zu MySQL

Detaillierte Erläuterung der zugrunde liegenden Kapselung der Java-Verbindung zu MySQL

In diesem Artikel wird der der Java-Verbindung zugrunde liegende Kapselungscode für MySQL zu Ihrer Information freigegeben. Der spezifische Inhalt ist wie folgt

Herstellen einer Verbindung zu einer Datenbank

Paket com.dao.db;

importiere java.sql.Connection;
importiere java.sql.SQLException;

/**
 * Datenbankverbindungsschicht MYSQL
 * @author Administrator
 *
 */
öffentliche Klasse DBConnection {
 
 
 /**
  * Mit Datenbank verbinden * @return
  */
 öffentliche statische Verbindung getDBConnection()
 {
  // 1. Treiber registrieren try {
   Klasse.fürName("com.mysql.jdbc.Driver");
  } Fang (ClassNotFoundException e) {
   // TODO Automatisch generierter Catch-Block
   e.printStackTrace();
  }
  // Holen Sie sich die Datenbankverbindung try {
   Verbindung conn = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/mysql?useUnicode=true&characterEncoding=utf-8", "root", "root");
   Rückverbindung;
  } Fang (SQLException e1) {
   e1.printStackTrace();
  }
  gibt null zurück;
 }
 
}

Datenschichtkapselung

Paket com.dao.db;

importiere java.sql.Connection;
importiere java.sql.PreparedStatement;
importiere java.sql.ResultSet;
importiere java.sql.ResultSetMetaData;
importiere java.sql.SQLException;
importiere java.sql.Types;
importiere java.util.ArrayList;
importiere java.util.HashMap;

/**
 * MySQL-Datenbank zugrunde liegende Kapselung * @author Administrator
 *
 */
öffentliche Klasse DBManager {
 
 privates PreparedStatement pstmt;
 private Verbindung conn;
 privates Ergebnisset rs;
 

 /**
  *Öffne die Datenbank */
 öffentlicher DBManager() {
  conn = DBConnection.getDBConnection();
 }
 
 /**
  * Änderungs- und Additionsoperationen durchführen * @param coulmn
  * @param-Typ
  * @param sql
  * @zurückkehren
  * @throws SQLException
  */
 öffentliches boolean updateOrAdd(String[] coulmn, int[] type, String sql) löst SQLException aus
 {
  if(!setPstmtParam(Spalte, Typ, SQL))
   gibt false zurück;
  Boolesche Flagge = pstmt.executeUpdate()>0?true:false;
  DB schließen();
  Flagge zurückgeben;
 }
 /**
  * Abfrageergebnissatz abrufen * @param coulmn
  * @param-Typ
  * @param sql
  * @throws SQLException
  */
 öffentliche DataTable getResultData(String[] coulmn, int[] type, String sql) löst SQLException aus
 {
  Datentabelle dt = neue Datentabelle();
  
  ArrayList<HashMap<String, String>>Liste = neue ArrayList<HashMap<String, String>>();
  
  if(!setPstmtParam(Spalte, Typ, SQL))
   gibt null zurück;
  rs = pstmt.executeQuery();
  ResultSetMetaData rsmd = rs.getMetaData(); //Spaltennamen der Datenbank abrufen int numberOfColumns = rsmd.getColumnCount();
  während(rs.next())
  {
   HashMap<String, String> rsTree = neue HashMap<String, String>(); 
   für (int r = 1; r <AnzahlSpalten + 1; r++)
    {
    rsTree.put(rsmd.getColumnName(r),rs.getObject(r).toString());
    }
   Liste.add(rsTree);
  }
  DB schließen();
  dt.setDataTable(Liste);
  dt zurückgeben;
 }
 
 /**
  * Parametereinstellungen * @param coulmn
  * @param-Typ
  * @throws SQLException 
  * @throws NumberFormatException 
  */
 privater boolean setPstmtParam(String[] coulmn, int[] type, String sql) wirft NumberFormatException, SQLException
 {
  wenn (sql == null) false zurückgibt;
  pstmt = conn.prepareStatement(sql);
  wenn(coulmn != null und Typ != null und coulmn.length !=0 und Typ.length !=0)
  {  
   für (int i = 0; i<Typ.Länge; i++) {
    Schalter (Typ[i]) {
    Falltypen.INTEGER:
     pstmt.setInt(i+1, Integer.parseInt(coulmn[i]));
     brechen;
    Falltypen.BOOLEAN:
     pstmt.setBoolean(i+1, Boolean.parseBoolean(coulmn[i]));
     brechen;
    Falltypen.CHAR:
     pstmt.setString(i+1, Spalte[i]);
     brechen;
    Falltypen.DOUBLE:
     pstmt.setDouble(i+1, Double.parseDouble(coulmn[i]));
     brechen;
    Falltypen.FLOAT:
     pstmt.setFloat(i+1, Float.parseFloat(coulmn[i]));
     brechen;
    Standard:
     brechen;
    }
   }
  }
  gibt true zurück;
 }
 
 /**
  * Schließen Sie die Datenbank * @throws SQLException
  */
 private void closeDB() wirft SQLException
 {
  wenn(rs != null)
  {
   rs.schließen();
  }
  wenn(pstmt != null)
  {
   pstmt.schließen();
  }
  wenn(conn != null)
  {
   Verbindung schließen();
  }
  
 }
}

Datensatzpaketierung

Paket com.dao.db;

importiere java.util.ArrayList;
importiere java.util.HashMap;
importiere java.util.Iterator;
importiere java.util.Map;
importiere java.util.Set;

/**
 * Datensatzkapselung * @author Administrator
 *
 */
öffentliche Klasse DataTable {
 
 public String[] column; //Spaltenfeld public String[][] row; //Zeilenwert public int rowCount = 0; //Anzahl der Zeilen public int colCoun = 0; //Anzahl der Spalten public DataTable() {
  super();
 }
 
 öffentliche DataTable(String[] Spalte, String[][] Zeile, int Zeilenanzahl, int Spaltenanzahl) {
  super();
  diese.Spalte = Spalte;
  diese.Zeile = Zeile;
  dies.rowCount = Zeilenanzahl;
  dies.colCoun = colCoun;
 }


 public void setDataTable(ArrayList<HashMap<String, String>> Liste) {
  Zeilenanzahl = Liste.Größe();
  colCoun = list.get(0).size();
  Spalte = neuer String[colCoun];
  Zeile = neuer String[Zeilenanzahl][Spaltenanzahl];
  für (int i = 0; i < Zeilenanzahl; i++) {
   Set<Map.Entry<String, String>> set = list.get(i).entrySet();
   } j = 0;
   für (Iterator<Map.Entry<String, String>> es = set.iterator(); es
     .hasNext();) {
    Map.Entry<String, String> Eintrag = (Map.Entry<String, String>) es
      .nächste();
    Zeile[i][j] = Eintrag.getValue();
    wenn (i == Zeilenanzahl - 1) {
     Spalte[j] = Eintrag.getKey();
    }
    }
   }
  }
 }

 öffentliche String[] getColumn() {
  Rückgabespalte;
 }

 public void setColumn(String[] Spalte) {
  diese.Spalte = Spalte;
 }

 öffentliche String[][] getRow() {
  Zeile zurückgeben;
 }

 öffentliche void setRow(String[][] Zeile) {
  diese.Zeile = Zeile;
 }

 öffentliche int getRowCount() {
  gibt Zeilenanzahl zurück;
 }

 öffentliche void setRowCount(int rowCount) {
  dies.rowCount = Zeilenanzahl;
 }

 öffentliche int getColCoun() {
  RückgabespalteCoun;
 }

 public void setColCoun(int colCoun) {
  dies.colCoun = colCoun;
 }
 
 

}

Demo testen

Paket com.bussiness.test;

importiere java.sql.SQLException;
importiere java.sql.Types;

importiere com.dao.db.DBManager;
importiere com.dao.db.DataTable;

öffentliche Klasse TestBusiness{
 
 statische Zeichenfolge searchSql = "Wählen Sie * aus der Punktzahl aus";
 statischer String insertSql = "einfügen in Punktzahl(Name, Alter, Punktzahl)Werte(?,?,?)";
 statischer String deleteSql = "aus Partitur löschen, wo ID = ?";
 statischer String updateSql = "Scoreset-Name aktualisieren = ? wobei ID = ?";
 
 öffentliche statische void main(String[] args) {
  intsertData();
  Suchdaten();
 }
 
 private statische void intsertData()
 { 
  DBManager dm = neuer DBManager();
  String[] Spalte = neuer String[]{"wyf2", "23", "89.5"};
  int[] Typ = neuer int[]{Typen.CHAR, Typen.INTEGER, Typen.DOUBLE};
  
  versuchen {
   Boolesche Flagge = dm.updateOrAdd(coulmn, type, insertSql);
   wenn(Flagge)
    System.out.println("Erfolgreich eingefügt");
  } Fang (SQLException e) {
   e.printStackTrace();
  }
 }
 private static void suchdaten()
 { 
  DBManager dm = neuer DBManager();
  String[] Spalte = null;
  int[] Typ = null;
  
  versuchen {
   DataTable dt = dm.getResultData(Spalte, Typ, Suchtabelle);
   wenn(dt != null && dt.getRowCount() > 0){   
    für (int i = 0; i<dt.getRowCount(); i++)
    {
     für (int j = 0; j<dt.getColCoun(); j++)
     System.out.printf(dt.getRow()[i][j]+"\t");
     System.out.println();
    }
   }
   anders
    System.out.println("Abfrage fehlgeschlagen");
  } Fang (SQLException e) {
   e.printStackTrace();
  }
 }
}

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Java stellt eine Verbindung zum MySQL-Datenbankcode-Beispielprogramm her
  • Detaillierte Erklärung zur Verbindung von Java mit Mysql Version 8.0.18
  • Java stellt eine Verbindung zur MySQL-Datenbank her, um Einzel- und Batcheinfügungen zu implementieren
  • Lösung für das Problem, dass Java keine Verbindung zu MySQL 8.0 herstellen kann
  • Implementierung eines Studierendenverwaltungssystems auf Basis von MySQL in Java
  • Java+MySQL zur Implementierung des Quellcodes des Studenteninformationsmanagementsystems
  • Detaillierte Erklärung zur dynamischen Generierung gespeicherter MySQL-Prozeduren in Java Spring

<<:  Interviewer stellen häufig Fragen zum Lebenszyklus von React

>>:  Erläuterung der Regeln zum Standortabgleich für die Nginx-Konfiguration (Beispiel)

Artikel empfehlen

CentOS 7.9 Installations- und Konfigurationsprozess von zabbix5.0.14

Inhaltsverzeichnis 1. Grundlegende Umgebungskonfi...

So stellen Sie Docker-Containerdaten wieder her

Die Datenbankdaten der Projekttestumgebung sind v...

Das Linux-System verbietet den Remote-Login-Befehl des Root-Kontos

PS: So deaktivieren Sie die Remote-Anmeldung des ...

So erstellen Sie ein Django-Projekt und stellen eine Verbindung zu MySQL her

1: django-admin.py startproject Projektname 2: CD...

Richtiger Einsatz von MySQL-Partitionstabellen

Übersicht über partitionierte MySQL-Tabellen Wir ...

MySQL-Passwort ist korrekt, aber keine lokale Anmeldung möglich -1045

MySQL-Passwort ist korrekt, aber keine lokale Anm...

Implementierung eines einfachen Rechners mit Javascript

In diesem Artikelbeispiel wird der spezifische Ja...

Top 10 Js Bildverarbeitungsbibliotheken

Inhaltsverzeichnis einführen 1. Pica 2. Lena.js 3...

MySQL-Grundanweisungen zum Hinzufügen, Löschen, Ändern und Abfragen

Grammatik Hier ist die allgemeine SQL-Syntax für ...

13 JavaScript-Einzeiler, die Sie wie einen Experten aussehen lassen

Inhaltsverzeichnis 1. Holen Sie sich einen zufäll...

Adaptive Breitentabelle für HTML-Seiten

Auf den Seiten von Webanwendungen werden häufig T...

CSS3-Flip-Card-Nummern-Beispielcode

Ich habe heute eine Aufgabe von der Firma erhalte...