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

Tutorial zur HTML-Tabellenauszeichnung (48): CSS-modifizierte Tabelle

<br />Sehen wir uns nun an, wie Sie die CSS-...

So verstehen und identifizieren Sie Dateitypen in Linux

Vorwort Wie wir alle wissen, ist in Linux alles e...

Anwendung der MapState-Idee in Vuex

Inhaltsverzeichnis 1. Kartenmethode 2. Anwendung ...

So verwenden Sie CSS-Stile und -Selektoren

Drei Möglichkeiten, CSS in HTML zu verwenden: 1. ...

Zusammenfassung des CSS-Zählers und des Inhalts

Die Inhaltseigenschaft wurde bereits in CSS 2.1 e...

Natives JS zur Implementierung der Dropdown-Box-Auswahlkomponente

In diesem Artikelbeispiel wird der spezifische JS...

CSS3 verwendet die Übergangseigenschaft, um Übergangseffekte zu erzielen

Detaillierte Beschreibung der Eigenschaften Der Z...

CSS zur Realisierung der Einzelauswahl-Faltmenüfunktion

Führen Sie kein Front-End-UI-Framework ein, es se...

So verwenden Sie Javascript zum Erstellen einfacher Algorithmen

Inhaltsverzeichnis 1 Frage 2 Methoden 3 Experimen...

HTML-Grundstruktur_Powernode Java Academy

Wenn wir lernen, Webseiten zu entwickeln, ist das...

Ein kurzes Verständnis der Unterschiede zwischen MySQL InnoDB und MyISAM

Vorwort MySQL unterstützt viele Arten von Tabelle...

Zusammenfassung der wichtigsten Docker-Befehle für Entwickler

Inhaltsverzeichnis Einführung in Docker Installat...

Über das Problem der vertikalen Zentrierung von img und span in div

Wie unten dargestellt: XML/HTML-CodeInhalt in die...