1.JDBC:Java DataBase Connectivity  可以为多种关系型数据库DBMS 提供统一的访问方式,用Java来操作数据库
2.JDBC API 主要功能:
三件事,具体是通过以下类/接口实现:
DriverManager : 管理jdbc驱动
Connection: 连接(通过DriverManager产生)

Statement(PreparedStatement) :增删改查  (通过Connection产生 )
CallableStatement  : 调用数据库中的 存储过程/存储函数  (通过Connection产生 )

Result :返回的结果集  (上面的Statement等产生 )

Connection产生操作数据库的对象:

Connection产生Statement对象:createStatement()
Connection产生PreparedStatement对象:prepareStatement()
Connection产生CallableStatement对象:prepareCall();

Statement操作数据库:
增删改:executeUpdate()
查询:executeQuery();

ResultSet:保存结果集 select * from xxx
next():光标下移,判断是否有下一条数据;true/false
previous():  true/false
getXxx(字段名|位置):获取具体的字段值

PreparedStatement操作数据库:
public interface PreparedStatement extends Statement 
因此
增删改:executeUpdate()
查询:executeQuery();
--此外
赋值操作 setXxx();

PreparedStatement与Statement在使用时的区别:
1.Statement:
sql
executeUpdate(sql)

2.
PreparedStatement:
sql(可能存在占位符?)
在创建PreparedStatement 对象时,将sql预编译 prepareStatement(sql)
executeUpdate()
setXxx()替换占位符?

推荐使用PreparedStatement:原因如下:
1.编码更加简便(避免了字符串的拼接)
String name = "zs" ;
int age = 23 ;

stmt:
String sql =" insert into student(stuno,stuname) values('"+name+"',  "+age+" )    " ;
stmt.executeUpdate(sql);

pstmt:
String sql =" insert into student(stuno,stuname) values(?,?) " ;
pstmt = connection.prepareStatement(sql);//预编译SQL
pstmt.setString(1,name);
pstmt.setInt(2,age);

2.提高性能(因为 有预编译操作,预编译只需要执行一次)
需要重复增加100条数 
stmt:
String sql =" insert into student(stuno,stuname) values('"+name+"',  "+age+" )    " ;
for(100)
stmt.executeUpdate(sql);

pstmt:
String sql =" insert into student(stuno,stuname) values(?,?) " ;
pstmt = connection.prepareStatement(sql);//预编译SQL
pstmt.setString(1,name);
pstmt.setInt(2,age);
for( 100){
pstmt.executeUpdate();
}

3.安全(可以有效防止sql注入)
sql注入: 将客户输入的内容  和 开发人员的SQL语句 混为一体

stmt:存在被sql注入的风险  
(例如输入  用户名:任意值 ' or 1=1 --
       密码:任意值)
分析:
select count(*) from login where uname='任意值 ' or 1=1 --' and upwd ='任意值'  ;
select count(*) from login where uname='任意值 ' or 1=1 ;
select count(*) from login ;

select count(*) from login where uname='"+name+"' and upwd ='"+pwd+"'

pstmt:有效防止sql注入

推荐使用pstmt

3.jdbc访问数据库的具体步骤:
a.导入驱动,加载具体的驱动类
b.与数据库建立连接
c.发送sql,执行
d.处理结果集 (查询)

4.
数据库驱动
        驱动jar                    具体驱动类                        连接字符串
Oracle        ojdbc-x.jar                oracle.jdbc.OracleDriver                jdbc:oracle:thin:@localhost:1521:ORCL
MySQL        mysql-connector-java-x.jar        com.mysql.jdbc.Driver                    jdbc:mysql://localhost:3306/数据库实例名
SqlServer    sqljdbc-x.jar                com.microsoft.sqlserver.jdbc.SQLServerDriver        jdbc:microsoft:sqlserver:localhost:1433;databasename=数据库实例名

使用jdbc操作数据库时,如果对数据库进行了更换,只需要替换:驱动、具体驱动类、连接字符串、用户名、密码

JDBC--Java Database Connectivity相关推荐

  1. Java小白修炼手册--第四阶段--JDBC(Java Database Connectivity : Java访问数据库的解决方案 )

    目录 JDBC原理 JDBC标准 JDBC是什么 使用JDBC优点 JDBC接 口及数据库厂商实现 ​JDBC工作原理 Driver ( 驱动程序)接口及驱动类加载 ​Connection( 连接,关 ...

  2. 01-JDBC概念--JDBC(Java Database Connectivity:Java数据库连接):使用jdbc实现Java与数据库MySQL连接

    JDBC自学教程–终篇总结: 地址:http://blog.csdn.net/baidu_37107022/article/details/72600018 1.JDBC(Java Database ...

  3. java连接jpi方式_Java数据库连接(Java Database Connectivity)

    什么是jdbc? JDBC的全称是Java数据库连接(Java Database Connectivity),它是一套用于执行SQL语句的Java API.应用程序可通过这套API连接到关系型数据库, ...

  4. JDBC:Java DataBase Connection

    目录 第一节:JDBC入门 1.  概念 2. JDBC驱动 3.  JDBC 访问数据库的步骤 4. 几个重要的接口和类 5.  具体操作 第二节:Dao封装 1.简单打开关闭的封装 2. 查询封装 ...

  5. JDBC连接数据库(Java DataBase Connectivity,java)

    通过JDBC操作数据库(以mysql为例) 1.官网下载JDBC的相关JAR包 [https://dev.mysql.com/downloads/connector/j/] 2.解压后,导入jar包 ...

  6. JDBC(Java Data Base Connectivity)基本用法

    一.什么是JDBC JDBC(Java Database Connection)为java开发者使用数据库提供了统一的编程接口,它由一组java类和接口组成.是java程序与数据库系统通信的标准APl ...

  7. 【学习笔记】JDBC:java提供的专门操纵数据库的API JDBC驱动程序的类型 JDBC常用的类与接口

    JDBC技术 JDBC的全称是Java DataBase Connectivity,是一套面向对象的应用程序接口,指定了统一的访问各种关系型数据库的标准接口,JDBC是一种底层的API,因此访问数据库 ...

  8. 快速上手JDBC——Java如何在底层操作数据库

    我们为什么学习这个,用一句话概括,JDBC就是用Java语言操作关系型数据库 原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句 同理,以后学习用J ...

  9. MySQL吉连_Learn Jdbc : Java, Jdbc, Odbc

    Learn Jdbc : Java, Jdbc, Odbc 介绍 Learn Jdbc : Java, Jdbc, Odbc Learn JDBC we precisely name what we ...

最新文章

  1. 里签名boot有什么用_面膜里的塑料纸有什么用?原来这里大有学问
  2. 微信 小程序组件 搜索分类 带缓存(终极 上线版)
  3. 【小白学PyTorch】12.SENet详解及PyTorch实现
  4. Linux两个进程交换信息,如何在Linux中的进程之间交换二进制数据
  5. mac 终端 svn 命令
  6. 经典案例:如何优化Oracle使用DBlink的SQL语句
  7. 2020移动应用设计流行素材|交互动画
  8. Java 并没有死!
  9. 搜狗开源最新NLP研究成果,打造业内最全机器阅读理解工具包SMRC
  10. DeepStream不支持多 RTSP源(多个摄像头)
  11. ListView 控件与 ImageList 控件
  12. 《孙子兵法》的逻辑结构
  13. tplink怎么进去_在TP-Link工作体验如何?
  14. 基于Gin+Vue+ElementUI实现的OA办公系统
  15. DevJoy 展商大名单+活动剧透!逛开发者游园会,体验沉浸式打 Bug!
  16. 常见的请求错误HTTP状态码
  17. [渝粤教育] 西安交通大学 工程热力学 参考 资料
  18. 设计一个十进制纯机械乘法器,继续大数乘法
  19. tensorflow slim 安装教程
  20. 仿真用计算机配置,需要进行仿真,选什么配置的电脑比较好

热门文章

  1. LeetCode 947. 移除最多的同行或同列石头(并查集)
  2. LeetCode 1287. 有序数组中出现次数超过25%的元素
  3. LeetCode 1262. 可被三整除的最大和(DP)
  4. 服务器换完主板后无盘进不了系统,更换主板后主板认不出硬盘无法进入系统的办法 – 手机爱问...
  5. mysql 坚向变横向_(排班表一)使用SQL语句使数据从坚向排列转化成横向排列
  6. 用多模态信息做 prompt,解锁 GPT 新玩法
  7. 吴恩达:机器学习应以数据为中心
  8. 上海交大张拳石:神经网络的变量交互可解释性研究
  9. 新型冠状病毒传染性有多强?何时达到疫情峰值?来看一下数学和统计建模结果...
  10. 推荐系统经典论文学习