Java JDBC -Verbindung und Verwendung
JDBC
Fahrer importieren
// jar ist ein verpackter Klassendatei -Set, auf das auf andere Projekte verwiesen werden kann
// Externe Gläser im Build -Pfad importieren
Verbindung zu JDBC herstellen
1. Laden Sie den Treiber
Class.from ("com.mysql.jdbc.driver");Eine Verbindung erstellen
// Das Leitfadenpaket verwendet java.sql.*; String jdbc = "jdbc: mysql: // localhost: 3306/student? User = root & passy = & charakterEcoding = utf-8"; // student ist die Tabellenname Verbindung conn = driverManager.getConnection (jdbc);
2. Beachten Sie, dass nach der Öffnung der Datenbank sie schließen kann.
conn.close ();
1. Führen Sie SQL -Anweisungen aus (Tabellen erstellen, einfügen, löschen, aktualisieren).
Verwenden von Statemanten
Statemant ST = Conn.CreateStatemant (); int row = St.ExecuteUpdate (SQL -Anweisung); // kann Abfragvorgänge nicht ausführen.
Verwenden von Vorbereitungen
Kann es verwendet werden? Platzhalter, um die Parameter zu ersetzen, die Sie übergeben müssen
String SQL = "In" + tableName + "(Name, Betreff, Punktzahl) Werte (?,?,?)"; Vorbereitung pt = conn.Preparestatement (SQL); // Legen Sie den Wert für jeden Platzhalter fest, und das Index startet mit 1 Pt.SetString (1, Score.getName ()); pt.setString (2.score.getSubject ()); pt.setDouble (3, Score.getScore ()); // die Methode ohne Parameter pt.executeUpdate () verwenden;
1. Abfragebetrieb
statische Liste <Core> queryScore (Verbindung pConn, Score pScore) löst SQLEXception {ArrayList <Core> mlist = new ArrayList <> () aus; String sql = "Select * aus" + tableName + "Wo name =?"; PrepedStatement ps = pconn.Preparestatement (SQL); ps.SetString (1, pScore.getName ()); ResultSet rs = ps.executeQuery (); while (rs.Next ()) {// Hier können Sie alle Ergebnisse über RS String Subjekt = rs.getString ("Subjekt") erhalten; int id = rs.getint ("id"); Double Score = rs.getDouble ("Score"); mlist.add (neuer Score (ID, pScore.getName (), Subjekt, Score)); } return mlist; }Hier ist ein kleines Programm
// Erstellen einer Datenbankverbindungsklasse öffentliche Klasse DAO {// Fragen Sie die Datenbank-Link-Adresse static String jdbc = "jdbc: mysql: // localhost: 3306/student? User = root & password = & charakterencoding = utf-8"; // Öffnen Sie den Link Public Static Connection Connection () {// Schritte in die Verwendung von JDBC // 1. Laden Sie den JDBC -Treiber Versuchen {// Vollständiger Name der Klasse + Klasse Name Class.Forname ("com.mysql.jdbc.driver"); // 2. Verbinden Sie eine Verbindung zur Datenbankverbindung conn = driverManager.getConnection (JDBC); Conn zurückgeben; } catch (Ausnahme e) {System.out.println ("Treiberlast fehlgeschlagen"); null zurückkehren; }}} // Score Class Public Class Score {String Name; String -ID; String -Betreff; doppelte Punktzahl; public Score (String -Name, String -Betreff, Doppelbewertung) {Super (); this.name = name; this.subject = Subjekt; this.score = Score; } @Override public String toString () {return "Score [name =" + name + ", id =" + id + ", Subjekt =" + Subjekt + ", Score =" + Score + "]"; } public Score (String -Name, String -ID, String -Betreff, doppelte Punktzahl) {Super (); this.name = name; this.id = id; this.subject = Subjekt; this.score = Score; } public String getName () {return name; } public void setName (String -Name) {this.name = name; } public String getId () {return id; } public void setID (String -ID) {this.id = id; } public String getUntject () {return thema; } public void setSubject (String -Subjekt) {this.subject = Subjekt; } public double getCore () {return Score; } public void setScore (doppelte Punktzahl) {this.score = Score; }} // Implementierungsklasse öffentlicher Klassen -Test {public static String tablename = "Score"; public static void main (string [] args) {try {connection conn = dao.connection (); if (conn! = null) {System.out.println ("verlinkt"); // CreateTable (conn); // Einen Datensatz einfügen // Score Score = New Score ("Li Si", "Android", 98); // system.out.println (addScore2 (conn, punkt)); // Deletescore (Conn, Score); // UpdatesCore (Conn, Score); List <Core> list = queryScoreByName (conn, "Wang Wu"); // queryAllScore (conn); für (Punktzahl: Liste) {System.out.println (Score); } conn.close (); } else {System.out.println ("Link fehlgeschlagen"); }} catch (sqlexception e) {e.printstacktrace (); }} // Erstellen Sie eine Tabelle public static boolean createTable (Verbindung conn) {// Starten Sie die SQL -Anweisung String SQL = "Tabelle" + tableName + "(ID Integer Primärschlüssel Auto_increment, Name Varchar (3) nicht NULL, Subjekt Varchar (20) NICHT NULL, Punktzahl doppelte Punktzahl)"; // Um eine Anweisung auszuführen, muss eine ausgeführte Klasse ausgeführt werden, um Anweisung auszuführen. int result = St.ExecuteUpdate (SQL); System.out.println (Ergebnis); if (Ergebnis! = -1) return true; } catch (sqlexception e) {e.printstacktrace (); } return false; } // Fügen Sie einen Datensatz für öffentliche statische boolean addscore (Verbindung conn, Score Score) aus SQLEXception {String sql = "in" + tableName + "(Name, Betreff, Score) Werte ('" + Score.getName () + "', '" + Score.GetSubject () + "'," + Score () + ")") ". System.out.println (SQL); Anweisung ST = Conn.CreateStatement (); int row = St.ExecuteUpdate (SQL); if (row> 0) return true; false zurückgeben; } // einen Datensatz 2 hinzufügen 2 public static boolean addScore2 (Verbindung conn, Score Score) löst SQLEXception {// Platzhalter aus? Um den Parameter zu ersetzen, der Zeichenfolge SQL = "In" + tableName + "(Name, Betreff, Score) einfügen muss (?,?,?)" PrepedStatement ps = conn.preparestatement (SQL); // muss gegeben werden? Der Wert, der durch PSETString dargestellt wird (1, Score.GetName ()); ps.SetString (2, Score.getSubject ()); Ps.SetDouble (3, Score.getScore ()); // Die Methode ohne Parameter int row = ps.executeUpdate () aufrufen; if (row> 0) return true; false zurückgeben; } public static boolean Deletescore (Verbindung conn, Score Score) löst SQLEXception aus {String sql = "aus" + tableName + "Where name =? und Subjekt =?"; // Vorbereitungsvorbereitungsstatement PS = Conn.Preparestatement (SQL) erstellen; Ps.SetString (1, Score.getName ()); ps.SetString (2, Score.getSubject ()); // Ps.SetDouble (3, Score.getScore ()); // int row = ps.executeUpdate () ausführen; System.out.println (Row); if (row> 0) return true; false zurückgeben; } public static boolean updatesCore (Verbindung conn, Score Score) löst SQLEXception aus {// Score für seine Probanden String sql = "update" + tableName + "set Score =? Where name =? und Subjekt =?"; PrepedStatement ps = conn.preparestatement (SQL); Ps.SetDouble (1, Score.getScore ()); ps.SetString (2, Score.getName ()); Ps.SetString (3, Score.getSubject ()); int row = ps.executeUpdate (); System.out.println (Row); if (row> 0) return true; false zurückgeben; } public static list <Core> queryAllScore (Verbindung conn) löst SQLEXception aus {String sql = "aus" aus " + tableName; // Abfrageanweisung starten st = conn.CreateStatement (); ResultSet rs = St.ExecuteQuery (SQL); List <Core> list = new ArrayList <Core> (); while (rs.Next ()) {// Hier können Sie alle Ergebnisse über RS String id = rs.getString ("id") erhalten; String name = rs.getString ("Name"); String -Betreff = rs.getString ("Subjekt"); Double Score = rs.getDouble ("Score"); list.add (neuer Punktzahl (Name, ID, Betreff, Punktzahl)); } // Endrückgabeliste; } public static list <Core> queryScoryName (Verbindung conn, String -Name) löst SQLEXception aus {String sql = "SELECT * aus" + tableName + "Where name =?"; PrepedStatement pt = conn.preparestatement (SQL); Pt.SetString (1, Name); ResultSet rs = pt.executeQuery (); Liste <Core> list = new ArrayList <> (); while (rs.Next ()) {String subjekt = rs.getString ("Subjekt"); String id = rs.getString ("id"); Double Score = rs.getDouble ("Score"); list.add (neuer Punktzahl (Name, ID, Betreff, Punktzahl)); } Rückgabeliste; }