国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison base de données tutoriel mysql [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)

Feb 04, 2017 am 11:52 AM

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


 //加載數(shù)據(jù)庫驅(qū)動總共有三種方式:
 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("找不到驅(qū)動程序類 ,加載驅(qū)動失??!");   
    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("數(shù)據(jù)庫連接失??!");   
     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進行數(shù)據(jù)庫的連接,創(chuàng)建一個connection對象,用于數(shù)據(jù)庫的連接
        Connection conn = null;
        String sql;
        // MySQL的JDBC URL編寫方式:jdbc:mysql://主機名稱(localhost):連接端口(3306)/數(shù)據(jù)庫的名稱?參數(shù)=值
        // 指定數(shù)據(jù)庫的用戶名和密碼
        // 避免中文亂碼要指定useUnicode和characterEncoding
        // 執(zhí)行數(shù)據(jù)庫操作之前要在數(shù)據(jù)庫管理系統(tǒng)上創(chuàng)建一個數(shù)據(jù)庫,名字自己定
        // 下面語句之前就要先創(chuàng)建samp_db數(shù)據(jù)庫
        String url = "jdbc:mysql://localhost:3306/samp_db?"
                + "user=root&password=mysql&useUnicode=true&characterEncoding=UTF8";

        try {
            // 之所以要使用下面這條語句,是因為要使用MySQL的驅(qū)動,所以我們要把它驅(qū)動起來,
            // 可以通過Class.forName把它加載進去,也可以通過初始化來驅(qū)動起來,下面三種形式都可以
            // 動態(tài)加載mysql驅(qū)動
            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驅(qū)動程序");
            // 一個Connection代表一個數(shù)據(jù)庫連接
            conn = DriverManager.getConnection(url);

            // Statement里面帶有很多方法,比如executeUpdate可以實現(xiàn)插入,更新和刪除等
            Statement stmt = conn.createStatement();
            sql = "create table student(NO char(20),name varchar(20),primary key(NO))";
            int result = stmt.executeUpdate(sql);// executeUpdate語句會返回一個受影響的行數(shù),如果返回-1就沒有成功
            if (result != -1) {
                System.out.println("創(chuàng)建數(shù)據(jù)表成功");
                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 de ce site Web
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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276
Comparaison des frameworks Java: Spring Boot vs Quarkus vs MicronAut Comparaison des frameworks Java: Spring Boot vs Quarkus vs MicronAut Aug 04, 2025 pm 12:48 PM

Pré-formancetartuptimemoryusage, quarkusandmicronautleadduetocompile-timeprocessingandgraalvsupport, withquarkusofperforming lightbetterine scénarios.

Comparaison des outils de construction Java: Maven vs Gradle Comparaison des outils de construction Java: Maven vs Gradle Aug 03, 2025 pm 01:36 PM

GradleisthebetterChoiceFormostNewProjectsDuetOtsSuperiorflexibility, Performance et ModerNtoolingSupport.1.gradle’sgroovy / kotlindslismoreConcis

Les touches de volume sur le clavier ne fonctionnent pas Les touches de volume sur le clavier ne fonctionnent pas Aug 05, 2025 pm 01:54 PM

Tout d'abord, CheckifThefnKeySettingisInterferingyTryingBothThevolumeKeyAlonEndfn volumeKey, thentogglefnlockwithfn espifavailable.2.enterbios / uefidUringbootAnableFunctionKeysordiSablehotKeyModetoenSureVolumeSarereCognined.3.updateorreinstallAdriodriving

Comment comparer deux cha?nes à Java? Comment comparer deux cha?nes à Java? Aug 04, 2025 am 11:03 AM

Utilisez la méthode .equals () pour comparer le contenu de la cha?ne, car == ne compare les références d'objet plut?t que le contenu; 1. Utilisez .equals () pour comparer également les valeurs de cha?ne; 2. Utiliser .EqualSignoreCase () pour comparer l'ignorance du cas; 3. Utilisez .Compareto () pour comparer les cha?nes dans l'ordre du dictionnaire, renvoyant 0, nombres négatifs ou positifs; 4. Utiliser .CompareToIgnoreCase () pour comparer le cas Ignorer; 5. Utilisez des objets.equals () ou de la méthode d'appel s?r pour traiter les cha?nes nulles pour éviter les exceptions de pointeur nul. En bref, vous devez éviter d'utiliser == pour les comparaisons de contenu de cha?ne, sauf s'il est explicitement nécessaire de vérifier si l'objet est en phase.

Propriétés calculées vs méthodes en Vue Propriétés calculées vs méthodes en Vue Aug 05, 2025 am 05:21 AM

Calculé a un cache et les accès multiples ne sont pas recalculés lorsque la dépendance reste inchangée, tandis que les méthodes sont exécutées à chaque fois qu'elles sont appelées; 2.COMPUT est adapté aux calculs basés sur des données réactives. Les méthodes conviennent aux scénarios où les paramètres sont requis ou les appels fréquents, mais le résultat ne dépend pas de données réactives; 3.Coupation prend en charge les getters et les setters, ce qui peut réaliser la synchronisation bidirectionnelle des données, mais les méthodes ne sont pas prises en charge; 4. Résumé: Utilisez d'abord calculé pour améliorer les performances et utilisez des méthodes lors de la réussite des paramètres, de l'exécution d'opérations ou d'éviter le cache, en suivant le principe de "Si vous pouvez utiliser calculé, vous n'utilisez pas de méthodes".

Python Logging to File Exemple Python Logging to File Exemple Aug 04, 2025 pm 01:37 PM

Le module de journalisation de Python peut écrire des journaux dans les fichiers via FileHandler. Tout d'abord, appelez le processeur et format de fichier de configuration BasicConfig, tels que la définition du niveau sur les informations, en utilisant FileHandler pour écrire app.log; Deuxièmement, ajoutez StreamHandler pour atteindre la sortie à la console en même temps; Les scénarios avancés peuvent utiliser TimeRotingFileHandler pour diviser les journaux par le temps, par exemple, définir quand = 'Midnight' pour générer de nouveaux fichiers chaque jour et conserver 7 jours de sauvegarde, et assurez-vous que le répertoire de journal existe; Il est recommandé d'utiliser GetLogger (__ Name__) pour créer des journalistes nommés et produire

Comment rejoindre un éventail de cha?nes à Java? Comment rejoindre un éventail de cha?nes à Java? Aug 04, 2025 pm 12:55 PM

L'utilisation de String.join () (Java8) est la méthode recommandée la plus simple pour connecter les tableaux de cha?ne, spécifiez simplement le séparateur directement; 2. Pour les anciennes versions de Java ou lorsque plus de contr?le est nécessaire, vous pouvez utiliser StringBuilder pour traverser et épisser manuellement; 3. StringJoiner convient aux scénarios qui nécessitent des formats plus flexibles tels que les préfixes et les suffixes; 4. Utilisation de Arrays.Stream () combinée avec des collectionneurs.joining () convient au filtrage ou à la conversion du tableau avant de rejoindre; Pour résumer, si Java8 et supérieur est utilisé, la méthode String.join () doit être préférée dans la plupart des cas, ce qui est concis et facile à lire, mais pour une logique complexe, elle est recommandée.

Meilleures pratiques pour gérer les grandes tables MySQL Meilleures pratiques pour gérer les grandes tables MySQL Aug 05, 2025 am 03:55 AM

Lorsque vous traitez avec de grandes tables, les performances MySQL et la maintenabilité sont confrontées à des défis, et il est nécessaire de commencer à partir de la conception structurelle, de l'optimisation des index, de la stratégie de sous-table de tableau, etc. 1. Concevoir raisonnablement les clés et les index primaires: il est recommandé d'utiliser des entiers auto-incrémentés comme clés principales pour réduire les scintillement de pages; Utiliser les index de superposition pour améliorer l'efficacité de la requête; Analyser régulièrement les journaux de requête lents et supprimer les index non valides. 2. Utilisation rationnelle des tables de partition: partition en fonction de la plage de temps et d'autres stratégies pour améliorer l'efficacité de la requête et de la maintenance, mais l'attention devrait être accordée aux problèmes de partitionnement et de coupe. 3. Envisagez de lire et d'écrire la séparation et la séparation des bibliothèques: la séparation de lecture et d'écriture atténue la pression sur la bibliothèque principale. La séparation de la bibliothèque et la séparation des tableaux conviennent aux scénarios avec une grande quantité de données. Il est recommandé d'utiliser des middleware et d'évaluer les problèmes de requête des transactions et des magasins croisés. La planification précoce et l'optimisation continue sont la clé.

See all articles