学习jdbc第一天

JDBC

JDBC概述

JDBC是什么

  1. JDBC是一套sun公司定义的接口,是一套标准,规定了统一的数据库访问方法
  2. 各个数据库厂商实现这套标准,让java程序能操作数据库

为什么使用JDBC

jdbc的好处,我们只学习一套接口的使用和操作,就可以访问任何数据库了


怎么使用JDBC

  1. 下载驱动,mysql驱动
  2. 把驱动加载到java环境中,注册

    //注册驱动
    Class.forName("com.mysql.jdbc.Driver");
    - com.mysql.jdbc.Driver.class
    
  3. 获得连接对象 Connection

    public static void main(String[] args) throws Exception {
        //1.注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2.获得Connection对象
    
        //url jdbc:mysql://数据库IP:端口号/库名
        //username 数据库用户名
        //password 数据库密码
    
        Connection conn=DriverManager
                .getConnection(
                        "jdbc:mysql://localhost:3306/demo1", 
                        "root", "root");
        //验证是否连接成功
        System.out.println(conn);
        //证明接口实现类来自驱动
        System.out.println(conn.getClass());
    
    }
    
    - ps:如果使用mysql版本为6.0以上的jar包
    - url 中要添加时区指定
    - "jdbc:mysql://localhost:3306/demo1?serverTimezone=Asia/Shanghai"
    - "jdbc:mysql://localhost:3306/demo1?serverTimezone=UTC"
    
  4. 连接上数据库后,要执行sql语句

    使用Statement对象执行sql语句

  5. 执行DDL

    String ddl="create table demo_2("
            + "id int,"
            + "name varchar(20))";
    //boolean flag=sta.execute(ddl);
    //false代表没有返回结果集
    //true代表有返回结果集
    //System.out.println(flag);
    
  6. 执行DML

    //插入操作 DML
    //String dml="insert into demo_1 "
    //      + " values(1,'hanmeimei')";
    //sta.executeUpdate(dml);
    
  7. 执行DQL,处理结果集

    //查询
    String dql="select 'hello' as a "
            + "from dual";
    //使用execute(dql)执行查询语句
    //boolean flag=sta.execute(dql);
    //System.out.println(flag);
    
    ResultSet rs=sta.executeQuery(dql);
    while(rs.next()){
        String str=rs.getString("a");
        System.out.println(str);
    }
    
  8. 关闭连接对象

    conn.close();
    
  9. 关于resultSet游标的讲解


  • resultSet对象,使用游标控制数据
  • 当执行查询语句的时候,resultSet对象用于封装查询结果
  • 方法
    • Boolean rs.next(),1.让结果集中的游标往下移动一行,2.判断该行是否有数据!有的话,返回true.没有就返回false
    • rs.getXXX()有很多种,分别对应数据库中不同的数据类型
    • 数据库类型 get方法
    • char/varchar getString
    • int getInt
    • bigint getLong
    • float/double getFloat/getDouble
    • datetime/timestamp getDate

初步封装

java面向对象的思想,让我们获得连接对象的代码可以重用

  • 创建一个工具类 DBUtils,封装获取连接对象的静态方法

    public class DBUtils {
        //1.创建静态方法getConnection
        //返回值为Connection对象
        public static Connection getConnection() throws Exception{
            //1.1把4个字符串拆分出来
            String driver="com.mysql.jdbc.Driver";
            String url="jdbc:mysql://localhost:3306/demo1";
            String userName="root";
            String password="root";
            //1.2注册驱动
            Class.forName(driver);
            //1.3获取连接对象
            Connection conn=DriverManager
                    .getConnection(url, userName, password);
            return conn;
        }
    }
    

    public static void main(String[] args) throws Exception {
            //调用封装的getConnection方法获得连接对象
            Connection conn=DBUtils.getConnection();
            String sql="select * from demo2";
            //获取statement对象
            Statement sta=conn.createStatement();
            ResultSet rs=sta.executeQuery(sql);
            while(rs.next()){
                int id=rs.getInt(1);
                String str=rs.getString(2);
                System.out.println(id);
                System.out.println(str);
            }
            conn.close();
        }
课堂练习
  • 完成DBUtils的封装,并且测试成功
  • 思考尝试一下,封装conn.close()

封装进阶

  • JDBC可以操作所有的数据库
  • 如果我们现在想要更换数据,或者更换用户/密码/库,需要进入代码去更改
  • 把4个字符串driver,url,username,password,放到一个配置文件中,以便后期维护
课堂练习

作业

  • 完全熟悉jdbc操作数据的库基本流程 (Connection对象,Statement对象,Properties对象)
  • 完成进阶封装的代码操作
  • 对emp表,进行3次增删改查操作
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值