Maison  >  Article  >  base de données  >  [MySQL 05] Utiliser Java pour faire fonctionner MySQL (créer une base de données)

[MySQL 05] Utiliser Java pour faire fonctionner MySQL (créer une base de données)

黄舟
黄舟original
2017-02-04 11:52:151278parcourir

Base de données de connexion JDBC :

1. Chargez le pilote JDBC
2. Fournissez l'URL de la connexion JDBC
3 Créez une connexion à la base de données
4. >5 , exécuter les instructions SQL
6. Traiter les résultats
7. Fermer l'objet JDBC

1. Charger le pilote JDBC :

Avant de vous connecter à la base de données, vous devez d'abord chargez la base de données à laquelle vous souhaitez vous connecter. La base de données est pilotée vers la JVM (Java Virtual Machine). Après un chargement réussi via la méthode statique


 //加载数据库驱动总共有三种方式:
 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() ;   
 }
de la classe java.lang.Class, une instance de la classe Driver sera enregistrée dans la classe DriverManager.

2. Fournissez l'URL de la connexion JDBC

  • L'URL de connexion définit le protocole, le sous-protocole et l'identification de la source de données lors de la connexion à la base de données.

  • Méthode d'écriture d'URL JDBC MYSQL : jdbc:mysql://nom d'hôte : numéro de port/nom de la base de données ? user = username & password = password & useUnicode = true & CharacterEncoding = UTF8

 String url = "jdbc:mysql://localhost:3306/samp_db?" + "user=root&password=mysql&useUnicode=true&characterEncoding=UTF8";
3. Créez une connexion à la base de données

• Pour vous connecter à la base de données, vous Vous devez poser des requêtes Java .sql.DriverManager et obtenir un objet Connection, qui représente une connexion à la base de données.

•Utilisez la méthode getConnectin(String url, String username, String password) de DriverManager pour transmettre le numéro spécifié pour vous connecter

  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() ;   
  }
Créer une déclaration

• Pour exécuter une instruction SQL, vous devez obtenir une instance java.sql.Statement. Les instances d'instruction sont divisées en trois types suivants :

1. Exécuter des instructions SQL statiques. Généralement implémenté via des instances de Statement.
2. Exécutez des instructions SQL dynamiques. Généralement implémenté via une instance PreparedStatement.
3. Exécutez la procédure stockée de la base de données. Généralement implémenté via une instance CallableStatement.

 Statement stmt = con.createStatement() ;  

    PreparedStatement pstmt = con.prepareStatement(sql) ; 

    CallableStatement cstmt =   con.prepareCall("{CALL demoSp(? , ?)}") ;
5. Exécuter des instructions SQL

L'interface Statement fournit trois méthodes d'exécution des instructions SQL : exécuterQuery, exécuterUpdate et exécuter

1. : exécute l'instruction SQL qui interroge la base de données et renvoie un objet de jeu de résultats (ResultSet).
2. int executeUpdate(String sqlString) : utilisé pour exécuter des instructions INSERT, UPDATE ou DELETE et des instructions SQL DDL, telles que : CREATE TABLE et DROP TABLE, etc.
3. plusieurs instructions de retour avec des jeux de résultats, plusieurs comptes de mises à jour ou une combinaison des deux.

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

Deux situations :

1. L'exécution de la mise à jour renvoie le nombre d'enregistrements concernés par cette opération.
2. Le résultat renvoyé par l'exécution de la requête est un objet ResultSet.
• ResultSet contient toutes les lignes qui correspondent aux conditions de l'instruction SQL et donne accès aux données de ces lignes via un ensemble de méthodes get.
• Utilisez la méthode d'accès de l'objet ResultSet pour obtenir des données :

  while(rs.next()){   
         String name = rs.getString("name") ;   
         String pass = rs.getString(1) ; // 此方法比较高效   
  }   
    (列是从左到右编号的,并且从列1开始)
7. Fermez l'objet JDBC

Une fois l'opération terminée, tous les objets JDBC utilisés doivent être fermés. . Pour libérer les ressources JDBC, l'ordre de fermeture est opposé à l'ordre de déclaration :

1. Fermez le jeu d'enregistrements
2. Fermez l'instruction
3. Fermez l'objet de connexion

Programme complet :
 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();
        }

    }

}


Ce qui précède est le contenu de [MySQL 05] utilisant Java pour faire fonctionner MySQL (créer une base de données). Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php .cn) !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn