概念

JDBC:java database connectivity SUN公司提供的一套操作数据库的标准规范。
JDBC与数据库驱动的关系:接口与实现的关系。

JDBC规范(掌握四个核心对象):

DriverManager:用于注册驱动
Connection: 表示与数据库创建的连接
Statement: 操作数据库sql语句的对象
ResultSet: 结果集或一张虚拟表


案例

import java.sql.*;
import java.util.Properties;//原生JDBC demo
public class JDBC_Demo {public static void main(String[] args) throws ClassNotFoundException, SQLException {//注册驱动Class.forName("com.mysql.jdbc.Driver");Properties properties = new Properties();properties.setProperty("user", "root");properties.setProperty("password", "123456");//创建连接对象,第一个参数数据库的url,第二个参数账号密码等Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db2", properties);//创建一个Statement对象,用于将SQL语句发送到数据库Statement statement = connection.createStatement();String sql = "select empno,ename,job from emp";//执行给定的SQL语句,该语句返回一个ResultSet对象。//注意:不能在PreparedStatement或CallableStatement上调用此方法。ResultSet resultSet = statement.executeQuery(sql);while (resultSet.next()) {System.out.println(resultSet.getString("empno"));}}
}

方法解析

createStatement()
创建一个Statement对象,用于将SQL语句发送到数据库。 不带参数的SQL语句通常使用Statement对象执行。 如果多次执行同一条SQL语句,则使用PreparedStatement对象可能会更有效。
默认情况下,使用返回的Statement对象创建的结果集的类型为TYPE_FORWARD_ONLY,并发级别为CONCUR_READ_ONLY。 可以通过调用确定所创建结果集的可保存性.

resultSet.next()
将光标从当前位置向前移动一行。 ResultSet游标最初位于第一行之前; 对该方法的第一次调用next使第一行成为当前行; 第二个调用使第二行成为当前行,依此类推。
当对next方法的调用返回false时,光标将位于最后一行之后。 任何需要当前行的ResultSet方法的调用都会导致抛出SQLException。 如果结果集类型为TYPE_FORWARD_ONLY,则由供应商指定其JDBC驱动程序实现将返回false还是在后续对next的调用上引发SQLException。
如果为当前行打开了输入流,则对next方法的调用将隐式将其关闭。 读取新行时,将清除ResultSet对象的警告链。

总结

由于原生jdbc用起来比较繁琐,一般使用三方库进行简化,比如连接池C3P0库以及方便处理查询结果的DButils库.

java JDBC入门及案例演示相关推荐

  1. Java Web 网络商城案例演示五(用户激活)

    Java Web 网络商城案例演示五(用户激活) 1.用户激活 2.登录 3.退出 4.抽取公共页面 5.查询所有分类 6.首页热门商品_最新商品显示 7.商品详情显示 8.基础分页操作 9.首页分类 ...

  2. Java Web 网络商城案例演示一、(环境搭建)

    一.数据库建立 分析以及创建数据库 -- 创建数据库 drop database if exists `store_40`; create database `store_40`; -- 使用数据库 ...

  3. Java Web 网络商城案例演示十五 订单详情功能(提交订单支付界面)

    订单详情功能(提交订单支付界面) 原理分析 步骤实现: 1.准备工作:order_list.jsp当中修改链接 提交当前订单编号 <a href="${pageContext.requ ...

  4. Java Web 网络商城案例演示十六 订单详情功能(支付功能的实现使用易付宝)

    sValue.append(p3_Amt); // 交易币种 sValue.append(p4_Cur); // 商品名称 sValue.append(p5_Pid); // 商品种类 sValue. ...

  5. java jdbc jar包_大数据从入门到深入:JavaEE 之 数据库技术 JDBC(1)

    1章 JDBC 1.1 JDBC概述 JDBC(Java DataBase Connectivity,java动态数据 库连接技术)是一种用于执行SQL语句的Java API : Applicatio ...

  6. JDBC入门案例及相关API概述

    1 JDBC概念 问题:JDBC的本质是什么,解决了什么问题? 2.API讲解 <1> DriverManager的作用 问题:DriverManager有什么作用? 作用一:注册驱动 D ...

  7. 案例演示Python二维列表与Java二维数组

    1.Python二维列表案例演示 运行程序,结果如下: 2.案例演示Java二维数组 package net.hw.test;/*** 功能:二维数组用法示例* 作者:华卫* 日期:2013年12月1 ...

  8. Java新手入门200例124之用JDBC连接Mysql数据库

    文章目录 作者简介 引言 导航 热门专栏推荐 一.创建web项目 二.加入Mysql驱动 三.编写查询代码 四.测试查询代码 五.编写插入代码 六.编写修改代码 七.编写删除代码 小结 导航 热门专栏 ...

  9. VRTK基础入门案例演示

    本章主要内容 本章节主要向读者介绍VRTK具体使用方法,如何在SteamVR之上使用VRTK,VRTK具体的应用以及好处都有哪些,会具体分析VRTK所提供给我们的基础应用场景,通过小的案例来进行实际操 ...

最新文章

  1. 2016年第七届蓝桥杯C/C++ A组国赛 —— 第三题:打靶
  2. 【WP 8.1开发】解决摄像头翻转问题(RuntimeApp篇)
  3. 使用Model-View-ViewModel使用Dart Streams使Flutter中的代码更清晰
  4. python 判断当前系统的Python编译器类型
  5. sap未分摊差异怎么处理_物料主数据价格控制及差异问题
  6. linux和Windows之间互传文件
  7. 正则表达式-验证带千分号的,带任意位小数的数字类型
  8. 推送后更改git commit消息(假设没有人从远程拉出)
  9. 游戏反编译工具dnSpy
  10. 内存碎片产生原因及解决方法
  11. 半导体上下游最核心供应商名单(建议收藏)
  12. 浙江大学计算机学院足球队,校三好杯 | 海洋学院足球队:再创佳绩
  13. 开源护眼工具LightBulb2.3.3汉化说明
  14. SSM框架练手项目【虎牙个人博客】手把手带你搭建自己的个人博客
  15. 【普及组_在线赛】班级聚会(reuntion)
  16. 安徽省计算机二级各部分分值分布,计算机二级各部分分值
  17. html 不出现水平滚动条,html – 不带滚动条的水平滚动
  18. 美国股市暴跌,中国路在何方
  19. 【c++入门(2)】关联容器map
  20. MATLAB App Designer入门实战(三)

热门文章

  1. Cloudflare配置网站免费CDN加速使用教程
  2. 学习pytorch的一些自己犯过的错误而总结的注意事项,估计其他也会使用
  3. Eclipse中查看JDK类库的源代码
  4. sum 去重_总结leetcode上【排列问题】【组合问题】【子集问题】回溯算法去重的两种写法!...
  5. 查看uboot变量地址_华为FIT AP通过Uboot切换FAT模式
  6. java requestparams_详解在Spring MVC中使用注解的方式校验RequestParams
  7. Linux实现删除撤回的方法。
  8. vue一个页面用两个以上页面 时时刷新
  9. 搜索c盘大文件_硬核干货,如何给c盘“减肥”?
  10. hive 安装_Hive安装部署及使用——1.2.1版本