Je crois que tout le monde connaît JDBC. Tant que vous êtes une personne Java, vous devez apprendre une telle chose lorsque vous entrez en contact avec J2EE. Qui a dit que les programmes doivent faire face aux bases de données? JDBC est une connaissance très basique pour gérer les bases de données et est également relativement proche du niveau sous-jacent. Dans le travail réel, les gens utilisent des cadres plus matures, tels que Hibernate et Mybatis.
Cependant, en tant que JDBC sous-jacent de ces cadres matures, nous devons également le maîtriser. Ce n'est qu'en comprenant l'addition, la suppression, la modification et la requête de JDBC, pouvons-nous mieux comprendre comment ces cadres matures implémentent l'addition, la suppression, la modification et la question lorsqu'ils sont intéressés à étudier le code source d'hibernate ou de mybatis à l'avenir.
Pour en revenir au sujet, jetons un coup d'œil à notre environnement de développement:
Langue Java, outils de développement Eclipse, base de données MySQL, outils de visualisation de la base de données NAVICAT.
Veuillez vérifier les informations vous-même pour l'installation, la construction et l'utilisation de l'environnement de développement (très simple) et ne seront pas expliquées en détail ici.
La première étape consiste à créer une base de données, à utiliser l'outil de visualisation de la base de données Navicat pour créer une base de données, à créer un tableau dans la base de données, à donner plusieurs champs dans le tableau (n'oubliez pas de donner un champ d'ID, une clé primaire unique, une séquence d'auto-incitation), puis de donner deux données à volonté pour tester la fonction, comme indiqué dans la figure:
La deuxième étape consiste à ouvrir la base de données (j'espère que tout le monde pourra appuyer sur vous-même cet exemple, ce qui ne prendra pas beaucoup de temps. Soyez familier avec la façon dont JDBC traite de la base de données, donc je vais le montrer sur la figure). Comme indiqué sur la figure:
La troisième étape consiste à transformer la classe DButil pour faciliter l'acquisition de connexions de base de données sur la couche DAO. Le code est le suivant:
package com.czgo.db; import java.sql.connection; import java.sql.driverManager; import java.sql.sqlexception; public class dbutil {private static final Url = "jdbc: mysql: //127.0.0.1: 3306 / iMooc";; chaîne finale statique privée uname = "root"; chaîne finale statique privée pwd = "root"; connexion statique privée conn = null; statique {try {// 1. Chargez le pilote class.forname ("com.mysql.jdbc.driver"); // 2. Obtenez la connexion à la base de données Conn = driverManager.getConnection (URL, uname, pwd); } catch (classNotFoundException e) {e.printStackTrace (); } catch (sqlexception e) {e.printStackTrace (); }} Connexion statique publique getConnection () {return conn; }} Étape 4: Créez des cours d'entités (comme indiqué dans l'image ci-dessus, tout le monde observe l'allocation des packages. Nous utiliserons l'idée MVC pour concevoir cet exemple. Il y a des idées de conception sur MVC, veuillez l'apprendre vous-même, je ne dirai pas grand-chose ici) Le code est le suivant:
package com.czgo.model; importer java.io.serializable; / ** * Classe d'entité: Classe de déesse * * @author alanlee * * / classe publique Goddess implémente Serializable {private static final SerialVersionUID = 1l; / ** * Clé primaire unique * / ID entier privé; / ** * nom * / nom de chaîne privée; / ** * Numéro de mobile * / String privé Mobie; / ** * Email * / Email de la chaîne privée; / ** * Adresse personnelle * / adresse de chaîne privée; public Integer getID () {return id; } public void setid (INGER ID) {this.id = id; } public String getName () {Nom de retour; } public void setName (string name) {this.name = name; } public String getMobie () {return Mobie; } public void setMobie (String Mobie) {this.mobie = mobie; } public String getEmail () {return e-mail; } public void setEmail (chaîne e-mail) {this.email = e-mail; } public String getAddress () {return adresse; } public void setAddress (adresse de chaîne) {this.address = adresse; }} Étape 5, mise en œuvre de la couche DAO (ici, comme il s'agit d'un petit exemple, il n'y a pas d'interface d'écriture pour les grands projets dans le travail réel, ce qui est pratique pour la maintenance et l'expansion du programme). Le code est le suivant:
package com.czgo.dao; import java.sql.connection; import java.sql.preparedstatement; import java.sql.resultSet; import java.sql.sqlexception; import java.util.arraylist; com.czgo.model.goddess; / ** * Classe de traitement de la couche de données * * @author alanlee * * / classe publique Goddessdao {/ ** * Query All Goddesses * * @return * @throws sqlexception * / public list <Goddess> Query () lance SQLEXECTNEGET; // Obtenez la connexion de la base de données Conn = dbutil.getConnection (); StringBuilder sb = new StringBuilder (); SB.APPEND ("SELECT ID, nom, Mobie, e-mail, adresse de la déesse"); // Faire fonctionner la base de données via la connexion de la base de données pour réaliser l'addition, la suppression, la modification et la recherche préparée Ptmt = Conn.Preparastement (sb.toString ()); ResultSet rs = ptmt.ExecuteQuery (); Déesse déesse = null; while (Rs.Next ()) {Goddess = new Goddess (); goddess.setid (Rs.getInt ("id")); goddess.setName (Rs.getString ("name")); goddess.setMobie (Rs.getString ("Mobie")); goddess.setemail (Rs.getString ("e-mail")); goddess.setAddress (Rs.getString ("adresse")); goddess.setAddress (Rs.getString ("adresse")); GoddessList.add (déesse); } return goddessList; } / ** * requête la déesse unique * * @return * @Throws Sqlexception * / Goddess public QueryByid (INGER ID) lève Sqlexception {Goddess g = null; Connexion conn = dbutil.getConnection (); String sql = "" + "select * from iMooc_goddess" + "où id =?"; PréparéStatement ptmt = conn.preparestatement (SQL); ptmt.sentInt (1, id); ResultSet rs = ptmt.ExecuteQuery (); while (Rs.Next ()) {g = new Goddess (); g.setid (Rs.getInt ("id")); g.setName (Rs.getString ("name")); g.setMobie (Rs.GetString ("Mobie")); g.setemail (Rs.getString ("e-mail")); g.setAddress (Rs.getString ("adresse")); } return g; } / ** * Ajouter la déesse * * @Throws Sqlexception * / public void addgoddess (déesse goddess) lève sqlexception {// Obtenir la connexion de la base de données conn = dbutil.getConnection (); String sql = "Insérer dans la déesse (nom, mobie, e-mail, adresse) VALEURS (?,?,?,?)"; PréparéStatement ptmt = conn.preparestatement (SQL); Ptmt.SetString (1, goddess.getName ()); Ptmt.SetString (2, Goddess.getMobie ()); Ptmt.SetString (3, goddess.getEmail ()); Ptmt.SetString (4, Goddess.getAddress ()); Ptmt.ExECUTE (); } / ** * Modifier les informations de la déesse * * @throws sqlexception * / public void updatetegoddess (goddess goddess) lève sqlexception {connection conn = dbutil.getConnection (); String sql = "Update Goddess Set Name =?, Mobie =?, Email =?, Adresse =? Où id =?"; PréparéStatement ptmt = conn.preparestatement (SQL); Ptmt.SetString (1, goddess.getName ()); Ptmt.SetString (2, Goddess.getMobie ()); Ptmt.SetString (3, goddess.getEmail ()); Ptmt.SetString (4, Goddess.getAddress ()); Ptmt.ExECUTE (); } / ** * Delete Goddess * * @Throws Sqlexception * / public void Deletegoddess (INGER ID) lève Sqlexception {Connection Conn = dbutil.getConnection (); String sql = "Supprimer de la déesse où id =?"; PréparéStatement ptmt = conn.preparestatement (SQL); ptmt.sentInt (1, id); Ptmt.ExECUTE (); }} Étape 6: La mise en œuvre de la couche de contrôle (la couche de contrôle est utilisée pour imiter la couche de contrôle et l'interface ici, et créer directement des données ici. Si ce sont les données de l'interface, vous pouvez transmettre les paramètres de réception par le biais de demandes. Vous pouvez changer et améliorer le code de la couche de contrôle selon la situation réelle. Voici un simple test pour vous, et le temps est serré, j'espère que vous pouvez le comprendre). Le code est le suivant:
package com.czgo.action; import java.sql.sqlexception; import java.util.list; import com.czgo.dao.goddessdao; import com.czgo.model.goddess; / ** * la couche de contrôle, construire directement des données ici, et les données de l'interface peuvent être reçues par des demandes. La même chose est vraie * * @author alanlee * * / public class goddessaction {/ ** * ajout goddess * * @param goddess * @throws exception * / public void add (déesse goddess) lève exception {goddessdao dao = new goddessdao (); goddess.setName ("Aoi Sora"); goddess.setmobie ("52220000"); goddess.setemail ("[email protected]"); Goddess.setAddress ("Pékin Red Light District"); dao.addgoddess (déesse); } / ** * requête la déesse unique * * @param id * @return * @throws sqlexception * / public goddess get (INGER ID) lève Sqlexception {goddessdao dao = new goddessdao (); return dao.querybyid (id); } / ** * Modifier la déesse * * @param Goddess * @throws exception * / public void edit (déesse déesse) lève l'exception {goddessdao dao = new goddessdao (); dao.updategoddess (déesse); } / ** * Delete Goddess * * @param id * @throws sqlexception * / public void del (INGER ID) lève Sqlexception {goddessdao dao = new goddessdao (); dao.deletegoddess (id); } / ** * requête toutes les déesses * * @return * @throws exception * / public list <Goddess> Query () lève l'exception {goddessdao dao = new Goddessdao (); return dao.query (); } / ** * Testez s'il réussit * * @param args * @throws sqlexception * / public static void main (String [] args) lève Sqlexception {goddessdao goddessdao = new GoddessDao (); List <Goddess> goddessList = goddessdao.query (); pour (déesse déesse: GoddessList) {System.out.println (goddess.getName () + "," + goddess.getMobie () + "," + goddess.getEmail ()); }}} Enfin, voyons si la méthode principale fonctionne avec succès:
De cette façon, une simple connexion JAVA JDBC à la base de données MySQL est terminée pour ajouter, supprimer, modifier et interroger. Vous pouvez essayer de faire une requête avancée basée sur la requête, c'est-à-dire une requête multi-condition pour consolider l'utilisation de JDBC.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.