1 JDBC概念

问题:JDBC的本质是什么,解决了什么问题?

2.API讲解

<1> DriverManager的作用

问题:DriverManager有什么作用?

作用一:注册驱动

DriverManager.registerDriver(new Driver()),但是我们不使用,我们使用Class.forName(“com.mysql.jdbc.Driver”)。

作用二:获取连接

​ Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/db14”, “root”, “root”);

参数1:连接的URL地址,如果是本机并且端口号是3306,那么localhost:3306可以省略不写,也就是jdbc:mysql:///db14。

参数2:用户名

参数3:密码

<2> Connection的作用

问题:Connection对象有什么作用?

作用一:创建执行SQL语句的执行者对象

​ Statement对象:Statement statement = conn.createStatement();

​ PreparedStatement预编译对象:PreparedStatement pstmt=conn.prepareStatement("")

作用二:事务管理
conn.setAutoCommit(false);  //设置自动提交为false就表示开启事务
conn.commit(); //提交事务
conn.rollback();//回滚事务

<3> Statement的作用

问题:Statement对象有什么作用?

作用:执行SQL语句

执行DQL语句(查询):ResultSet executeQuery(SQL);

​ 参数:传递要执行的查询语句

​ 返回值:封装查询结果的结果集对象。

执行DML语句(增删改):int executeUpdate(SQL);

​ 参数:要执行的增删改语句

​ 返回值:影响的行数,可以通过影响的行数判断是否执行成功。

<4> ResultSet的作用

问题:ResultSet对象有什么作用?

作用一:判断是否有下一行数据:boolean next()

作用二:获取该行的数据: Xxx getXxx(“列名”);

​ Xxx表示不同的数据类型,例如:int getInt(“sid”); String getString(“name”)

3.JDBC入门案例

jdbc表:

<1>入门案例步骤

【前提】:导入mysql的驱动jar包
【第一步】:注册驱动,告诉程序使用哪种数据库
【第二步】:获取连接,需要传递url、用户名、密码参数
【第三步】:获取执行SQL的对象,负责CRUD
【第四步】:执行查询操作,获取结果
【第五步】:处理结果
【第六步】:释放资源

<2>代码实现

public class JdbcDemo1 {public static void main(String[] args) throws ClassNotFoundException, SQLException {//【前提】:导入mysql的驱动jar包//1.注册驱动,告诉程序使用哪种数据//不需要我们自己调用registerDriver方法注册驱动//Driver中有静态代码块,只要我们加载它,就能注册驱动Class.forName("com.mysql.jdbc.Driver");//mysql5之后在配置文件中配置,可省略不写//2.获取连接,需要传递url、用户名、密码参数//连接本机localhost:3306可以不写Connection conn = DriverManager.getConnection("jdbc:mysql:///jdbc", "root", "123456");// Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc", "root", "123456");//3.获取执行SQL的对象,负责CRUD[增查改删]Statement statement = conn.createStatement();//4.执行sql语句,并返回结果ResultSet rs = statement.executeQuery("select * from student;");//5.处理结果while(rs.next()){//如果返回true表示有下一行元素//获取并打印int sid = rs.getInt("sid");String name = rs.getString("name");//不区分大小写int age = rs.getInt("age");String birthday = rs.getString("birthday");//Date birthday1 = rs.getDate("birthday"); //两种获取方法都行System.out.println(sid +"\t"+name+"\t"+age +"\t"+birthday);}//6.释放资源rs.close();statement.close();conn.close();}
}

注:URL参数jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf8&usesSL=true
mysql5.0之后可省略不写
useUnicode:支持中文编码
characterEncoding=utf8:字符集设为utf8
utf8&usesSL=true:使用安全的连接(防止乱七八糟的错误)

mysql的驱动jar包资源下载

JDBC入门案例及相关API概述相关推荐

  1. QLExpress 系列入门教程-07-QLExpress 相关 API 简介

    目录 目录 功能扩展API列表 function 相关 API Operator 相关 API 宏定义相关 API java class 的相关 API 语法树解析变量.函数的 API 语法解析校验 ...

  2. 2021年大数据Flink(八):Flink入门案例

    目录 Flink入门案例 前置说明 API 编程模型 准备工程 pom文件 log4j.properties Flink初体验 需求 编码步骤 代码实现 Flink入门案例 前置说明 API API ...

  3. MySQL攻略 - JDBC程序SQL注入,PreparedStatement接口详解与案例练习,JDBC相关API小结

    文章目录 SQL注入 Statement详解 基本介绍 Navicat演示SQL注入 JDBC演示SQL注入 PreparedStatement详解 基本介绍 预处理好处 预处理案例(selete语句 ...

  4. Mybatis-快速入门及相关API

    什么是框架? 什么是ORM? 什么是Mybatis? 原始JDBC操作的分析 原始 JDBC 的操作问题解决方案 Mybatis的概述 Mybatis的快速入门Demo MyBatis开发步骤 详细步 ...

  5. 2023最新版本Activiti7系列-Activiti7概述和入门案例

    一.Activiti7概述 官网地址:https://www.activiti.org/   Activiti由Alfresco软件开发,目前最高版本Activiti 7.是BPMN的一个基于java ...

  6. MapReduce入门(一)—— MapReduce概述 + WordCount案例实操

    MapReduce入门(一)-- MapReduce概述 文章目录 MapReduce入门(一)-- MapReduce概述 1.1 MapReduce 定义 1.2 MapReduce 优缺点 1. ...

  7. ActiveMQ-01-MQ概述,安装,入门案例

    文章目录 01.MQ概述 MQ的产品种类和对比 MQ的产生背景 MQ的主要作用 MQ的定义 MQ的特点 02.RPC架构 什么是RPC架构? 常见的RPC架构 03.ActiveMQ安装 04.入门案 ...

  8. RabbitMQ常用操作命令和入门案例(一对一的简单模式)

    RabbitMQ常用操作命令和入门案例(一对一的简单模式) 一.RabbitMQ常用操作命令 常见命令列表: # 前台启动Erlang VM和RabbitMQrabbitmq-server # 后台启 ...

  9. Phoenix安装、入门案例

    目录 一.Phoenix简介 1.什么是Phoenix 2.Phoenix性能 二.Phoenix的安装部署 三.Phoenix入门案例 四.建立与HBase表映射 五.使用Phoenix构建二级索引 ...

最新文章

  1. centos 服务详解
  2. 手把手玩转协同编辑(1):AST (Address Space Transformation)地址空间转换算法 基本介绍...
  3. 近期北京动点软件发现XXX公司盗用我公司WPF项目案例
  4. Java的设计模式----strategy(策略模式)
  5. .计算机自动关机或重启,电脑自动关机或者重启怎么处理
  6. some understanding of《Improved Use of Continuous Attributes in C4.5》
  7. Python入门基础篇(四)字符串的常用操作,全面易懂,简单实用!!!
  8. 30件你不知道可以通过Internet来办到的事
  9. python-excel 批量新建excel工作表
  10. 解决:Unable to execute dex: GC overhead limit exceeded
  11. uni-app开发APP上架应用市场遇到的坑
  12. dB、dBm、dBw的含义和转化关系
  13. Ubuntu支持LinuxONE大型机:为云而生的强强新组合
  14. 初创企业融资发展的几个阶段
  15. 金丝桃素白蛋白纳米粒-大肠杆菌血清抗体复合物|凝血因子Ⅷ人血清白蛋白HSA纳米粒|地奥司明人血清白蛋白纳米粒
  16. URAL 2032 - Conspiracy Theory and Rebranding【本源勾股数组】
  17. 度娘小技巧(搜索引擎高级搜索)
  18. 禁止OpenCore修改电脑启动顺序
  19. python语音合成需要的库_语音合成的几种方案实现与分析
  20. 02-字体相关的样式

热门文章

  1. 2020-10-03
  2. [指数型生成函数专练]chocolate,红色病毒问题,排列组合,字串数
  3. YBTOJ:斐波拉契(矩阵快速幂)
  4. P7405-[JOI 2021 Final]雪玉【二分】
  5. nssl1209-奇怪的队列【贪心,权值线段树】
  6. 2018CCPC吉林赛区(重现赛)补题部分——F线段树待补
  7. 医院(jzoj 1611)
  8. Sentinel(十)之系统自适应限流
  9. Spark入门(十一)之排序
  10. Hadoop入门(十五)Mapreduce的数据排序程序