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);

0822JDBC--Java连接数据库的更多相关文章

  1. Java连接数据库的辣几句话

    Java连接数据库的辣几句话 1.java连接Oracle数据库 使用以下代码三个步骤: 1.下载ojdbc.jar包并导入项目中.附下载地址:http://download.csdn.net/det ...

  2. servlet中Java连接数据库后的基本操作

    servlet中Java连接数据库后的基本操作 在eclipse中新建一个工程:login 在Server中新建一个服务器,基本的操作不用说了,在前两天的笔记中可以找到; 需要知道数据库的用户名和密码 ...

  3. java连接数据库

    package com.shsxt.jdbcs; import java.sql.Connection; import java.sql.DriverManager; import java.sql. ...

  4. Java连接数据库的4中方式详解

    Java连接数据库的方式有多种:根据所需要的不同数据库驱动分,分为四种: 1:1类驱动.这就是JDBC-ODBC桥的方式. 但这种方式不适合程序的重用与维护,不推荐使用.需要数据库的ODBC驱动. 2 ...

  5. Java连接数据库 #06# SQL与代码分离(精化版本)

    索引 DAO层依赖关系草图 应用示例 接Java连接数据库#05#,对代码进行改进. DAO层依赖关系草图 应用示例(只需3步!) 1.首先定义接口类: package org.sample.shop ...

  6. Java连接数据库 #05# SQL与代码分离

    索引 读取html中的SQL语句 缺陷总结 在Java连接数据库 #04#里大概是这样放sql语句的: package org.sample.shop.db.queryrunner; import o ...

  7. java连接数据库(jdbc)调用配置文件

    各种语言都有自己所支持的配置文件,后缀名“.properties”结尾的就是其中之一. 在java连接数据库时,采取读取配置文件的方式,来获取数据库连接. 新建jdbc.properties文件,内容 ...

  8. Java连接数据库 #04# Apache Commons DbUtils

    索引 通过一个简单的调用看整体结构 Examples 修改JAVA连接数据库#03#中的代码 DbUtils并非是什么ORM框架,只是对原始的JDBC进行了一些封装,以便我们少写一些重复代码.就“用” ...

  9. JAVA连接数据库 #03# HikariCP

    索引 为什么用数据库连接池? HikariCP快速入门 依赖 简单的草稿程序 设置连接池参数(只列举常用的) MySQL配置 修改Java连接数据库#02#中的代码 测试 为什么用数据库连接池? 为什 ...

  10. Java连接数据库 #02# JDBC经典套路

    内容索引 LocalConnectionFactory.java LocalConnectionProxy.java ProfileDAO.java-2.0 ProfileDAOImpl.java-2 ...

随机推荐

  1. Java反射中method.isBridge() 桥接方法

    桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节码和 1.5 版本前的字节码相兼容,由编译器自动生成的方法.我们可以通过Method.isBridge()方法来判断一个方法是 ...

  2. 【BZOJ4818】【SDOI2017】序列计数 [矩阵乘法][DP]

    序列计数 Time Limit: 30 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description Alice想要得到一个长度为n的序 ...

  3. bzoj 1594: [Usaco2008 Jan]猜数游戏——二分+线段树

    Description 为了提高自己低得可怜的智商,奶牛们设计了一个新的猜数游戏,来锻炼她们的逻辑推理能力. 游戏开始前,一头指定的奶牛会在牛棚后面摆N(1 <= N<= 1,000,00 ...

  4. springboot:Spring boot中mongodb的使用(山东数漫江湖)

    mongodb是最早热门非关系数据库的之一,使用也比较普遍,一般会用做离线数据分析来使用,放到内网的居多.由于很多公司使用了云服务,服务器默认都开放了外网地址,导致前一阵子大批 MongoDB 因配置 ...

  5. 【CF1009F】 Dominant Indices (长链剖分+DP)

    题目链接 \(O(n^2)\)的\(DP\)很容易想,\(f[u][i]\)表示在\(u\)的子树中距离\(u\)为\(i\)的点的个数,则\(f[u][i]=\sum f[v][i-1]\) 长链剖 ...

  6. react组件之间的几种通信情况

    组件之间的几种通信情况 父组件向子组件通信 子组件向父组件通信 跨级组件通信 没有嵌套关系组件之间的通信 1,父组件向子组件传递 React数据流动是单向的,父组件向子组件通信也是最常见的;父组件通过 ...

  7. Eureka服务续约(Renew)源码分析

    主要对Eureka的Renew(服务续约),从服务提供者发起续约请求开始分析,通过阅读源码和画时序图的方式,展示Eureka服务续约的整个生命周期.服务续约主要是把服务续约的信息更新到自身的Eurek ...

  8. javascript中null与undefined的区别

    1.null null是一个对象,表示一个空对象指针,typeof(null)返回object,null参与运算时会转化为0,将对象初始化为null,可以知道变量是否保存了对象的引用 2.undefi ...

  9. 【EverydaySport】健身笔记——动态牵拉

    动态牵拉,包含了动态和牵拉两个概念.动态牵拉要求牵拉的过程要伴随着走路,即行进中牵拉,动态牵拉不仅可以使得肌肉得到延展,还可以激活肌肉协同工作,发展协调性.灵活性.进行动态牵拉时每个动作要进行5~10 ...

  10. 真正的上锁前,为何要调用preempt_disable()来关闭抢占的case【转】

    转自:http://blog.csdn.net/kasalyn/article/details/11473885 static inline void raw_spin_lock(raw_spinlo ...