• 0822JDBC--Java连接数据库


    JDBC定义:
        JDBC全称: Java DataBase Connectivity
          独立于特定数据管理系统, 通用的sql数据库存取和操作的公共接口, 是一种面向接口编程
        JDBC为访问不同的数据库提供了不同的途径

        ojdbc6.jar是JDBC连接数据库所必需的一个驱动包, 这个驱动包里面的某些特定的方法实现了下面三个接口, 从而可以连接到数据库
          我们把这种可以实现这三个接口的jar称为数据库的驱动包

        Connection接口是jdk中定义好的一个数据库连接的接口, 在javaAPI当中没有定义任何实现该接口的实现类, 这些实现类将会由数据库厂商提供, 同样Statement, ResultSet这两个接    口都是以这种形式来定义, 这样的编程模式成为面向接口编程

    JDBC主要使用的一个类和三个接口:
        DriverManager:
            驱动程序管理类, 由这个类来获取Connection接口的实例

        Connection: 获取数据库的连接, 设置自动提交方式, 获取Statement(包括其子类)对象
            prepareStatement(sql)-->返回用于执行sql语句的一个对象
            callableStatement-->返回执行存储过程的一个对象
            setAutoCommit(true)-->设置数据库提交方式(自动 / 手动)

        Statement: 执行sql语句, 返回结果集
            返回boolean类型 prepareStatement.execute()-->用于执行存储过程和函数
            返回ResultSet prepareStatement.executeQuery()-->用于查询的语句
            返回int prepareStatement.executeUpdate()-->用于增, 删, 改的语句

            批量处理:
                prepareStatement.addBatch()-->每次处理一条sql语句
                返回int[] prepareStatement.executeBatch()-->将一批命令提交给数据库去执行

            以占位符的形式构建sql语句
                String sql = "select * from tablename t where t.id=? and t.name in (?,?,?)";
                prepareStatemenet.setInt(1, 24)
                prepareStatemenet.setString(2, "Tom");
                prepareStatemenet.setString(3, "Jack");
                prepareStatemenet.setString(4, "Kitty");
                prepareStatemenet.executeQuery();
                调用设置占位符参数方法, 需要传两个参数:
                    第一个参数: 占位符索引值, 第几个 ? , 就写几, 从1开始数
                    第二个参数: 占位符的值, 设置什么类型的参数, 就用什么类型的方法

        ResultSet:
            由Statement执行查询sql之后返回的结果集
            返回boolean类型 next()-->判断结果集是否有下一行数据
            获取数据
                resultSet.getString()--->方法可以传字符串, 表示表中字段的名字, 也可以传整数, 表示第几列
                resultSet.getInt()
                resultSet.getDate()
                ...
            通过对各种方法的重写来获取结果集中的数据

    java连接数据库的代码
        定义四个属性: username, password, url, driver

        private static final String USERNAME = "数据库登录名";
        private static final String PASSWORD = "数据库登录密码";
        private static final String URL = "jdbc:oracle:thin:@localhost:1521:xe";
        private static final String DRIVERCLASSNAME = "oracle.jdbc.OracleDriver";

            1, 类加载器去加载数据库的驱动程序

       Class.forName(dirver);
            2, 直接调用DriverManager的静态方法getConnection()获取连接
            Connection conn = DriverManager.getConnection(url, username, password);

  • 相关阅读:
    hdu5321 beautiful set(莫比乌斯反演)
    BZOJ 5104 Fib数列(二次剩余+BSGS)
    高次同余方程,二次同余方程学习笔记
    CF587F Duff is Mad(AC自动机+树状数组+分块)
    51nod 麦克打电话(AC自动机+树状数组)
    BZOJ 3881 [Coci2015]Divljak(AC自动机+树状数组)
    51nod 1526 分配笔名(Trie树+贪心)
    BZOJ 3790 神奇项链(回文自动机+线段树优化DP)
    CF666E Forensic Examination(后缀自动机+线段树合并)
    [HAOI2016]找相同字符(SAM+DP)
  • 原文地址:https://www.cnblogs.com/DONGb/p/7453514.html
Copyright © 2020-2023  润新知