0


MySQL Java的JDBC编程

🏀1. Java的数据库编程:****JDBC

JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是 Java中的数据库连接规范。这个API由 java.sql.,javax.sql. 包中的一些类和接口组成,它为Java 开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问。

🏀2. JDBC工作原理

JDBC 为多种关系数据库提供了统一访问方式,作为特定厂商数据库访问API的一种高级抽象,它主要包含一些通用的接口类。

🏀3. *JDBC***使用 **

准备数据库驱动包,并添加到项目的依赖中:

使用java IDEA 新建一个Maven项目

打开并配置 pom.xml

🎈建立数据库连接:

        MysqlDataSource db = new MysqlDataSource();
        // 1. 告诉客户端,MySQL服务器在哪
        // 通过告诉 地址 + 端口
        db.setServerName("localhost");
        db.setPort(3306);
        // 2. 认证(名称 + 密码)
        db.setUser("root");
        db.setPassword("123456");
        //  设置默认库(要操作的库名)
        db.setDatabaseName("0331_library");
        // 3. 其他配置
        db.setUseSSL(false);
        db.setCharacterEncoding("utf-8");
        db.setServerTimezone("Asia/Shanghai");

🎈为了方便我们新建一个DBUtil类,直接调用即可

public class DBUtil {
    private static final DataSource dataSource;

    static {
        MysqlDataSource db = new MysqlDataSource();
        db.setServerName("localhost");
        db.setPort(3306);
        db.setUser("root");
        db.setPassword("123456");
        db.setDatabaseName("0331_library");
        db.setUseSSL(false);
        db.setCharacterEncoding("utf-8");
        db.setServerTimezone("Asia/Shanghai");

        dataSource = db;
    }

    public static Connection connection() throws SQLException {
        return dataSource.getConnection();
    }
}

🎈使用演示:

//已设默认库,写执行语句
        // a. 查询
        String sql = "select * from books";
        // 4. 通过网络和MySQL服务器建立连接
        try (Connection c = DBUTil.connection()) {
            // 5. 发送给MySQL服务器我们的语句
            try (PreparedStatement ps = c.prepareStatement(sql)) {
                // 6. executeQuery 执行查询
                // 7. ResultSet接收(需要输出)
                try (ResultSet rs = ps.executeQuery()) {
                    // 8. 遍历、检索、打印集中的数据
                    while (rs.next()) {
                        String rid = rs.getString(1);
                        String name = rs.getString(2);
                        String stock = rs.getString(3);
                        String total = rs.getString(4);
                        System.out.printf("%s\t%s\t%s\t%s\n",rid,name,stock,total);
                    }
                }
            }
        }

🎈对该库具体的增删改查完整代码如下:

import java.sql.*;
import java.util.Scanner;

public class Demo1 {
    public static void main(String[] args) throws SQLException {
        Scanner scanner = new Scanner(System.in);

        try(Connection c = DBUtil.connection()){

            // 1.增
            String sql1 = "insert into readers (name) values (?)";
            String newReaderName = scanner.next();
            //Statement.RETURN_GENERATED_KEYS 得到自增值操作
            try(PreparedStatement ps = c.prepareStatement(sql1,Statement.RETURN_GENERATED_KEYS)){
                ps.setString(1,newReaderName);
                ps.executeUpdate();
                try(ResultSet rs = ps.getGeneratedKeys()){
                    rs.next();
                    int rid = rs.getInt(1);
                    System.out.println("新插入了一个reader:" + rid +"\t"+newReaderName);
                }
            }

            // 2.删
            String sql2 = "delete from readers where name = '刘昕怡'";
            try(PreparedStatement ps = c.prepareStatement(sql2)){
                ps.executeUpdate();
            }

            // 3.改
            String sql3 = "update readers set name = '刘昕怡' where name = '陈浩民'";
            try (PreparedStatement ps = c.prepareStatement(sql3)){
                ps.executeUpdate();
            }

            // 4.查
            String sql4 = "select * from books where 1 = 1";
            try(PreparedStatement ps = c.prepareStatement(sql4)){
                try(ResultSet rs = ps.executeQuery()){
                    while (rs.next()){
                        int rid = rs.getInt(1);
                        String name = rs.getString(2);
                        int stock = rs.getInt(3);
                        int total = rs.getInt(4);
                        System.out.printf("%d\t%s\t%d\t%d\n",rid,name,stock,total);
                    }
                }
            }
        }
    }
}

🎈此代码中涉及两个表:

readers表:

books表:

🎈MYSQL建表等操作请见上节:《 MySQL 增删改查(基础 + 详解)》

标签: sql java 开发语言

本文转载自: https://blog.csdn.net/m0_62218217/article/details/124060335
版权归原作者 爱干饭的猿 所有, 如有侵权,请联系我们删除。

“MySQL Java的JDBC编程”的评论:

还没有评论