Heim Java javaLernprogramm Wie verbinde ich mich mit JDBC mit der Datenbank? (mit Code)

Wie verbinde ich mich mit JDBC mit der Datenbank? (mit Code)

Feb 26, 2019 pm 04:30 PM
jdbc 连接数据库

In diesem Artikel erfahren Sie, wie Sie JDBC mit der Datenbank verbinden. (Beigefügt ist der Code), der einen gewissen Referenzwert hat. Freunde in Not können sich darauf beziehen. Ich hoffe, er wird Ihnen hilfreich sein.

Einführung in JDBC

Der vollständige Name von JDBC lautet: Java Data Base Connectivity (Java-Datenbankverbindung), die einen einheitlichen Zugriff ermöglichen kann eine Vielzahl von Datenbanken. JDBC ist eine Reihe von Programmierschnittstellen für den Datenbankzugriff, die von Sun entwickelt wurden. Es handelt sich um eine API auf SQL-Ebene. Da es in der Java-Sprache geschrieben ist, verfügt es über gute plattformübergreifende Eigenschaften. Datenbankanwendungen, die mit JDBC geschrieben wurden, können auf jeder Plattform ausgeführt werden, die Java unterstützt, ohne dass unterschiedliche Anwendungen auf verschiedenen Plattformen geschrieben werden müssen. [Empfohlenes Video-Tutorial: Java-Tutorial]

JDBC-Programmierschritte

(1) Laden Sie den Treiber:

Laden Sie das Treiberpaket herunter: http://dev.mysql.com/downloads/connector/j/

Entpacken Sie die JAR-Datei und holen Sie sich sie. Kopieren Sie diese Datei in das Java-Projektverzeichnis Java Resources/Libraries/, → buildpath.

(2) Datenbankverbindung herstellen

(3) Statement-Objekt erstellen:

(4) SQL-Befehl an Datenbank senden

(5 ) Verarbeiten Sie die zurückgegebenen Ergebnisse aus der Datenbank (ResultSet-Klasse)

package com.baidu.emp.jdbcTest;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import com.mysql.jdbc.Driver;
/**
 * 开始使用jdbc连接数据库
 * @author Admin
 *
 */
public class Test001 {

    public static void main(String[] args) throws Exception {

        /**
         * 加载驱动
         */
        // 方法一:
        /*
         * import java.sql.DriverManager; import com.mysql.jdbc.Driver;
         */
        // Driver driver = new Driver();
        // DriverManager.registerDriver(driver);

        // 方法二:(推荐使用)
        Class.forName("com.mysql.jdbc.Driver");

        /**
         * 创建链接
         */
        String url = "jdbc:mysql://localhost:3306/testjdbc";
        String user = "root";
        String password = "root";
        Connection connection = DriverManager.getConnection(url, user, password);

        // 创建statement对象
        Statement statement = connection.createStatement();

        /**
         * 执行SQL,获取结果集
         */
        String sql = "select * from test01";
        ResultSet result = statement.executeQuery(sql);

        // 遍历结果集
        while (result.next()) {
            String name = result.getString("name");
            int id = result.getInt("id");
            System.out.println(name + "\t" + id);
        }

        /**
         * 关闭链接,释放资源
         */
        result.close();
        statement.close();
        connection.close();
    }
}
Nach dem Login kopieren

Um SQL-Injection zu verhindern, verwenden Sie PrepareStatement

package com.boya.emp.jdbcTest;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
 * SQL注入,使用prepareStatement对象进行预编译
 * @author Admin
 *
 */
public class Test002 {

    public static void main(String[] args) throws Exception {

        /**
         * 加载驱动
         */
        Class.forName("com.mysql.jdbc.Driver");

        /**
         * 创建链接
         */
        String url = "jdbc:mysql://localhost:3306/testjdbc";
        String user = "root";
        String password = "root";
        Connection connection = DriverManager.getConnection(url, user, password);

        // 写SQL 
        String sql = "select * from test01 where id = ?";
        //创建statement对象,预编译
        PreparedStatement statement = connection.prepareStatement(sql);
        //设置参数
        statement.setInt(1, 2);
        /**
         * 执行SQL,获取结果集
         */
        ResultSet result = statement.executeQuery();

        // 遍历结果集
        while (result.next()) {
            String name = result.getString("name");
            int id = result.getInt("id");
            System.out.println(name + "\t" + id);
        }

        /**
         * 关闭链接,释放资源
         */
        result.close();
        statement.close();
        connection.close();
    }
}
Nach dem Login kopieren

Für die Codeoptimierung legen Sie Konfigurationsdateien und Toolklassen fest und implementieren Ergänzungen und Löschungen.

Fügen Sie Konfigurationsdateien hinzu, um Datenbankänderungen und Benutzeranmeldungen zu erleichtern. . .

jdbc.properties (Name der Konfigurationsdatei)

driverName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/testjdbc
userName=root
password=root
Nach dem Login kopieren

Beachten Sie, dass beim Schreiben der Konfigurationsdatei keine Leerzeichen, Anführungszeichen usw. vorhanden sein dürfen.

Toolklasse: Erhöhte Codekomplexität Benutzerfreundlichkeit

package com.baidu.emp.utils;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

import org.junit.Test;



public class JdbcUtils {

    static String driverClassName;
    static String url;
    static String user;
    static String password;

    static {
        // 创建配置文件对象
        Properties properties = new Properties();
        // 加载配置文件输入流
        InputStream inputStream = JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
        // 重新加载配置文件
        try {
            properties.load(inputStream);
            // 获取配置文件的值
            driverClassName = properties.getProperty("driverName");
            url = properties.getProperty("url");
            user = properties.getProperty("userName");
            password = properties.getProperty("password");
            Class.forName(driverClassName);

        } catch (Exception e) {
            // 抛出异常
            throw new RuntimeException(e);
        }
    }

    /**
     * 获取连接
     */
    @Test
    public void testName() throws Exception {
        
        System.out.println(driverClassName);
    }
    public static Connection getConnection() {
        Connection connection = null;
        try {
            connection = DriverManager.getConnection(url, user, password);
        } catch (SQLException e) {
            // 抛出异常
            throw new RuntimeException(e);
        }
        return connection;
    }

    /**
     * 关闭链接,释放资源
     */
    public static void close(Connection connection, PreparedStatement statement, ResultSet resultSet) {

        try {
            if (resultSet != null) {
                resultSet.close();
            }
            resultSet = null; // 垃圾及时清除
            //注意,不要弄成死循环
            close(connection, statement);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }

    }

    /**
     * 增删改释放资源
     */
    public static void close(Connection connection, PreparedStatement statement) {

        try {
            if (connection != null) {
                connection.close();
            }
                
            connection = null;
            if (statement != null) {
                statement.close();
            }
            statement = null;

        } catch (SQLException e) {
            throw new RuntimeException(e);
        }

    }

}
Nach dem Login kopieren

Ergänzungen, Löschungen und Änderungen testen:

package com.baidu.emp.jdbcTest;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.baidu.emp.utils.JdbcUtils;

/**
 * 使用jdbcUtils连接数据库进行增删改查
 * 
 * @author Admin
 *
 */
public class Test003 {

    // 初始化值
    Connection connection = null;
    PreparedStatement statement = null;
    ResultSet result = null;

    @Before
    public void start() throws Exception {
        // 创建链接
        connection = JdbcUtils.getConnection();
        System.out.println("创建链接");
    }

    @After
    public void end() throws Exception {
        // 关闭链接
        JdbcUtils.close(connection, statement, result);
        System.out.println("关闭链接");
    }
    
    /**
     *插入数据
     * @throws Exception
     */
    @Test
    public void add() throws Exception {
        String sql = "insert into test01 values(null,?)";
        statement = connection.prepareStatement(sql);
        statement.setString(1, "李四");
        int result = statement.executeUpdate();
        if (result!=0) {
            System.out.println("添加成功");
        }
    }
    /**
     * 删除数据
     * @throws Exception
     */
    @Test
    public void del() throws Exception {
        String sql = "delete from test01 where id =?";
        statement = connection.prepareStatement(sql);
        statement.setInt(1,3);
        int result = statement.executeUpdate();
        if (result!=0) {
            System.out.println("删除成功");
        }
    }
    /**
     * 修改数据
     * @throws Exception
     */
    @Test
    public void change() throws Exception {
        String sql = "update test01 set name = ? where id = ?";
        statement = connection.prepareStatement(sql);
        statement.setString(1, "张飞");
        statement.setInt(2, 2);
        int result = statement.executeUpdate();
        if (result!=0) {
            System.out.println("修改成功");
        }
    }
    
    /**
     * 查询全部数据
     * @throws Exception
     */
    @Test
    public void findAll() throws Exception {
        String sql = "select id , name from test01";
        statement = connection.prepareStatement(sql);
        result = statement.executeQuery();
        if (result.next()) {
            System.out.println("查询成功");
        }
    }
    
    /**
     * 条件查询数据
     * @throws Exception
     */
    @Test
    public void findOne() throws Exception {
        String sql = "select id , name from test01 where id = ?";
        statement = connection.prepareStatement(sql);
        statement.setInt(1, 2);
        result = statement.executeQuery();
        if (result.next()) {
            System.out.println("查询成功");
        }
    }

}
Nach dem Login kopieren

Es gibt Fehler, ich hoffe, die Kollegen weisen Sie darauf hin.

Das Obige ist der gesamte Inhalt Ich hoffe, dass das Lernen für alle von Nutzen sein kann. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !

Das obige ist der detaillierte Inhalt vonWie verbinde ich mich mit JDBC mit der Datenbank? (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Nach Java8 (291) ist TLS1.1 deaktiviert und JDBC kann keine Verbindung zu SqlServer2008 über SSL herstellen. Wie kann das Problem gelöst werden? Nach Java8 (291) ist TLS1.1 deaktiviert und JDBC kann keine Verbindung zu SqlServer2008 über SSL herstellen. Wie kann das Problem gelöst werden? May 16, 2023 pm 11:55 PM

Nach Java8-291 ist TLS1.1 deaktiviert, sodass JDBC keine Verbindung zu SqlServer2008 über SSL herstellen kann. Was soll ich tun? es ist jre, gehen Sie zu {JAVA_HOME}/jre/ In lib/security, zum Beispiel????C:\ProgramFiles\Java\jre1.8.0_301\lib\security Wenn es sich um die grüne, installationsfreie tragbare Version von Eclipse handelt , suchen Sie im Installationsordner nach java.security, z. B.????xxx\plugins \org

Java-Fehler: JDBC-Fehler, wie man sie löst und vermeidet Java-Fehler: JDBC-Fehler, wie man sie löst und vermeidet Jun 24, 2023 pm 02:40 PM

Durch die weit verbreitete Anwendung von Java treten häufig JDBC-Fehler auf, wenn Java-Programme eine Verbindung zu Datenbanken herstellen. JDBC (JavaDatabaseConnectivity) ist eine Programmierschnittstelle in Java, die zum Herstellen einer Verbindung zu einer Datenbank verwendet wird. Daher ist ein JDBC-Fehler ein Fehler, der auftritt, wenn ein Java-Programm mit einer Datenbank interagiert. Hier sind einige der häufigsten JDBC-Fehler und wie man sie löst und vermeidet. ClassNotFoundException Dies ist die häufigste JDBC-Ausnahme

So implementieren Sie JDBC-Batch-Insert in Java So implementieren Sie JDBC-Batch-Insert in Java May 18, 2023 am 10:02 AM

1. Erklären Sie, dass in JDBC die Methode „executeBatch“ mehrere DML-Anweisungen stapelweise ausführen kann und die Effizienz viel höher ist als die einzelne Ausführung von „executeUpdate“. Wie implementiert man die Batch-Ausführung in MySQL und Oracle? Dieser Artikel stellt Ihnen das Prinzip dahinter vor. 2. Einführung in das Experiment Dieses Experiment wird in den folgenden drei Schritten durchgeführt: a. Zeichnen Sie den Zeitaufwand für die Stapelausführung und Einzelausführung von JDBC in Oracle auf. c. Zeichnen Sie die Batch-Ausführung und die Einzelausführung von Oracleplsql auf. Die ausführungsaufwändigen Java- und Datenbankversionen sind wie folgt: Java17, Mysql8, Oracle

Häufige Probleme, die in Java bei der Verwendung der JDBC-API zum Herstellen einer Verbindung zur MySQL-Datenbank auftreten Häufige Probleme, die in Java bei der Verwendung der JDBC-API zum Herstellen einer Verbindung zur MySQL-Datenbank auftreten Jun 10, 2023 am 09:55 AM

In den letzten Jahren hat sich die Anwendung der Java-Sprache immer weiter verbreitet, und JDBCAPI ist eine kreative Methode für Java-Anwendungen zur Interaktion mit Datenbanken. JDBC basiert auf einem offenen Datenbankverbindungsstandard namens ODBC, der es Java-Anwendungen ermöglicht, eine Verbindung zu beliebigen Datenbanken herzustellen Datenbank. Managementsystem (DBMS). Unter ihnen ist MySQL ein beliebtes Datenbankverwaltungssystem. Allerdings werden Entwickler auch auf einige häufige Probleme stoßen, wenn sie eine Verbindung zu MySQL-Datenbanken herstellen. Dieser Artikel zielt darauf ab, die JDBCAPI-Verbindung M vorzustellen

So analysieren Sie die JDBC-Programmierung in MySQL So analysieren Sie die JDBC-Programmierung in MySQL May 30, 2023 pm 10:19 PM

1. Voraussetzungen für die Datenbankprogrammierung Programmiersprachen wie Java, C, C++, Python und andere Datenbanken wie Oracle, MySQL, SQLServer und andere Datenbanktreiberpakete: Verschiedene Datenbanken stellen beispielsweise unterschiedliche Datenbanktreiberpakete bereit, die verschiedenen Programmiersprachen entsprechen : MySQL stellt das Java-Treiberpaket mysql-connector-java zur Verfügung, das für den Betrieb von MySQL auf Java-Basis erforderlich ist. Ebenso ist für den Betrieb einer auf Java basierenden Oracle-Datenbank das Datenbanktreiberpaket ojdbc von Oracle erforderlich. 2. Java-Datenbankprogrammierung: JDBCJDBC, JavaDatabaseConnectiv

Wie lese ich die ersten paar Datensätze in einer Datenbank mit PHP? Wie lese ich die ersten paar Datensätze in einer Datenbank mit PHP? Mar 22, 2024 am 10:03 AM

Wie lese ich die ersten paar Datensätze in einer Datenbank mit PHP? Bei der Entwicklung von Webanwendungen müssen wir häufig Daten aus der Datenbank lesen und dem Benutzer anzeigen. Manchmal müssen wir nur die ersten paar Datensätze in der Datenbank anzeigen, nicht den gesamten Inhalt. In diesem Artikel erfahren Sie, wie Sie mit PHP die ersten Datensätze in der Datenbank lesen und spezifische Codebeispiele bereitstellen. Gehen Sie zunächst davon aus, dass Sie eine Verbindung zur Datenbank hergestellt und die Tabelle ausgewählt haben, die Sie bearbeiten möchten. Das Folgende ist ein einfaches Beispiel für eine Datenbankverbindung:

Wie gehe ich mit SQLException um, wenn ich eine Verbindung zur Datenbank in Java herstelle? Wie gehe ich mit SQLException um, wenn ich eine Verbindung zur Datenbank in Java herstelle? Jun 24, 2023 pm 09:23 PM

In Java-Programmen ist das Herstellen einer Verbindung zur Datenbank ein sehr häufiger Vorgang. Obwohl vorgefertigte Klassenbibliotheken und Tools zum Herstellen einer Verbindung zur Datenbank verwendet werden können, können während der Programmentwicklung dennoch verschiedene abnormale Situationen auftreten, darunter SQLException. SQLException ist eine von Java bereitgestellte Ausnahmeklasse. Sie beschreibt Fehler, die beim Zugriff auf die Datenbank auftreten, z. B. Fehler in der Abfrageanweisung, nicht vorhandene Tabellen, Verbindungsabbrüche usw. Für Java-Programmierer, insbesondere diejenigen, die JDBC (Java Data

Was ist der Unterschied zwischen dem Hibernate-Framework und JDBC? Was ist der Unterschied zwischen dem Hibernate-Framework und JDBC? Apr 17, 2024 am 10:33 AM

Unterschiede zwischen Hibernate und JDBC: Abstraktionsebene: Hibernate bietet Objektzuordnung und Abfragegenerierung auf hoher Ebene, während JDBC manuelle Codierung erfordert. Objektrelationale Zuordnung: Hibernate bildet Java-Objekte und Datenbanktabellen ab, während JDBC diese Funktionalität nicht bereitstellt. Abfragegenerierung: Hibernate verwendet HQL, um die Abfragegenerierung zu vereinfachen, während JDBC das Schreiben komplexer SQL-Abfragen erfordert. Transaktionsverwaltung: Hibernate verwaltet Transaktionen automatisch, während JDBC eine manuelle Verwaltung erfordert.

See all articles