Java JDBC Conexión y uso
JDBC
Importación de conductores
// jar es un conjunto de archivos de clase empaquetado, que se puede hacer referencia a otros proyectos
// Importar frascos externos en la ruta de construcción
Conectarse a JDBC
1. Cargue el controlador
Class.from ("com.mysql.jdbc.driver");Crear una conexión
// El paquete guía usa java.sql.*; String jdbc = "jdbc: mysql: // localhost: 3306/student? User = root & Password = & caracterSencoding = utf-8"; // Student es la conexión de nombre de la tabla Conn = Drivermanager.getConnection (JDBC);
2. Tenga en cuenta que después de abrir la base de datos, recuerde cerrarla.
conn.close ();
1. Ejecutar declaraciones SQL (crear tablas, insertar, eliminar, actualizar)
Usando Statemant
Statemant st = conn.createStateMant (); int fila = St.ExecuteUpdate (instrucción SQL); // No se puede hacer operaciones de consulta.
Usando PrepareStatement
¿Se puede usar? Marcadores de posición para reemplazar los parámetros que necesita pasar
Cadena sql = "insertar en" + tableName + "(nombre, sujeto, puntaje) valores (?,?,?)"; Prepararestement pt = conn.preparestatement (sql); // Establezca el valor para cada marcador de posición, y el subíndice comienza desde 1 pt.setstring (1, scaty.getName ()); pt.setString (2.score.getSubject ()); pt.setDouble (3, scatter.getScore ()); // use el método sin parámetros pt.executeupdate ();
1. Operación de consulta
Lista estática <Sciter> QueryScore (Connection PConn, Score PScore) lanza SQLException {ArrayList <Score> mList = new ArrayList <> (); Cadena sql = "Seleccionar * de" + TableName + "Where Name =?"; Preparado PS = PConn.PrepareStatement (SQL); Ps.SetString (1, pScore.getName ()); ResultSet rs = Ps.ExecuteQuery (); while (rs.next ()) {// Aquí puede obtener todos los resultados a través de rs string stem = rs.getString ("sujeto"); int id = rs.getInt ("id"); doble puntaje = rs.getDouble ("puntaje"); mlist.add (nuevo puntaje (id, pscore.getName (), sujeto, puntaje)); } return mlist; }Aquí hay un pequeño programa
// Crear una clase de conexión de base de datos clase pública DAO {// Pregunte en la dirección de enlace de la base de datos String estático jdbc = "jdbc: mysql: // localhost: 3306/student? User = root & contraseña = & características = utf-8"; // Abra el enlace Public Static Connection Connection () {// Pasos para usar JDBC // 1. Cargue el controlador JDBC Pruebe {// Nombre completo de la clase + nombre de clase Class.forname ("com.mysql.jdbc.driver"); // 2. Conéctese a la conexión de la base de datos Conn = Drivermanager.getConnection (JDBC); devolver Conn; } catch (Exception e) {System.out.println ("fallado en la carga del controlador"); regresar nulo; }}} // puntaje de clases de clase public class score {name de cadena; ID de cadena; Sujeto de cadena; doble puntaje; puntaje público (nombre de cadena, sujeto de cadena, doble puntaje) {super (); this.name = name; this.subject = sujeto; this.score = stork; } @Override public string toString () {return "score [name =" + name + ", id =" + id + ", sujeto =" + sujeto + ", puntaje =" + puntaje + "]"; } puntaje público (nombre de cadena, identificación de cadena, sujeto de cadena, doble puntaje) {super (); this.name = name; this.id = id; this.subject = sujeto; this.score = stork; } public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public String getId () {return id; } public void setid (ID de cadena) {this.id = id; } public String getSubject () {return Sujem; } public void setSubject (string stem) {this.subject = saters; } public Double GetScore () {puntaje de retorno; } public void setScore (doble puntaje) {this.score = stork; }} // Test de clase pública de clase de implementación {public static string tableName = "score"; public static void main (string [] args) {try {Connection conn = dao.connection (); if (conn! = null) {system.out.println ("vinculado"); // CreateTable (Conn); // insertar un registro // puntaje de puntaje = nuevo puntaje ("Li Si", "Android", 98); // system.out.println (addscore2 (conn, score)); // DeleteScore (Conn, Score); // UpdateScore (Conn, Score); List <Sciter> list = QueryScorebyName (Conn, "Wang Wu"); // QueryallScore (Conn); for (puntaje de puntaje: list) {system.out.println (score); } conn.close (); } else {System.out.println ("Link falló"); }} Catch (SQLException e) {E.PrintStackTrace (); }} // Cree una tabla public static static boolean createTable (Connection Conn) {// Comience a ejecutar la cadena de instrucción SQL SQL = "Crear tabla" + TableName + "(ID Integer Primary Key Auto_Increment, Name varChar (3) no nulo, someter varchar (20) no null, doble)"; // Para ejecutar una declaración, una clase ejecutada debe ser ejecutada de la declaración, intente {Declaración st = conn.createStatement (); int resultado = St.ExecuteUpdate (SQL); System.out.println (resultado); if (resultado! = -1) return true; } Catch (Sqlexception e) {E.PrintStackTrace (); } return false; } // Agregue un registro de addscore de booleano estático público (conexión Connect, puntaje) lanza SQLException {String sql = "Insert en" + TableName + "(nombre, sujeto, puntaje) Valores ('" + scAORT.GETNAME () + "', '" + scAORT.GETSubject () + "'," + scAORT.GetScore () + ")"; System.out.println (SQL); Declaración st = conn.createStatement (); int fila = St.ExecuteUpdate (SQL); if (fila> 0) return verdadero; devolver falso; } // Agregar un registro 2 public static boolean addscore2 (conexión conn, puntaje de puntaje) arroja SQLException {// de poseedor de posición? Para reemplazar el parámetro que debe establecerse String sql = "insertar en" + tableName + "(nombre, sujeto, puntaje) valores (?,?,?)"; Preparado PS = Conn.PrepareStatement (SQL); // debe ser dado? El valor representado por Ps.SetString (1, scatter.getName ()); Ps.SetString (2, scATIG.GetSubject ()); Ps.SetDouble (3, scATIG.GETSCORE ()); // Llamar al método sin parámetros int fila = ps.ExecuteUpdate (); if (fila> 0) return verdadero; devolver falso; } public static Boolean DeleteScore (Connection Conn, puntaje de puntaje) arroja SQLException {String sql = "Eliminar de" + TableName + "Where Name =? Y SUTUMT =?"; // Crear preparación preparada PS = Conn.PrepareStatement (SQL); Ps.SetString (1, scATIG.GetName ()); Ps.SetString (2, scATIG.GetSubject ()); // ps.setDouble (3, scatter.getScore ()); // ejecutar int fila = ps.ExecuteUpdate (); System.out.println (fila); if (fila> 0) return verdadero; devolver falso; } public static boolean UpdateScore (Connection Conn, puntaje de puntaje) arroja SQLException {// Modifique la puntuación para su cadena de sujetos sql = "update" + tableName + "set score =? where name =? y stem =?"; Preparado PS = Conn.PrepareStatement (SQL); Ps.SetDouble (1, scATIG.GETSCORE ()); Ps.SetString (2, scETOR.GETNAME ()); Ps.SetString (3, scATIG.GetSubject ()); int row = Ps.ExecuteUpdate (); System.out.println (fila); if (fila> 0) return verdadero; devolver falso; } public static list <Sciter> QUERYALLSCORE (Connection Conn) lanza SQLException {String sql = "SELECT * de" + TableName; // Declaración de consulta de inicio st = conn.createStatement (); ResultSet rs = St.ExecuteQuery (SQL); List <Sciter> list = new ArrayList <Sciter> (); while (rs.next ()) {// Aquí puede obtener todos los resultados a través de RS String id = rs.getString ("id"); Name de cadena = rs.getString ("nombre"); String Sujeto = Rs.getString ("Sujeto"); doble puntaje = rs.getDouble ("puntaje"); list.add (nuevo puntaje (nombre, identificación, sujeto, puntaje)); } // finalizar la lista de retorno; } Public static List <Sciter> QueryScorebyName (Connection Conn, Nombre de cadena) lanza SQLException {String sql = "Seleccionar * de" + TableName + "Where Name =?"; Preparado Pt = Conn.PrepareStatement (SQL); Pt.SetString (1, nombre); ResultSet rs = pt.executeQuery (); List <Sciter> list = new ArrayList <> (); while (rs.next ()) {string stem = rs.getString ("sujeto"); Cadena id = rs.getString ("id"); doble puntaje = rs.getDouble ("puntaje"); list.add (nuevo puntaje (nombre, identificación, sujeto, puntaje)); } Lista de retorno; }