Java JDBC Connection and Use
JDBC
Importar drivers
// jar é um conjunto de arquivos de classe embalado, que pode ser referenciado a outros projetos
// Importar frascos externos no caminho de construção
Conecte -se ao JDBC
1. Carregue o driver
Class.From ("com.mysql.jdbc.driver");Criar uma conexão
// O pacote guia usa java.sql.*; String jdbc = "jdbc: mysql: // localhost: 3306/aluno? User = root & senha = & caracterEncoding = utf-8"; // aluno é o nome da tabela conexão conn = driverManager.getConnection (jdbc);
2. Observe que depois que o banco de dados for aberto, lembre -se de fechá -lo.
Conn.Close ();
1. Execute as instruções SQL (crie tabelas, insira, exclua, atualize)
Usando o statemant
Statemant st = conn.createstatemant (); int linha = st.executeUpdate (instrução SQL); // não pode fazer operações de consulta.
Usando prepararestamento
Pode ser usado? Espaços reservados para substituir os parâmetros que você precisa passar
String sql = "inserir em" + tableName + "(nome, sujeito, pontuação) valores (?,?)"; PreparEstatement pt = Conn.Preparestatement (SQL); // Defina o valor para cada espaço reservado e o subscrito começa em 1 Pt.SetString (1, Score.getName ()); pt.SetString (2.Score.getSubject ()); pt.setDouble (3, score.getScore ()); // Use o método sem parâmetros pt.executeUpdate ();
1. Operação de consulta
Lista estática <Crive> QueryScore (conexão pconn, pontuação pScore) lança sqlexception {ArrayList <Crive> mlist = new ArrayList <> (); String sql = "selecione * de" + tableName + "onde nome =?"; Preparado PS = pconn.Preparestatement (SQL); ps.SetString (1, pscore.getName ()); ResultSet rs = ps.executeQuery (); while (rs.Next ()) {// aqui você pode obter todos os resultados através de RS String sujeito = rs.getString ("sujeito"); int id = rs.getInt ("id"); pontuação dupla = rs.getDouble ("pontuação"); mlist.add (nova pontuação (id, pscore.getName (), sujeito, pontuação)); } retornar mlist; }Aqui está um pequeno programa
// Crie uma classe de conexão com o banco de dados classe public dao {// pergunte ao link do banco de dados endereço estático string jdbc = "jdbc: mysql: // localhost: 3306/student? User = root & senha = & caracterenCoding = utf-8"; // Abra o link Public Static Connection () {// Etapa para usar o JDBC // 1. Carregue o driver JDBC, tente {// Nome completo da classe + classe Nome Class.ForName ("com.mysql.jdbc.driver"); // 2. Conecte -se à conexão do banco de dados Conn = DriverManager.getConnection (JDBC); retornar Conn; } catch (Exceção e) {System.out.println ("Carga do driver falhou"); retornar nulo; }}} // Classe de pontuação Public class Score {Nome da String; ID da string; Sujeito da string; pontuação dupla; pontuação pública (nome da string, sujeito da string, pontuação dupla) {super (); this.name = nome; this.subject = sujeito; this.score = score; } @Override public string tostring () {return "score [name =" + name + ", id =" + id + ", sujeito =" + sujeito + ", score =" + score + "]"; } pontuação pública (nome da string, ID da string, sujeito da string, pontuação dupla) {super (); this.name = nome; this.id = id; this.subject = sujeito; this.score = score; } public string getName () {return name; } public void setName (nome da string) {this.name = name; } public string getId () {return id; } public void setId (string id) {this.id = id; } public string getSBject () {retornar sujeito; } public void Setsubject (String sujeito) {this.subject = sujeito; } public Double getScore () {Return Score; } public void setScore (pontuação dupla) {this.score = score; }} // Classe de implementação Public class Test {public static string tablename = "score"; public static void main (string [] args) {try {conexão conn = dao.connection (); if (conn! = null) {System.out.println ("Linked"); // createTable (conn); // Insira um registro // pontuação = new Score ("Li si", "Android", 98); // System.out.println (addScore2 (Conn, Score)); // DeLeTescore (Conn, Score); // UpdateCore (Conn, Score); List <Conth> List = QueryScoreByName (Conn, "Wang Wu"); // QueryallScore (Conn); para (pontuação: list) {System.out.println (Score); } Conn.Close (); } else {System.out.println ("link falhou"); }} catch (sqLexception e) {e.printStackTrace (); }} // Crie uma tabela pública estática booleana createTable (conexão conn) {// comece a executar a instrução SQL String sql = "Criar tabela" + tableName + "(ID inteira Primária Chave Primária Auto_increment, Nome Varchar (3) Não NULL, Assunto Varchar (20) NULL, Score Double)"; // Para executar uma instrução, uma classe executada precisa ser executada, tente {declaração st = conn.createstatement (); int resultado = st.executeUpdate (SQL); System.out.println (resultado); if (resultado! = -1) retorne true; } catch (sqLexception e) {e.printStackTrace (); } retornar false; } // Adicione um registro public estático booleano addScore (conexão conn, pontuação de pontuação) lança sqlexception {string sql = "inserir em" + tableName + "(nome, sujeito, pontuação) ('" + score.getname () + "'," " + score.getsubject () +" ', "score.get.get.get.get () +") "" + score.get.getject () + "'," " + score.get.get.get.get () +" "" "" " System.out.println (SQL); Declaração st = conn.createstatement (); int linha = st.executeUpdate (SQL); if (linha> 0) retornar TRUE; retornar falso; } // Adicione um registro 2 public estático booleano addScore2 (conexão conn, pontuação) lança sqlexception {// espaço reservado? Para substituir o parâmetro que precisa ser definido string sql = "inserir em" + tablename + "(nome, sujeito, pontuação) valores (?,? ,?)"; Preparado PS = Conn.Preparestatement (SQL); // deve ser dado? O valor representado pelo ss.SetString (1, score.getName ()); ps.SetString (2, Score.getSubject ()); ps.SetDouble (3, Score.getScore ()); // Ligue para o método sem parâmetros int row = ps.executeUpdate (); if (linha> 0) retornar TRUE; retornar falso; } public static boolean DeLeTescore (Connection Conn, Score Score) lança SqLexception {String sql = "Exclua de" + tableName + "onde nome =? e sujeito =?"; // crie prepararestatement preparado estatamento ps = conn.preparestatement (sql); ps.SetString (1, score.getName ()); ps.SetString (2, Score.getSubject ()); // ps.SetDouble (3, Score.getScore ()); // execute int linha = ps.executeUpdate (); System.out.println (linha); if (linha> 0) retornar TRUE; retornar falso; } public static boolean updateCore (conexão Conn, pontuação) lança sqlexception {// modificar a pontuação para seus sujeitos string sql = "update" + tableName + "set score =? where name =? e sujeito =?"; Preparado PS = Conn.Preparestatement (SQL); ps.SetDouble (1, Score.getScore ()); ps.SetString (2, Score.getName ()); ps.SetString (3, Score.getSubject ()); int linha = ps.executeUpdate (); System.out.println (linha); if (linha> 0) retornar TRUE; retornar falso; } Lista estática pública <Core> QueryallScore (Connection Conn) lança SQLEXCIPCECECIONAL {String sql = "Selecione * de" + tableName; // Iniciar a declaração de consulta st = conn.createstatement (); ResultSet RS = St.ExecuteQuery (SQL); List <Contion> List = new ArrayList <Corrente> (); while (rs.Next ()) {// aqui você pode obter todos os resultados por meio de rs string id = rs.getString ("id"); Nome da string = rs.getString ("nome"); String sujeito = rs.getString ("sujeito"); pontuação dupla = rs.getDouble ("pontuação"); list.add (nova pontuação (nome, id, sujeito, pontuação)); } // Lista de retorno final; } Lista estática pública <Corrente> QueryScoreByName (conexão Conn, Nome da String) lança SQLEXCECCIONE {String sql = "Selecione * de" + tableName + "onde nome =?"; Preparado estatamento pt = conn.preparestatement (sql); pt.SetString (1, nome); ResultSet rs = pt.executeQuery (); List <Conth> List = new ArrayList <> (); while (rs.Next ()) {String sujeito = rs.getString ("sujeito"); String id = rs.getString ("id"); pontuação dupla = rs.getDouble ("pontuação"); list.add (nova pontuação (nome, id, sujeito, pontuação)); } Lista de retorno; }