App下載

java 怎么連接數(shù)據(jù)庫?java連接數(shù)據(jù)庫方式詳解!

猿友 2021-06-03 16:20:07 瀏覽數(shù) (4114)
反饋

對于應(yīng)用而言,沒有數(shù)據(jù)庫的支持意味著該應(yīng)用只能服務(wù)小部分人,只能存儲小部分?jǐn)?shù)據(jù),而且數(shù)據(jù)不好進(jìn)行管理,所以大多數(shù)編程語言能連接數(shù)據(jù)庫以獲得數(shù)據(jù)支持。那么 java 怎么連接數(shù)據(jù)庫呢?讓小編來告訴你。

閱前須知

java 項(xiàng)目要連接數(shù)據(jù)需要有相應(yīng)的驅(qū)動(dòng)??梢郧巴倬W(wǎng)下載相應(yīng)的驅(qū)動(dòng)包

官網(wǎng)鏈接:https://dev.mysql.com/downloads/connector/j/

如果使用 maven 項(xiàng)目,可以在 pom 文件中添加如下依賴:

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.25</version>
</dependency>

注:小編使用的是8.0.25版本的數(shù)據(jù)庫,所以版本號是8.0.25,不同版本請自行修改。 

連接數(shù)據(jù)庫與基本操作(代碼附帶注釋):

import java.sql.*;//導(dǎo)入sql包才能進(jìn)行jdbc操作
public class App {
    public static void main(String[] args){
        String url ="jdbc:mysql://127.0.0.1:3306/";//數(shù)據(jù)庫主機(jī)地址
        String database ="w3c";//數(shù)據(jù)庫名
        String encoding = "?characterEncoding=UTF-8";//數(shù)據(jù)庫字符集
        String username = "root";//連接的用戶名
        String password = "root";//連接的密碼
        String insertSQL = " insert into newtable values (8,'username','123'); ";//插入SQL語句
        String selectSQL = "select * from newtable";//查詢SQL語句
        Connection connection = null; //初始化數(shù)據(jù)庫連接
        Statement statement = null; //初始化statement
        try {
             connection= DriverManager.getConnection(url+database+encoding,
                            username, password);//創(chuàng)建一個(gè)數(shù)據(jù)庫連接
             statement= connection.createStatement();//創(chuàng)建一個(gè)statement
            //statement是java執(zhí)行數(shù)據(jù)庫操作的重要接口,用來執(zhí)行簡單的sql語句
            // 注意:使用的是 java.sql.Statement,不要不小心使用到: com.mysql.jdbc.Statement;
            statement.execute(insertSQL);//使用excute()方法可以執(zhí)行創(chuàng)建,增加,刪除,插入等SQL語句
            ResultSet result = statement.executeQuery(selectSQL);//使用excuteQuery()可以執(zhí)行查詢語句,并將結(jié)果集返回給ResultSet
            //數(shù)據(jù)展示方法,不深入介紹
            while(result.next()){//使用next方法可以一行一行的取數(shù)據(jù),如果要全部取出,可以先存在一個(gè)數(shù)組里
                int id=result.getInt(1);//獲取第一列的數(shù)據(jù)
                String user=result.getString(2);//獲取第二列的數(shù)據(jù)
                String pwd=result.getString(3);//獲取第三列的數(shù)據(jù)
                System.out.println("編號:"+id+",用戶名:"+user+",密碼:"+pwd);
                System.out.println("-----------------------");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            // 數(shù)據(jù)庫的連接時(shí)有限資源,相關(guān)操作結(jié)束后,養(yǎng)成關(guān)閉數(shù)據(jù)庫的好習(xí)慣
            // 先關(guān)閉Statement
            if (statement != null)
                try {
                    statement.close();//關(guān)閉statement
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            // 后關(guān)閉Connection
            if (connection != null)
                try {
                    connection.close();//關(guān)閉數(shù)據(jù)庫連接
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
        }
    }
}

小結(jié)

java 數(shù)據(jù)庫的連接相比于 python 而言復(fù)雜了許多。好在 java 有比較成熟的數(shù)據(jù)庫框架可以使用,在項(xiàng)目的開發(fā)中編寫 jdbc 的機(jī)會較少。有興趣深入了解的小伙伴可以去看看:

Hibernate視頻教程

Mybatis視頻教程


0 人點(diǎn)贊