Maison Java JavaBase Développement de programmes Java, apprentissage des bases de données JDBC et MySQL

Développement de programmes Java, apprentissage des bases de données JDBC et MySQL

Feb 11, 2021 am 10:33 AM
java jdbc mysql数据库

Développement de programmes Java, apprentissage des bases de données JDBC et MySQL

Recommandations d'apprentissage associées : bases de Java

Connexion JDBC au fonctionnement de la base de données

Vous pouvez l'encapsuler dans une classe pour simplifier le code lors de l'écriture.
(1) Charger le pilote de base de données JDBC-MySQL

try {
    Class.forName("com.mysql.cj.jdbc.Driver");}catch (Exception e){ }
Copier après la connexion

(2) Se connecter à la base de données

Connection con = null;//声明要连接数据库的对象comString uri = "jdbc:mysql://localhost:3306/数据库名?useSSL=true &characterEncoding=utf-8";	//连接地址String user = "root";	//连接数据库的用户名String password = "123456";	//连接数据库的密码try {
    con = DriverManager.getConnection(uri,user,password);
	//连接代码}catch(SQLException e){ }
Copier après la connexion

(3) Écrire du code pour exploiter les données dans la base de données

2. Opération de requête

1. Étapes spécifiques de l'opération de requête
(1) Envoyer une instruction SQL à la base de données :

Statement sql;try{
    sql = con.createStatement();}catch (SQLException e){ }
Copier après la connexion

Déclarez d'abord l'objet d'instruction SQL, puis laissez l'objet de connexion créé appeler la méthode createStatement() pour créer cet objet d'instruction SQL.
(2) Traitement des résultats de la requête
Avec l'objet instruction SQL, cet objet peut appeler les méthodes correspondantes pour implémenter diverses opérations sur les tables de la base de données, où les résultats de la requête sont stockés dans un objet déclaré par la classe ResultSet. Autrement dit, l'instruction de requête SQL renvoie un objet ResultSet à l'opération de requête de base de données. Le ResultSet est composé de lignes de données organisées par « colonnes » (champs).

rs = sql.executeQuery("select * from 表的名称");//读取表中的所有列,*为通配符rs = sql.executeQuery("select 行1字段名,行2字段名... from 表的名称");//读取表中特定的列
Copier après la connexion

L'objet ResultSet ne peut voir qu'une seule ligne de données à la fois, utilisez la méthode next() pour passer à la ligne suivante. Les objets ResultSet peuvent obtenir des valeurs de colonne via getXxx(int columnIndex) et des valeurs de colonne en passant des noms de colonne getXxx(String columnName).
(3) Fermez la connexion

con.close(); //关闭con所连接的数据库
Copier après la connexion

Remarque : la base de données est étroitement liée à l'objet de connexion et vous devez fermer la base de données après l'avoir utilisée.

2, contrôlez le curseur
La position initiale du curseur dans l'ensemble de résultats est devant la première ligne de l'ensemble de résultats. L'ensemble de résultats appelle le next(). méthode pour déplacer le curseur vers le bas (retour). Renvoie vrai si le déplacement est réussi et faux si le déplacement échoue. Si vous souhaitez vous déplacer dans l'ensemble de résultats et afficher plusieurs enregistrements, vous devez renvoyer un ensemble de résultats défilant. La méthode est la suivante :

Statement stmt = con.createStatement(int type,int concurrency);//获得一个Statement对象,根据参数的值,stmt返回相应类型的结果集:ResultSet re = stmt.executeQuery(SQL语句);type的取值:决定滚动方式:
ResultSet.TYPE_FORWARD_ONLY 结果集的游标只能向下滚动
ResultSet.TYPE_SCROLL_INSENSITIVE 游标可以上下移动,数据库变化时,结果集不变
ResultSet.TYPE_SCROLL_SENSITIVE 返回可滚动的结果集,数据变化时,结果集同步改变
Concurrency取值:决定是否可以用结果集更新数据库
ResultSet.CONCUR_READ_ONLY 不能用结果集更新数据库中的表
ResultSet.CONCUR_UPDATABLE 能用结果集更新数据库中的表

滚动查询常用的ResultSet的方法:public boolean previous() 将游标向上移动,当移动到结果集第一行之前时返回falsepublic void beforeFirst() 将游标移动到结果集的初始位置,第一行之前public void afterLast() 将游标移动到结果集的最后一行之后public void first() 将游标移动到第一行public void last() 将游标移动到最后一行public boolean isAfterLast() 判断游标是否在最后一行之后public boolean isBeforeFirst() 判断游标是否在第一行游标之前public boolean isFirst() 判断游标是否指向第一行public boolean isLast() 判断游标是否指向最后一行public int getRow() 得到当前游标所指向的行号,行号从1开始,如果结果集没有行,返回0public boolean absolute(int row) 将游标移动到参数row指定的行(参数取负数即倒数)
Copier après la connexion

(3) Requête de condition et de tri
où sous-instruction : select 字段 from 表明 where 条件

(1)字段值与固定值比较
select * from table where name='张三'(2)字段值在某个区间
select * from table where number>5 and number<10 and name!=&#39;李四&#39;(3)使用某些特殊的日期函数(Data:year-month-day)select * from table where year(表明日期的字段名)<1980 and month(表面日期的字段名)<=10select * from table where year(表明日期的字段名) between 2002 and 2021(4)使用某些特殊的时间函数(hour,minute,second)
select * from timelist where second(表明时间的字段名)=36(5)用操作符like进行模式匹配,使用%代替0个或多个字符,用一个下划线_代替一个字符。
select * from table where name like&#39;%欧%&#39; //查询name字段有“欧”字的记录
Copier après la connexion

ordre par instruction : peut être utilisé en combinaison avec l'instruction Where

select * from table order by height
select * from table where name like &#39;%王%&#39; order by name
Copier après la connexion

3 Opérations de mise à jour, d'ajout et de suppression

Appels d'objets d'instruction public int executeUpdate(String sqlStatement); pour mettre à jour, ajouter et supprimer des enregistrements dans la table de base de données. en spécifiant des paramètres.

(1)更新
update 表名 set 字段 = 新值 where <条件子句>(2)添加
insert into 表 values (对应具体的记录)(3)删除
delete from 表名 where <条件子句>
Copier après la connexion

4. Utiliser des instructions préparées

Java fournit un mécanisme de fonctionnement de base de données plus efficace, qui est l'objet PreparedStatement, c'est-à-dire l'objet d'instruction préparée. Traitez l'instruction SQL dans l'instruction sous-jacente de la base de données, puis transmettez-la à la base de données.
Utiliser des caractères génériques : lors du prétraitement SQL, vous pouvez utiliser le caractère générique ? pour remplacer la valeur du champ. Définissez simplement la valeur spécifique représentée par le caractère générique avant d'exécuter l'instruction préparée :

String str = "select * from 表名 where 字段1 < ? and 字段2 = ?";PreparedStatement sql = con.prepareStatement(str);sql.setXxx(int parameterIndex,Type x);//该方法设置?代表的值,parameterIndex代表第几个?,x代表要替换的值。
Copier après la connexion

5. .Requête générale

Écrivez une classe de requête générale. Les utilisateurs peuvent transmettre le nom de la base de données et l'instruction SQL à l'objet de cette classe, puis l'objet utilisera un tableau bidimensionnel pour renvoyer l'enregistrement de la requête. .
L'écriture d'une classe de requête générale nécessite de connaître le nom et le nombre de colonnes (champs) de la table de la base de données. Une méthode courante consiste à utiliser l'objet ResultSet rs pour appeler la méthode getMetaData() pour renvoyer un objet ResultSetMetaData :

ResultSetMetaData metaData = rs.getMetaData();
Copier après la connexion

Ensuite, l'objet metaData appelle la méthode getColumnCount() pour renvoyer le nombre de colonnes dans rs, juste call getColumnName(int i) Renvoie le nom de la i-ième colonne dans l'ensemble de résultats rs.

6. Transactions

1. Transactions et traitement
Une transaction est constituée d'un ensemble d'instructions SQL. Ce que l'on appelle le traitement des transactions signifie que le programme d'application garantit que soit toutes les instructions SQL de la transaction sont exécutées, soit aucune d'entre elles n'est exécutée. Le traitement des transactions est un mécanisme important pour garantir l'intégrité et la cohérence des données dans la base de données.

2, traitement des transactions JDBC
Utilisez la méthode setAutoCommit(boolean b) pour désactiver le mode automatique :
Autrement dit, désactivez l'efficacité immédiate de l'instruction SQL . Les deux opérations associées ne doivent modifier les données de la base de données qu'une fois toutes les exécutions terminées. La méthode consiste à laisser l'objet de connexion appeler cette méthode avant d'obtenir l'objet sql :

con.setAutoCommit(false);
Copier après la connexion

Utilisez la méthode commit() pour traiter la transaction :
Après avoir désactivé le mode automatique, laissez l'objet sql se soumettre plusieurs instructions SQL (c'est-à-dire la même transaction), ces instructions ne prendront pas effet immédiatement, mais prendront effet jusqu'à ce que l'objet de connexion appelle la méthode :

con.commit();
Copier après la connexion

L'utilisation de la méthode rollback() pour traiter la transaction échoue :
C'est-à-dire annuler l'opération de la transaction. Lorsque con appelle la méthode commit() pour le traitement des transactions, tant qu'une instruction SQL n'est pas exécutée avec succès, l'exécution de la transaction échoue et une exception SQLException est levée. À ce stade, con doit appeler la méthode rollback() pour annuler toutes les opérations qui entraînent des modifications de données :

con.rollback();
Copier après la connexion

Recommandations d'apprentissage gratuites associées : vidéo mysql tuto

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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

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.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

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)

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Horodatage à ce jour en Java Horodatage à ce jour en Java Aug 30, 2024 pm 04:28 PM

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Feb 07, 2025 pm 12:11 PM

Spring Boot simplifie la création d'applications Java robustes, évolutives et prêtes à la production, révolutionnant le développement de Java. Son approche "Convention sur la configuration", inhérente à l'écosystème de ressort, minimise la configuration manuelle, allo

See all articles