Maison Java JavaQuestions d'entretien Questions d'entretien de base Java haute fréquence——(5)

Questions d'entretien de base Java haute fréquence——(5)

Sep 03, 2020 pm 04:24 PM
java 面试题

Questions d'entretien de base Java haute fréquence——(5)

1. Quelles sont les étapes de base permettant à JDBC d'accéder à la base de données ?

(Recommandé pour plus de questions d'entretien : questions et réponses d'entretien Java)

Charger le pilote

Obtenir l'objet de connexion Connexion via l'objet DriverManager

Obtenir la session via l'objet de connexion

Ajouter, supprimer, modifier et vérifier les données via la session, encapsuler l'objet

Fermer la ressource

2. Parlez de la différence entre PrepareStatement et Statement

Efficacité : les sessions précompilées sont meilleures que les objets de session ordinaires. Le système de base de données ne compilera pas à nouveau la même instruction SQL

Sécurité : les attaques par injection SQL peuvent être efficaces. évité! L'attaque par injection SQL consiste à saisir des caractères spéciaux illégaux à partir du client, afin que le serveur puisse toujours construire correctement l'instruction SQL lors de sa construction, collectant ainsi des informations et des données sur le programme et le serveur.

Par exemple :

“select * from t_user where userName = ‘” + userName + “ ’ and password =’” + password + “’”
Copier après la connexion

Si le nom d'utilisateur et le mot de passe sont saisis sous la forme '1' ou '1'='1', alors l'instruction SQL générée est :

“select * from t_user where userName = ‘1’ or ‘1’ =’1’  and password =’1’  or ‘1’=’1’
Copier après la connexion

La partie Where de cette instruction ne joue pas de rôle dans le filtrage des données.

3. Parlons du concept de transactions et des étapes de traitement des transactions dans la programmation JDBC

Une transaction est une série d'opérations effectuées comme une seule unité logique de travail.

Une unité logique de travail doit avoir quatre propriétés, appelées propriétés d'atomicité, de cohérence, d'isolation et de durabilité (ACID). Ce n'est qu'ainsi qu'elle peut devenir une transaction

Étapes du traitement de la transaction :

conn.setAutoComit(false); Définir la méthode de soumission sur soumission manuelle

conn.commit() valide la transaction

Une exception se produit, rollback conn.rollback(); 🎜>

4. Le principe du pool de connexion à la base de données. Pourquoi utiliser le pooling de connexions.

La connexion à la base de données est une opération qui prend du temps et le pool de connexions permet à plusieurs opérations de partager une connexion.

L'idée de base du pool de connexions à la base de données est d'établir un "pool tampon" pour les connexions à la base de données. Mettez à l'avance un certain nombre de connexions dans le pool tampon. Lorsque vous devez établir une connexion à la base de données, il vous suffit d'en retirer une du « pool tampon » et de la remettre après utilisation. Nous pouvons empêcher le système de se connecter sans fin à la base de données en définissant le nombre maximum de connexions dans le pool de connexions. Plus important encore, nous pouvons surveiller le nombre et l'utilisation des connexions à la base de données grâce au mécanisme de gestion du pool de connexions, fournissant ainsi une base pour le développement, les tests et l'ajustement des performances du système.

Le but de l'utilisation du pool de connexions est d'améliorer la gestion des ressources de connexion à la base de données

(Recommandations associées :

Tutoriel d'introduction à Java)

5. lecture de JDBC Qu'est-ce que c'est ? Quel niveau d'isolement de base de données empêche les lectures incorrectes ?

Lorsque nous utilisons des transactions, il peut arriver qu'une ligne de données vient d'être mise à jour et qu'en même temps une autre requête lit la valeur nouvellement mise à jour. Cela conduit à une lecture erronée, car les données mises à jour n'ont pas été conservées et l'entreprise qui a mis à jour cette ligne de données peut être annulée, de sorte que les données ne sont pas valides. Les niveaux d'isolement TRANSACTIONREADCOMMITTED, TRANSACTIONREPEATABLEREAD et TRANSACTION_SERIALIZABLE de la base de données empêchent les lectures incorrectes.

6. Qu'est-ce que la lecture fantôme et quel niveau d'isolement peut empêcher la lecture fantôme ?

La lecture fantôme signifie qu'une transaction exécute une requête plusieurs fois mais renvoie des valeurs différentes. Supposons qu'une transaction effectue une requête de données basée sur une certaine condition, puis qu'une autre transaction insère une ligne de données qui satisfait la condition de requête. Ensuite, cette transaction exécute à nouveau cette requête et le jeu de résultats renvoyé contiendra les nouvelles données qui viennent d'être insérées. Cette nouvelle ligne de données est appelée ligne fantôme, et ce phénomène est appelé lecture fantôme.

Seul le niveau d'isolement TRANSACTION_SERIALIZABLE peut empêcher les lectures fantômes.

7. À quoi sert le DriverManager JDBC ?

DriverManager de JDBC est une classe d'usine à travers laquelle nous créons des connexions à des bases de données. Lorsque la classe JDBC Driver est chargée, elle s'enregistrera dans la classe DriverManager

Ensuite, nous transmettrons les informations de configuration de la base de données à la méthode DriverManager.getConnection(), et DriverManager utilisera le pilote enregistré dans celle-ci. la connexion à la base de données et la renvoyer au programme appelant.

8. Quelle est la différence entre exécuter, exécuterQuery et exécuterUpdate ?

La méthode execute(String query) de Statement est utilisée pour exécuter n'importe quelle requête SQL. Si le résultat de la requête est un ResultSet, cette méthode renvoie true. Si le résultat n’est pas un ResultSet, comme une requête d’insertion ou de mise à jour, il renverra false. Nous pouvons obtenir le ResultSet via sa méthode getResultSet, ou obtenir le nombre d'enregistrements mis à jour via la méthode getUpdateCount().

L'interface executeQuery (String query) de Statement est utilisée pour exécuter une requête de sélection et renvoyer ResultSet. Même si aucun enregistrement n'est trouvé dans la requête, le ResultSet renvoyé ne sera pas nul. Nous utilisons généralement executeQuery pour exécuter des instructions de requête. Dans ce cas, si une instruction insert ou update est transmise, elle lancera une exception java.util.SQLException avec le message d'erreur "la méthodeexecuteQuery ne peut pas être utilisée pour la mise à jour".

Statement的executeUpdate(String query)方法用来执行insert或者update/delete(DML)语句,或者 什么也不返回,对于DDL语句,返回值是int类型,如果是DML语句的话,它就是更新的条数,如果是DDL的话,就返回0。

只有当你不确定是什么语句的时候才应该使用execute()方法,否则应该使用executeQuery或者executeUpdate方法。

9、SQL查询出来的结果分页展示一般怎么做?

Oracle:

select * from
(select *,rownum as tempid from student )  t
where t.tempid between ” + pageSize*(pageNumber-1) + ” and ” + pageSize*pageNumber
Copier après la connexion

MySQL:

select * from students limit ” + pageSize*(pageNumber-1) + “,” + pageSize;
Copier après la connexion

sql server:

select top ” + pageSize + ” * from students where id not in +
(select top ” + pageSize * (pageNumber-1) +  id from students order by id) +  
“order by id;
Copier après la connexion

(视频教程推荐:java课程

10、JDBC的ResultSet是什么?

在查询数据库后会返回一个ResultSet,它就像是查询结果集的一张数据表。

ResultSet对象维护了一个游标,指向当前的数据行。开始的时候这个游标指向的是第一行。如果调用了ResultSet的next()方法游标会下移一行,如果没有更多的数据了,next()方法会返回false。可以在for循环中用它来遍历数据集。

默认的ResultSet是不能更新的,游标也只能往下移。也就是说你只能从第一行到最后一行遍历一遍。不过也可以创建可以回滚或者可更新的ResultSet。

当生成ResultSet的Statement对象要关闭或者重新执行或是获取下一个ResultSet的时候,ResultSet对象也会自动关闭。
可以通过ResultSet的getter方法,传入列名或者从1开始的序号来获取列数据。

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)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois 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.

Générateur de nombres aléatoires en Java Générateur de nombres aléatoires en Java Aug 30, 2024 pm 04:27 PM

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

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

See all articles