Creo que todos están familiarizados con JDBC. Mientras seas una persona Java, debes aprender tal cosa cuando entras en contacto con J2EE. ¿Quién dice que los programas tienen que lidiar con bases de datos? JDBC es un conocimiento muy básico para tratar con bases de datos, y también está relativamente cerca del nivel subyacente. En el trabajo real, las personas usan marcos más maduros, como Hibernate y MyBatis.
Sin embargo, como JDBC subyacente de estos marcos maduros, también debemos dominarlo. Solo comprendiendo la adición, eliminación, modificación y consulta de JDBC, podemos comprender mejor cómo estos marcos maduros implementan la adición, eliminación, modificación y consulta cuando están interesados en estudiar el código fuente de Hibernate o mybatis en el futuro.
Volviendo al tema, echemos un vistazo a nuestro entorno de desarrollo:
Java Language, Eclipse Development Tools, MySQL Database, Navicat Database Visualization Tools.
Consulte la información usted mismo para la instalación, construcción y uso del entorno de desarrollo (muy simple), y no se explicará en detalle aquí.
El primer paso es crear una base de datos, usar la herramienta de visualización de la base de datos Navicat para crear una base de datos, crear una tabla en la base de datos, dar varios campos en la tabla (recuerde dar un campo de identificación, una clave primaria única, una secuencia de auto-incremento) y luego dar dos datos a voluntad para probar la función, como se muestra en la figura::::
El segundo paso es abrir la base de datos (espero que todos puedan tocar este ejemplo por sí mismo, lo que no llevará mucho tiempo. Esté familiarizado con cómo JDBC trata con la base de datos, por lo que lo mostraré en la figura). Como se muestra en la figura:
El tercer paso es transformar la clase dButil para facilitar la adquisición de conexiones de base de datos en la capa DAO. El código es el siguiente:
paquete com.czgo.db; import java.sql.connection; import java.sql.drivermanager; import java.sql.sqlexception; public class dButil {private static final String url = "jdbc: mysql: //127.0.0.1: 3306/imooc"; cadena final estática privada uname = "root"; Cadena final estática privada pwd = "root"; Conexión estática privada Conn = NULL; static {try {// 1. Cargue el controlador class.forname ("com.mysql.jdbc.driver"); // 2. Obtenga la conexión a la base de datos conn = drivermanager.getConnection (url, uname, pwd); } catch (ClassNotFoundException e) {E.PrintStackTrace (); } Catch (Sqlexception e) {E.PrintStackTrace (); }} Public Static Connection getConnection () {return Conn; }} Paso 4: Crear clases de entidad (como se muestra en la imagen de arriba, todos observan la asignación de paquetes. Usaremos la idea de MVC para diseñar este ejemplo. Hay ideas de diseño sobre MVC, por favor aprenda usted mismo, no diré mucho aquí) El código es el siguiente:
paquete com.czgo.model; import java.io.Serializable;/** * Entity Class: Goddess Class * * @author Alanlee * */public class Goddess implementa serializable {private Static Final Long SerialVersionUid = 1L; / *** clave primaria única*/ ID de entero privado; / *** Nombre*/ Nombre de cadena privada; / *** Número móvil*/ private String Mobie; / *** Correo electrónico*/ Correo electrónico de cadena privada; / *** Dirección de casa*/ Dirección de cadena privada; public Integer getId () {return id; } public void setid (ID de entero) {this.id = id; } public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public String getMobie () {return Mobie; } public void setMobie (string mobie) {this.mobie = mobie; } public String getEmail () {return email; } public void setEmail (correo electrónico de cadena) {this.email = correo electrónico; } public String getAddress () {Dirección de retorno; } public void setAddress (dirección de cadena) {this.address = dirección; }} Paso 5, Implementación de la capa DAO (aquí, ya que es un pequeño ejemplo, no hay interfaz de escritura para grandes proyectos en el trabajo real, lo que es conveniente para el mantenimiento y la expansión del programa). El código es el siguiente:
paquete com.czgo.dao; import java.sql.connection; import java.sql.preparedStatement; import java.sql.resultset; import java.sql.sqlexception; import java.util.arraylist; import java.util.list; import.czgo.db.dbutil; com.czgo.model.Goddess;/** * Data layer processing class* * @author AlanLee * */public class GoddessDao{ /** * Query all goddesses* * @return * @throws SQLException */ public List<Goddess> query() throws SQLException { List<Goddess> goddessList = new ArrayList<Goddess>(); // Obtener la conexión de la base de datos Connection conn = dButil.getConnection (); StringBuilder sb = new StringBuilder (); sb.append ("Seleccione ID, nombre, Mobie, correo electrónico, dirección de Diosa"); // Operar la base de datos a través de la conexión de la base de datos para realizar la adición, deleción, modificación y búsqueda de preparación Ptmt = Conn.PrepareStatement (SB.ToString ()); ResultSet rs = ptmt.executeQuery (); Diosa Diosa = nulo; while (rs.next ()) {Goddess = New Goddess (); Goddess.SetId (rs.getInt ("id")); Goddess.setName (rs.getString ("nombre")); Goddess.SetMobie (rs.getString ("Mobie")); Goddess.SetEmail (rs.getString ("correo electrónico")); Goddess.SetAddress (rs.getString ("dirección")); Goddess.SetAddress (rs.getString ("dirección")); GoddessList.Add (Diosa); } return GoddessList; } / ** * consulta una sola diosa * * @return * @throws sqlexception * / public diosa QueryByid (ID de entero) arroja sqlexception {Goddess g = null; Conexión conn = dButil.getConnection (); Cadena sql = "" + "Seleccionar * de imooc_goddess" + "donde id =?"; Preparado Ptmt = Conn.PrepareStatement (SQL); ptmt.setInt (1, id); ResultSet rs = ptmt.executeQuery (); while (rs.next ()) {g = new Goddess (); G.SetId (rs.getInt ("id")); G.SetName (rs.getString ("nombre")); G.SetMobie (rs.getString ("Mobie")); G.SetEmail (rs.getString ("correo electrónico")); G.SetAddress (rs.getString ("dirección")); } return g; } / ** * Agregar Goddess * * @throws sqlexception * / public void addGoddess (Goddess Goddess) lanza SQLException {// Obtener la conexión de la base de datos Connect Conn = dButil.getConnection (); Cadena sql = "insertar en diosa (nombre, mobie, correo electrónico, dirección) valores (?,?,?,?)"; Preparado 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 (); } / ** * Modifique la información de la Diosa * * @throws sqlexception * / public void updategoddess (Goddess Goddess) arroja sqlexception {Connection conn = dButil.getConnection (); String sql = "Update Goddess Set Name =?, Mobie =?, Correo electrónico =?, Dirección =? ¿Dónde id =?"; Preparado 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 (); } / ** * Eliminar Goddess * * @throws sqlexception * / public void Deletegoddess (ID de Integer) lanza SQLException {Connection conn = dButil.getConnection (); Cadena sql = "Eliminar de Goddess Where id =?"; Preparado Ptmt = Conn.PrepareStatement (SQL); ptmt.setInt (1, id); ptmt.execute (); }} Paso 6: La implementación de la capa de control (la capa de control se utiliza para imitar la capa de control y la interfaz aquí, y construir directamente los datos aquí. Si son los datos de la interfaz, puede pasar los parámetros receptores a través de las solicitudes. Puede cambiar y mejorar el código de la capa de control de acuerdo con la situación real. Aquí es una simple prueba para usted, y el tiempo es apretado, espero que pueda entenderlo). El código es el siguiente:
paquete com.czgo.action; import java.sql.sqlexception; import java.util.list; import com.czgo.dao.goddessdao; import com.czgo.model.goddess;/*** Capa de control, construir directamente los datos aquí, y los datos de la interfaz se pueden recibir a través de las solicitudes. Lo mismo es verdadero * * @author Alanlee * */public class Goddessaction {/** * agregó Diosa * * @param Goddess * @throws Exception */public void add (Goddess Goddess) arroja excepción {Goddessdao dao = New Goddessdao (); Goddess.SetName ("Aoi Sora"); Goddess.SetMobie ("52220000"); Goddess.SetEmail ("[email protected]"); Goddess.SetAddress ("Distrito de luz roja de Beijing"); dao.addgoddess (diosa); } / ** * consulta Diosa única * * @param id * @return * @throws sqlexception * / public doddess get (ID de entero) arroja sqlexception {goddessdao dao = new Goddessdao (); devolver dao.queryByid (id); } / ** * Modificar Diosa * * @param Goddess * @throws Exception * / public void edit (Goddess Goddess) arroja excepción {Goddessdao dao = new Goddessdao (); dao.updategoddess (diosa); } / ** * Eliminar Goddess * * @param id * @throws sqlexception * / public void del (ID de Integer) lanza SqLException {Goddessdao dao = new Goddessdao (); dao.deletegoddess (id); } / ** * consulta todas las diosas * * @return * @throws excepción * / lista pública <doddess> query () lanza la excepción {Goddessdao dao = new Goddessdao (); return dao.query (); } / ** * prueba si es exitoso * * @param args * @throws sqlexception * / public static void main (string [] args) lanza sqlexception {goddessdao goddessdao = new Goddessdao (); Lista <Doddess> GoddessList = Goddessdao.query (); para (Diosa Diosa: GoddessList) {System.out.println (Goddess.getName () + "," + Goddess.getMobie () + "," + Goddess.getemail ()); }}} Finalmente, veamos si el método principal funciona correctamente:
De esta manera, se completa una simple conexión Java JDBC a la base de datos MySQL para agregar, eliminar, modificar y consultar. Puede intentar hacer una consulta avanzada basada en la consulta, es decir, consulta de múltiples condiciones para consolidar el uso de JDBC.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.