Connexion et utilisation Java JDBC
JDBC
Importer des pilotes
// Jar est un jeu de fichiers de classe emballé, qui peut être référencé à d'autres projets
// importe des pots externes dans le chemin de construction
Connectez-vous à JDBC
1. Chargez le pilote
Class.from ("com.mysql.jdbc.driver");Créer une connexion
// Le package guide utilise java.sql. *; String JDBC = "JDBC: MySQL: // LocalHost: 3306 / Student? User = root & Password = & CaracterEncoding = UTF-8"; // Étudiant est la connexion du nom Conn = driverManager.getConnection (JDBC);
2. Notez qu'après l'ouverture de la base de données, n'oubliez pas de la fermer.
conn.close ();
1. Exécuter des instructions SQL (créer des tables, insérer, supprimer, mettre à jour)
Utilisation de Statement
Statement ST = Conn.CreateStateMant (); int row = St.ExecuteUpdate (instruction SQL); // ne peut pas effectuer des opérations de requête.
Utilisation de préparation
Peut-il être utilisé? Espaces réservés pour remplacer les paramètres que vous devez passer
String sql = "INSERT INT" + TableName + "(nom, sujet, score) VALEURS (?,?,?)"; Préparation Pt = Conn.Preparestatement (SQL); // Définissez la valeur pour chaque placeur et l'indice commence à partir de 1 Pt.SetString (1, score.getName ()); pt.SetString (2.Score.getSubject ()); pt.setDouble (3, score.getScore ()); // Utilisez la méthode sans paramètres pt.ExecuteUpdate ();
1. Fonctionnement de la requête
STATIQUE LISTE <SORT> QUERYSCORE (Connexion PCONN, SCORE PSCORE) lève SQLEXception {ArrayList <Score> mlist = new ArrayList <> (); String sql = "select * from" + tableName + "où name =?"; PréparéStatement ps = pconn.preparestatement (SQL); ps.SetString (1, pscore.getName ()); ResultSet rs = ps.ExecuteQuery (); while (Rs.Next ()) {// Ici, vous pouvez obtenir tous les résultats via RS String sujet = Rs.getString ("Subject"); int id = rs.getInt ("id"); double score = Rs.GetDouble ("score"); mList.add (nouveau score (id, pscore.getName (), sujet, score)); } return mlist; }Voici un petit programme
// Créer une classe de connexion de base de données classe publique Dao {// Demandez à l'adresse de la base de données de la chaîne statique jdbc = "jdbc: mysql: // localhost: 3306 / student? User = root & mot de passe = & caractéristique = utf-8"; // Ouvrez le lien public STATIC Connection STATIC () {// Étapes pour utiliser jdbc // 1. Chargez le pilote jdbc try {// Nom complet de la classe + classe Class.Forname ("com.mysql.jdbc.driver"); // 2. Connectez-vous à la connexion de la base de données Conn = driverManager.getConnection (JDBC); Retourne Conn; } catch (exception e) {System.out.println ("La charge du pilote a échoué"); retourner null; }}} // Score de classe publique classe publique Score {String Name; String id; Sujet de chaîne; double score; score public (nom de chaîne, sujet de chaîne, score double) {super (); this.name = name; this.subject = sujet; this.score = score; } @Override public String toString () {return "score [name =" + name + ", id =" + id + ", sujet =" + sujet + ", score =" + score + "]"; } Score public (nom de chaîne, ID de chaîne, sujet de chaîne, double score) {super (); this.name = name; this.id = id; this.subject = sujet; this.score = score; } public String getName () {Nom de retour; } public void setName (string name) {this.name = name; } public String getID () {return id; } public void setid (String id) {this.id = id; } public String getSubject () {return sujet; } public void setSubject (String Subject) {this.subject = sujet; } public double getScore () {return score; } public void setScore (double score) {this.score = score; }} // Classe d'implémentation Test de classe publique {public static String TableName = "Score"; public static void main (String [] args) {try {connection conn = dao.connection (); if (conn! = null) {System.out.println ("Linked"); // CreateTable (Conn); // insérer un record // score score = nouveau score ("li si", "Android", 98); // System.out.println (AddScore2 (Conn, Score)); // DeleteScore (Conn, score); // updatesCore (Conn, score); List <Score> list = quereyscoreByName (Conn, "Wang Wu"); // QueryAllScore (Conn); for (score score: list) {System.out.println (score); } conn.close (); } else {System.out.println ("Link a échoué"); }} catch (sqlexception e) {e.printStackTrace (); }} // Créer un tableau publique statique booléen créaTable (Connection Conn) {// Commencez à exécuter la chaîne de déclaration SQL SQL = "CREATE TABLE" + TableName + "(ID INTEGER CLIE PRIMATE AUTO_INCRÉMENT, NOM VARCHAR (3) NON NULL, SUJET VARchar (20) Not Null, Score Double)"; // Pour exécuter une instruction, une classe exécutée doit être exécutée Instruction TRY {Statement St = Conn.CreatEstatement (); INT Result = St.ExecuteUpdate (SQL); System.out.println (résultat); if (résultat! = -1) Retour True; } catch (sqlexception e) {e.printStackTrace (); } return false; } // Ajouter un enregistrement publique booléen statique AddScore (connexion Conn, score score) lève SQLEXception {String sql = "insérer dans" + tablename + "(nom, sujet, score) ('" + score.getName () + "', '" + score.getsubject () + "'," + score.getScore () + ")"; System.out.println (SQL); Instruction st = conn.createStatement (); int row = St.ExecuteUpdate (SQL); if (row> 0) return true; retourne false; } // Ajouter un enregistrement 2 booléen statique publique AddScore2 (connexion conn, score score) lève sqlexception {// placeholder? Pour remplacer le paramètre qui doit être défini String sql = "INSERT IN" + TableName + "(nom, sujet, score) VALEURS (? ,?)"; PréparéStatement ps = conn.preparestatement (SQL); // doit être donné? La valeur représentée par Ps.SetString (1, score.getName ()); ps.SetString (2, score.getSubject ()); Ps.SetDouble (3, score.getScore ()); // appelle la méthode sans paramètres int row = ps.ExecuteUpdate (); if (row> 0) return true; retourne false; } public static boolean Deletescore (connexion conn, score score) lève sqlexception {string sql = "delete from" + tableName + "where name =? and sujet =?"; // Créer des préparatifs préparés PS = Conn.Preparastic (SQL); ps.SetString (1, score.getName ()); ps.SetString (2, score.getSubject ()); // Ps.SetDouble (3, score.getScore ()); // exécuter int row = ps.ExecuteUpdate (); System.out.println (Row); if (row> 0) return true; retourne false; } public static boolean updatesCore (connexion conn, score score) lève sqlexception {// modifier le score pour ses sujets String sql = "update" + tableName + "set score =? où name =? et sujet =?"; PréparéStatement 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; retourne false; } public static List <Score> QueryAllScore (Connection Conn) lève SQLEXception {String Sql = "SELECT * FROM" + TableName; // Démarrer l'instruction de requête ST = Conn.creatEstatement (); ResultSet rs = St.ExecuteQuery (SQL); List <score> list = new ArrayList <Score> (); while (Rs.Next ()) {// Ici, vous pouvez obtenir tous les résultats via RS String id = Rs.getString ("id"); String name = Rs.getString ("name"); String sujet = Rs.getString ("Subject"); double score = Rs.GetDouble ("score"); list.add (nouveau score (nom, id, sujet, score)); } // fin la liste de retour; } public static List <Score> QUERYSCOREBYNAME (Connexion Conn, String Name) lève SQELLECTENCE {String SQL = "SELECT * FROM" + TableName + "WHERE NAME =?"; PréparéStatement pt = conn.preparestatement (SQL); pt.SetString (1, nom); ResultSet rs = pt.ExecuteQuery (); List <score> list = new ArrayList <> (); while (Rs.Next ()) {String sujet = Rs.GetString ("Subject"); String id = Rs.getString ("id"); double score = Rs.GetDouble ("score"); list.add (nouveau score (nom, id, sujet, score)); } Retour List; }