微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MAC 中使用JDBC连接MySQL

  1. JDBC 全称是 JAVA DataBase Connectivity(JAVA 语言连接数据库
  2. JDBC 的本质是一套接口,面向接口调用,面向接口写实现类

面向接口编程:是为了解耦合,提高程序的扩展力
(多态机制就是非常经典的:面向抽象编程)

JDBC 编程六步:

  1. 注册驱动(告诉 JAVA,即将要连接的是哪个品牌的数据库
  2. 获取连接(表示 JVM的进程喝数据库进程之间的通道打开了,属于进程之间的通信,使用完了要关闭
  3. 获取数据库操作对象
  4. 执行 sql 语句
  5. 处理查询结果(只有上一步执行的是 select 语句的时候,才有结果)
  6. 释放资源(因为 JAVA 喝数据库属于进程间的通信,开启后要关闭

这是配置文件

DB_url=jdbc:MysqL://localhost:3306/dbtest
username=root
password=rootroot
driver=com.MysqL.cj.jdbc.Driver

步骤:

public class DBConnection {
    public static void main(String[] args) {
        //使用资源绑定器,绑定配置文件
        ResourceBundle bundle = ResourceBundle.getBundle("jdbctest");
        String driver = bundle.getString("driver");
        String url = bundle.getString("DB_url");
        String username = bundle.getString("username");
        String password = bundle.getString("password");

        Statement statement = null;
        ResultSet resultSet = null;
        Connection connection = null;

        try {
            //1.注册JDBC驱动
            Class.forName("com.MysqL.cj.jdbc.Driver");
            //2.获取数据库连接
            connection = DriverManager.getConnection(url, username, password);
            System.out.println("数据库连接对象=" + connection);
            //3.对数据库操作
            //Statement 专门执行 sql 语句的
            statement = connection.createStatement();//获取操作数据库的对象
            String sql = "select * from bookinfo";//执行 sql
            resultSet = statement.executeQuery(sql);//执行数据库语句获取结果集
            //int executeUpdate(insert/delete/update)

            while (resultSet.next()) {
                int bookid = resultSet.getInt("book_id");
                String bookname = resultSet.getNString("booK_name");
                BigDecimal price = resultSet.getBigDecimal("price");
                Date publicdate = resultSet.getDate("public_date");
                int store = resultSet.getInt("store");

                System.out.println("图书编号" + bookid);
                System.out.println("图书名" + bookname);
            }
        } catch (ClassNotFoundException e) {
            e.printstacktrace();
        }
        catch (sqlException e){
            e.printstacktrace();
        }
        finally {
            //4.关闭结果集,数据库操作对象,数据库连接
            try {
                if (statement != null) {
                    statement.close();
            }
            }catch (sqlException e){
                e.printstacktrace();
            }

            try {
                if (connection != null) {
                    connection.close();
                }
            }catch (sqlException e){
                e.printstacktrace();
            }

            try {
                if (resultSet != null) {
                    resultSet.close();
                }
            }catch (sqlException e){
                e.printstacktrace();
            }
        }
    }
}

url:统一资源定位符(网络中某个资源的绝对路径
包括:协议、IP、PORT、资源名

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐