Heim  >  Artikel  >  Datenbank  >  [MySQL 05] Verwenden Sie Java, um MySQL zu betreiben (Datenbank erstellen)

[MySQL 05] Verwenden Sie Java, um MySQL zu betreiben (Datenbank erstellen)

黄舟
黄舟Original
2017-02-04 11:52:151278Durchsuche

JDBC-Verbindungsdatenbank:

1. Laden Sie den JDBC-Treiber
2. Erstellen Sie eine Datenbankverbindung
5 , führen Sie die SQL-Anweisung aus
6. Verarbeiten Sie die Ergebnisse
7. Schließen Sie das JDBC-Objekt

1. Laden Sie den JDBC-Treiber:

Bevor Sie eine Verbindung zur Datenbank herstellen, müssen Sie Sie müssen zunächst die Datenbank laden, zu der Sie eine Verbindung herstellen möchten. Nach erfolgreichem Laden wird die Datenbank über die statische Methode


der java.lang.Class angesteuert -Klasse wird eine Instanz der Driver-Klasse in der DriverManager-Klasse registriert.
 //加载数据库驱动总共有三种方式:
 try{   
    //①  
    Class.forName("com.mysql.jdbc.Driver") ;   
    //②    com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();
    //③
    new com.mysql.jdbc.driver();

 }catch(ClassNotFoundException e){   
    System.out.println("找不到驱动程序类 ,加载驱动失败!");   
    e.printStackTrace() ;   
 }

2. Geben Sie die URL für die JDBC-Verbindung an

    Die Verbindungs-URL definiert das Protokoll, das Unterprotokoll und die Datenquellenidentifikation beim Herstellen einer Verbindung mit der Datenbank.
  • MYSQL JDBC URL-Schreibmethode: jdbc:mysql://Hostname: Portnummer/Datenbankname? user = Benutzername & Passwort = Passwort & useUnicode = true & CharacterEncoding = UTF8
3. Erstellen Sie eine Datenbankverbindung
 String url = "jdbc:mysql://localhost:3306/samp_db?" + "user=root&password=mysql&useUnicode=true&characterEncoding=UTF8";

• Um eine Verbindung zur Datenbank herzustellen, müssen Sie Sie müssen Java fragen. SQL.DriverManager fordert ein Verbindungsobjekt an und erhält es, das eine Datenbankverbindung darstellt.

•Verwenden Sie die getConnectin-Methode (String-URL, String-Benutzername, String-Passwort) von DriverManager, um die angegebene Nummer zum Herstellen einer Verbindung zu übergeben



4. Erstellen Sie eine Anweisung
  String url = "jdbc:mysql://localhost:3306/test" ;    
     String username = "root" ;   
     String password = "root" ;   
  try{   

     Connection con = DriverManager.getConnection(url , username , password ) ;  

  }catch(SQLException se){   
     System.out.println("数据库连接失败!");   
     se.printStackTrace() ;   
  }

• Um eine SQL-Anweisung auszuführen, müssen Sie eine java.sql.Statement-Instanz erhalten. Anweisungsinstanzen werden in die folgenden drei Typen unterteilt:

1. Führen Sie statische SQL-Anweisungen aus. Wird normalerweise über Statement-Instanzen implementiert.

2. Führen Sie dynamische SQL-Anweisungen aus. Wird normalerweise über eine PreparedStatement-Instanz implementiert.
3. Führen Sie die gespeicherte Datenbankprozedur aus. Wird normalerweise über eine CallableStatement-Instanz implementiert.


5. SQL-Anweisungen ausführen
 Statement stmt = con.createStatement() ;  

    PreparedStatement pstmt = con.prepareStatement(sql) ; 

    CallableStatement cstmt =   con.prepareCall("{CALL demoSp(? , ?)}") ;

Die Statement-Schnittstelle bietet drei Methoden zum Ausführen von SQL-Anweisungen:executeQuery,executeUpdateundexecute

1. : Führen Sie die SQL-Anweisung aus, die die Datenbank abfragt und ein Ergebnismengenobjekt (ResultSet) zurückgibt.

2. intexecutateUpdate(String sqlString): wird zum Ausführen von INSERT-, UPDATE- oder DELETE-Anweisungen und SQL-DDL-Anweisungen verwendet, wie zum Beispiel: CREATE TABLE und DROP TABLE usw.
3.execute(sqlString): wird zum Ausführen verwendet multiple return-Anweisungen mit Ergebnismengen, mehreren Aktualisierungszählungen oder einer Kombination aus beidem.

6. Verarbeitungsergebnisse
  ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;   
   int rows = stmt.executeUpdate("INSERT INTO ...") ;   
   boolean flag = stmt.execute(String sql) ;

Zwei Situationen:

1. Die Ausführung der Aktualisierung gibt die Anzahl der von diesem Vorgang betroffenen Datensätze zurück.

2. Das durch die Ausführung der Abfrage zurückgegebene Ergebnis ist ein ResultSet-Objekt.
• ResultSet enthält alle Zeilen, die den Bedingungen in der SQL-Anweisung entsprechen, und bietet über eine Reihe von Get-Methoden Zugriff auf die Daten in diesen Zeilen.
• Verwenden Sie die Zugriffsmethode des ResultSet-Objekts, um Daten abzurufen:

7. Schließen Sie die JDBC-Objekte
  while(rs.next()){   
         String name = rs.getString("name") ;   
         String pass = rs.getString(1) ; // 此方法比较高效   
  }   
    (列是从左到右编号的,并且从列1开始)

Nach Abschluss des Vorgangs müssen alle verwendeten JDBC-Objekte geschlossen werden . Um JDBC-Ressourcen freizugeben, ist die Schließreihenfolge entgegengesetzt zur Deklarationsreihenfolge:

1. Schließen Sie den Datensatz

2. Schließen Sie die Anweisung
3. Schließen Sie das Verbindungsobjekt


Vollständiges Programm:
 if(rs != null){   // 关闭记录集   
    try{   
       rs.close() ;   
    }catch(SQLException e){   
       e.printStackTrace() ;   
    }   
 }   if(stmt != null){   // 关闭声明   
    try{   
       stmt.close() ;   
    }catch(SQLException e){   
       e.printStackTrace() ;   
    }   
 }   

 if(conn != null){  // 关闭连接对象   
    try{   
       conn.close() ;   
    }catch(SQLException e){   
       e.printStackTrace() ;   
    }   
 }

package org.Mysql;
import java.sql.Connection;import java.sql.DriverManager;
import java.sql.ResultSet;import java.sql.SQLException;
import java.sql.Statement;public class mysqlDemo {

    public static void main(String[] args) throws Exception {
        //使用connection进行数据库的连接,创建一个connection对象,用于数据库的连接
        Connection conn = null;
        String sql;
        // MySQL的JDBC URL编写方式:jdbc:mysql://主机名称(localhost):连接端口(3306)/数据库的名称?参数=值
        // 指定数据库的用户名和密码
        // 避免中文乱码要指定useUnicode和characterEncoding
        // 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定
        // 下面语句之前就要先创建samp_db数据库
        String url = "jdbc:mysql://localhost:3306/samp_db?"
                + "user=root&password=mysql&useUnicode=true&characterEncoding=UTF8";

        try {
            // 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,
            // 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以
            // 动态加载mysql驱动
            Class.forName("com.mysql.jdbc.Driver");
            // or:
            // com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();
            // or:
            // new com.mysql.jdbc.Driver();

            System.out.println("成功加载MySQL驱动程序");
            // 一个Connection代表一个数据库连接
            conn = DriverManager.getConnection(url);

            // Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
            Statement stmt = conn.createStatement();
            sql = "create table student(NO char(20),name varchar(20),primary key(NO))";
            int result = stmt.executeUpdate(sql);// executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功
            if (result != -1) {
                System.out.println("创建数据表成功");
                sql = "insert into student(NO,name) values('2012001','陶伟基')";
                result = stmt.executeUpdate(sql);
                sql = "insert into student(NO,name) values('2012002','周小俊')";
                result = stmt.executeUpdate(sql);
                sql = "select * from student";
                ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值
                System.out.println("学号\t姓名");
                while (rs.next()) {
                    System.out
                            .println(rs.getString(1) + "\t" + rs.getString(2));// 入如果返回的是int类型可以用getInt()
                }
            }
        } catch (SQLException e) {
            System.out.println("MySQL操作错误");
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            conn.close();
        }

    }

}


Das Obige ist der Inhalt von [MySQL 05] unter Verwendung von Java zum Betreiben von MySQL (Datenbank erstellen). Bitte beachten Sie die chinesische PHP-Website (www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn