1. JDBC的简介
概述: 就是Java用来操作不同数据库(DBMS)的类库(技术), 本质就是一些类和接口.
/*
类: DriverManager
接口: Driver, Connection, Statement, PreparedStatement, ResultSet
*/ //Java Data Base Connectivity, Java数据库连接(技术). /*
集合: 就是Java用来存储不同类型数据的容器, 本质就是一些类和接口.
接口: Collection, Set, List, Map
类: ArrayList, HashSet, HashMap IO流: 就是Java用来传输数据的技术, 本质就是一些类和接口.
抽象类: InputStream, OutputStream, Reader, Writer 实现类: FileInputStream, BufferedInputStream, FileReader, BufferedReader 总结: 集合的顶层都是接口, IO流的顶层都是抽象类.
*/ 核心功能:
A: 连接数据库.
B: 向数据库发送SQL语句.
C: 操作数据库返回的 结果集.
如果操作的是更新语句(增删改), 返回的结果集是: int 类型
如果操作的是查询语句, 返回的结果集是: ResultSet 类型 2. 什么是驱动?
就是设备间进行通信的桥梁. 3. JDBC的原理是什么:
我们知道JDBC是用来操作不同数据库的, 但是操作不同的数据库需要使用不同的驱动.例如: 我们想操作MySQL数据库, 就需要安装MySQL的驱动, 我们想操作Oracle数据库, 就需要安装Oracle数据库的驱动, 如果我们操作SQLServer数据库,
就需要安装SQLServer数据库的驱动, 这样做是比较麻烦的. 因为Java已经提供了大量的类和接口了, 但是要要求额外记忆一些
其他的类和接口, 这样就增加了程序员的学习难度.
后来Sun公司发现了这个问题, 就和各大数据库生产商协商决定, 由Sun公司提供统一的规范(就是一些类和接口), 数据库生产商提供具体的实现. Sun公司提供的这些类和接口就是: JDBC. 4. JDBC的操作步骤
     1) 导入驱动.
2) 注册驱动.
3) 获取连接对象.
4) 根据连接对象, 获取可以操作SQL语句的对象.
5) 执行SQL语句, 获取结果集.
如果操作的是更新语句(增删改), 返回的结果集是: int 类型
如果操作的是查询语句, 返回的结果集是: ResultSet 类型
6) 操作结果集.
7) 释放资源. 5. JDBC的API详解之: DriverManager(类)
作用: 主要用于驱动管理及获取连接对象的. 作用一: 注册驱动.
//MySQL/Oracle/SqlServer的驱动
public static void registerDriver(Driver driver); //注册驱动的意思, 形参是谁的驱动, 就注册谁. //Driver类就是MySQL数据库提供的 驱动类
public class com.mysql.jdbc.Driver implements java.sql.Driver{ } //我们不用上述的方式注册驱动, 因为上述注册驱动的方式会导致驱动程序注册两次.
//所以: 我们通过反射的方式加载 com.mysql.jdbc.Driver类的字节码文件, 从而来自动 注册驱动.
Class.forName("com.mysql.jdbc.Driver"); //驱动类的全路径 作用二: 获取连接对象.
public static Connection getConnection(String url, String username, String password); //获取连接对象.
/*
url: 数据库连接字符串.
格式:
连接方式:要操作的DBMS://要操作的数据库的IP地址或者主机名:端口号/要操作的具体的数据库
协议:子协议:要操作的DBMS://要操作的数据库的IP地址或者主机名:端口号/要操作的具体的数据库 例如:
jdbc:mysql://127.0.0.1:3306/tempDb
jdbc:mysql://localhost:3306/tempDb 如果操作的是本地数据库(DBMS), 上述的写法可以优化为:
jdbc:mysql:///tempDb username: 要操作的数据库(DBMS)的账号 password: 要操作的数据库(DBMS)的密码 */ 6. JDBC的API详解之: Connection(接口)
Connection: 连接对象 作用一: 获取可以执行SQL语句的对象.
public Statement createStatement(); //获取可以执行SQL语句的对象. public PreparedStatement prepareStatement(String sql); //获取可以执行SQL语句的对象, 具有预编译功能, 可以解决SQL注入攻击问题. 作用二: 可以进行事务管理.
public void setAutoCommit(boolean flag); //设置是否开启事务的自动提交功能, 相当于我们昨天讲解的: 开启事务.
public void commit(); //提交事务
public void rollback(); //事务回滚
public void setTransactionIsolation(int level); //设置事务的隔离级别 Connection接口中的常量:
public static final int TRANSACTION_NONE = 0;
public static final int TRANSACTION_READ_UNCOMMITTED = 1;
public static final int TRANSACTION_READ_COMMITTED = 2;
public static final int TRANSACTION_REPEATABLE_READ = 4;
public static final int TRANSACTION_SERIALIZABLE = 8; 7. JDBC的API详解之: Statement(接口)
Statement: 可以操作SQL语句的对象. 作用一: 执行SQL语句.
public ResultSet executeQuery(String sql); //执行查询语句
public int executeUpdate(String sql); //执行更新语句 作用二: 可以执行批处理. //批处理只针对更新语句有效. public void addBatch(String sql); //把SQL语句添加到批处理(指令)中.
public int[] executeBatch(); //执行批处理(指令)
public void clearBatch(); //清除批出(指令)
8. JDBC的API详解之: ResultSet(接口)
ResultSet: 执行查询语句后的结果集对象. public boolean next(); //判断结果集中是否还有数据. 类似于Iterator#hasNext(). public XXX getXxx(int columnIndex); //根据列的编号, 获取该列的信息, Xxx是数据类型的意思
public XXX getXxx(String columnName); //根据列的名字, 获取该列的信息, Xxx是数据类型的意思, 建议用这种方式.
//getInt(), getString(), getObject();
Properties集合类:
概述: 它是一个双列集合, 键值都是String类型, 它是Hashtable集合的子类.
//记忆: Properties集合是唯一可以直接和IO流相结合使用的集合类.
//它可以直接从流中读取数据, 也可以直接写数据到流中. 成员方法:
public void load(InputStream is); //从流中读取数据
public void load(Reader r); //从流中读取数据 public void store(OutputStream os); //写数据到流中
public void store(Writer w); //写数据到流中 public String getProperty(String key); //根据键获取值
public void setProperty(String key,String value); //设置键值对

java基础之JDBC一:概述及步骤详解的更多相关文章

  1. Java基础-DButils工具类(QueryRunner)详解

    Java基础-DButils工具类(QueryRunner)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC ...

  2. Java基础-进程与线程之Thread类详解

    Java基础-进程与线程之Thread类详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.进程与线程的区别 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程 ...

  3. java基础(十六)----- equals()与hashCode()方法详解 —— 面试必问

    本文将详解 equals()与hashCode()方法 概述 java.lang.Object类中有两个非常重要的方法: public boolean equals(Object obj) publi ...

  4. Java中JDBC连接数据库代码和步骤详解总结

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤:         1.加载JDBC驱动程序:         在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Jav ...

  5. Java 基础【08】.class getClass () forName() 详解

    类名.class是Class对象的句柄,每个被加载的类,在jvm中都会有一个Class对象与之相对应. 如果要创建新的对象,直接使用Class对象的局部class.forName就可以了,不需要用ne ...

  6. Java 基础【11】.class getClass () forName() 详解

    类名.class是Class对象的句柄,每个被加载的类,在jvm中都会有一个Class对象与之相对应. 如果要创建新的对象,直接使用Class对象的局部class.forName就可以了,不需要用ne ...

  7. Java基础(十四)--装箱、拆箱详解

    Java中基本数据类型都有相对应的包装类 什么是装箱?什么是拆箱? 在Java SE5之前,Integer是这样初始化的 Integer i = new Integer(10); 而在从Java SE ...

  8. Java基础系列(22)- For循环详解

    For循环 虽然所有循环结构都可以用while和dowhile表示,但是Java提供了另外一种语句for循环,使一些循环结构变动更加简单 for循环语句是支持迭代的一种通用结构,是最有效.最灵活的循环 ...

  9. java基础(11) -JDBC

    java基础(11) -JDBC jdbc 1.装载驱动 载入跟数据库建立连接的驱动 /* sql server: String className ="com.microsoft.sqls ...

随机推荐

  1. BasicExcel的使用

    from:http://www.cnblogs.com/paullam/p/3705924.html   使用的平台:vs2013 控制台 创建时需要注意, 安全开发生命周期(SDL)检查 不能勾选( ...

  2. 一种 jquery 检索方案

    整理自:http://www.cnblogs.com/linjiqin/archive/2011/03/18/1988464.html <!DOCTYPE HTML PUBLIC "- ...

  3. 抛弃Https让Cas以Http协议提供单点登录服务

    本文环境: 1.apache-tomcat-7.0.50-windows-x86 2.cas-server-3.4.11 3.cas-client-3.2.1 将cas-server-webapp-3 ...

  4. Hibernate中 一 二级缓存及查询缓存(2)

    缓存:缓存是什么,解决什么问题?  位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为缓存Cache.缓存目的:让数据更接近于应用程序,协调速度不匹配,使访问速度更 ...

  5. ORA-28595: Extproc 代理: DLL 路径无效解决办法

    报错信息: ORA-28595: Extproc 代理: DLL 路径无效 ORA-06512: 在 "SDE.ST_GEOMETRY_SHAPELIB_PKG", line 70 ...

  6. font-face自定义字体使用方法

    今天闲的蛋疼小七来聊一聊关于css3的font-face属性的使用方法: 首先应该好多人没用过这个属性,那只能说你们的设计师还是有人性的, 一旦电脑系统没有的特殊字体或者你设计师故意装13为难你就需要 ...

  7. 集群/分布式环境下,Session处理策略

    前言 在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理.如果不做任何处理的话,用户将出现频繁登录的现象.比如集中中存在A.B两台服务器,用户在第一次访问网站是,Ngin ...

  8. Delphi从Internet下载文件

    Delphi从Internet下载文件   今天在做拍卖系统的时候,因考虑到网络状况问题,需要将拍品所有信息下载到本机,包括拍品图片,因此需要实现从Internet下载文件的功能.      下面是代 ...

  9. mysql导入导出表结构

    mysql导入导出表结构 导出整个库的表结构如下:mysqldump -uroot -p -d databasename > createtab.sql 如果只想导出表: test1,test2 ...

  10. saas服务提供商

    这段时间接触了不少行业的东西,这里谈几点肤浅的看法.从市场行情上讲,SaaS风口还在,不过热度明显向大数据.物联网.人工智能.区块链等转移. 做得比较好的有这些SaaS提供商,每个领域的都有那么几家的 ...