Rumah >pangkalan data >tutorial mysql >Bagaimana untuk menyambung ke pangkalan data MySQL di Java

Bagaimana untuk menyambung ke pangkalan data MySQL di Java

王林
王林ke hadapan
2023-05-30 15:10:493335semak imbas

Pertama sekali, kerana ia adalah versi 8 pangkalan data, cara menulis kelas konfigurasi adalah berbeza daripada versi 5. Sila ambil perhatian bahawa apabila menggunakan idea atau eclipse pada masa yang sama, anda perlu mengimport balang pakej

Jika anda ingin memuat turun 8 pakej balang dengan versi berbeza hanya perlu mengubah suai 8.0.28 kepada versi yang ditentukan.

Kaedah idea mengimport pakej balang adalah seperti berikut:

Bagaimana untuk menyambung ke pangkalan data MySQL di Java

Bagaimana untuk menyambung ke pangkalan data MySQL di Java

Bagaimana untuk menyambung ke pangkalan data MySQL di Java

Bagaimana untuk menyambung ke pangkalan data MySQL di Java

Bagaimana untuk menyambung ke pangkalan data MySQL di Java

Kemudian datang bahagian kod Mula-mula buat jadual:

CREATE TABLE `train_message` (
                                 `id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
                                 `train_name` varchar(20) NOT NULL COMMENT '列车名',
                                 `origin` varchar(30) NOT NULL COMMENT '始发地',
                                 `terminal` varchar(30) NOT NULL COMMENT '终到地',
                                 `departure_time` timestamp NOT NULL COMMENT '出站时间',
                                 `state` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '正常' COMMENT '列车状态',
                                 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb3

Kemudian buat kelas konfigurasi yang disambungkan DbConfig.java, localhost ialah IP. alamat mesin, Jika ada pelayan, isikan alamat IP pelayan adalah nama pangkalan data Berikut adalah gambar yang menunjukkan nama yang ramai orang baru salah faham

Bagaimana untuk menyambung ke pangkalan data MySQL di Java

Bagaimana untuk menyambung ke pangkalan data MySQL di Java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 *  数据库配置类
 *  @author 景苒
 */
public class DbConfig {
    public Connection dbConfig() throws SQLException {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        }catch (Exception e) {
            System.out.print("加载驱动失败!");
            e.printStackTrace();
        }
        String url = "jdbc:mysql://localhost:3306/message?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true";
        String user = "root";
        String password = "123456";
        return DriverManager.getConnection(url, user, password);
    }
}

Kemudian tulis fungsi utama Main.java Badan fungsi fungsi utama di sini boleh ditulis di hujungnya kaedah ulasan pantas, pilih ayat ini, tekan ctrl dan tambah Semua beranotasi.

import java.sql.SQLException;

/**
 * 主函数,调用功能
 * @author 景苒
 */
public class Main {
    public static void main(String[] args) throws SQLException {
//        new GetMessage().getMessage();
//        new UpdateTrainState().updateTrainState();
//        new InsertTrain().insertTrain();
//        new GetNumber().getNumber();
    }
}

Kemudian fungsi masing-masing:

1 Tanya semua maklumat kereta api dari Shenyang ke Wuhan, diisih mengikut masa berlepas

Bina kelas GetMessage.java

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

/**
 * 查询沈阳到武汉的所有列车信息,按出发时间先后排序
 * @author 景苒
 */
public class GetMessage {
    public void getMessage() throws SQLException {
        Connection con = new DbConfig().dbConfig();
        String sql = "select * from `train_message` where origin = ? and terminal = ? ORDER BY departure_time ASC";
        String origin = "沈阳";
        String terminal = "武汉";
        PreparedStatement ps = con.prepareStatement(sql);
        ps.setString(1, origin);
        ps.setString(2, terminal);
        ResultSet rs = ps.executeQuery();
        try {
            while (rs.next()) {
                System.out.println("列车名:" + rs.getString("train_name")
                        + " 始发站:" + rs.getString("origin")
                        + " 终到站:" + rs.getString("terminal")
                        + " 出发时间:" + rs.getString("departure_time")
                        + " 列车状态:" + rs.getString("state"));
            }
        }catch (SQLException e) {
            e.printStackTrace();
        }finally {
            ps.close();
            con.close();
        }
    }
}

2. Ubah suai status kereta api T2255 kepada tidak beroperasi

Buat kelas UpdateTrainState.java

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 修改T2255列车的状态为停运
 * @author 景苒
 */
public class UpdateTrainState {
    public void updateTrainState() throws SQLException {
        Connection con = new DbConfig().dbConfig();
        String sql = "UPDATE `train_message` SET state = '停运' WHERE train_name = 'T2255'";
        Statement statement = con.createStatement();
        try {
            int i = statement.executeUpdate(sql);
            if (i > 0) {
                System.out.println("更新成功");
            }else {
                System.out.println("更新失败");
            }
        }catch (SQLException e) {
            e.printStackTrace();
        }finally {
            statement.close();
            con.close();
        }
    }
}

3 🎜> Cipta kelas InsertTrain.java

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

/**
 * 新增一辆列车信息(自己输入)
 * 始发时间为timestamp类型,输入时需要确保格式正确,如:2019-01-01 00:00:00
 * @author 景苒
 */
public class InsertTrain {
    public void insertTrain() throws SQLException {
        Connection con = new DbConfig().dbConfig();
        Scanner scanner = new Scanner(System.in);
        String sql = "insert into `train_message` values(null, ?, ?, ?, ?, default)";
        System.out.print("请输入列车名:");
        String trainName = scanner.nextLine();
        System.out.print("请输入始发站:");
        String origin = scanner.nextLine();
        System.out.print("请输入终到站:");
        String terminal = scanner.nextLine();
        System.out.print("请输入始发时间:");
        String departureTime = scanner.nextLine();
        PreparedStatement ps = con.prepareStatement(sql);
        ps.setString(1, trainName);
        ps.setString(2, origin);
        ps.setString(3, terminal);
        ps.setString(4, departureTime);
        try {
            int i = ps.executeUpdate();
            if (i > 0) {
                System.out.println("添加成功");
            }else {
                System.out.println("添加失败");
            }
        }catch (SQLException e) {
            e.printStackTrace();
        }finally {
            ps.close();
            con.close();
        }
    }
}

4. Tanya bilangan kereta api dengan status normal

Bina kelas GetNumber.java

import java.sql.Statement;

/**
 * 查询状态为正常的列车数量
 * @author 景苒
 */
public class GetNumber {
    public void getNumber() throws SQLException {
        Connection con = new DbConfig().dbConfig();
        String sql = "select count(state) from `train_message` where state = '正常'";
        Statement statement = con.createStatement();
        try {
            ResultSet resultSet = statement.executeQuery(sql);
            while (resultSet.next()) {
                System.out.println("状态为正常的列车数量为:" + resultSet.getInt(1));
            }
        }catch (SQLException e){
            e.printStackTrace();
        }finally {
            statement.close();
            con.close();
        }
    }
}

Akhir sekali, lampirkan struktur atribut rajah dan contoh navicat Penyataan yang disisipkan

Bagaimana untuk menyambung ke pangkalan data MySQL di Java

Hanya tulis beberapa data mengikut keperluan anda sendiri Di atas adalah contoh kod untuk java untuk menyambung ke pangkalan data mysql, eclipse juga sama, kecuali cara mengimport pakej jar. Bagaimana untuk menyambung ke pangkalan data MySQL di Java

Atas ialah kandungan terperinci Bagaimana untuk menyambung ke pangkalan data MySQL di Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam