JDBC 原理及其使用方法


说明:以下内容来源于B站颜群老师的课堂笔记,我只是对其进行了摘抄和整理。


JDBC:Java DataBase Connectivity (java数据库连接对象)

可以为多种关系型数据库提供统一的访问方式,用Java操纵数据库

JDBC API:提供各种操作访问接口 --> Connection Statement PreparedStatement ResultSet

JDBC DriverManager:管理不同的数据库驱动

各种数据库驱动:相应的数据库厂商提供的(第三方公司提供),连接\直接操作数据库

JDBC API的主要功能:

具体是通过以下类/接口实现:

  1. DriverManager: 管理jdbc驱动
  2. Connection:连接
  3. Statement(PreparedStatement):增删改查
  4. CallableStatement :调用数据库中的存储过程 / 存储函数
  5. Result:返回的结果集

JDBC访问数据库的具体步骤:(模板,每次写都一样)

  1. 导入驱动,加载具体的驱动类

  2. 与数据库建立连接

  3. 发送SQL,执行

  4. 处理结果集

数据库驱动:

Oracle ojdbc-x.jar

MySQL mysql-connector-java-x.jar

SqlServer sqljdbc-x.jar

mysql的驱动类包在maven下载 com.mysql.jdbc.Driver

模板

增删改的操作是一样的: 只需要写一个模板然后修改SQL语句就可以了

import java.sql.*;
public class JDBCDemo{private static final String URL = "jdbc:mysql://localhost:3306/DBMIS?useUnicod=true&characterEncoding=utf-8"; //设置编码,防止中文乱码private static final String USERNAME = "root";private static final String PWD = "****";public static void insert(){Statement  stmt = null; //关闭时,对象不能为null,所以需要异常处理try{//a.导入驱动,加载具体的驱动类Class.forName("com.mysql.jdbc.Driver");//b.与数据库建立连接 --通过 DriverManagerConnection conn = DriverManager.getConnection(URL,USERNAME,PWD);//c.发送SQL执行命令(增删改查)Statement stmt = conn.createStatement();String sql1 = "insert into DBMIS.tb_userAccount values(1,'张三',20,'IS')"; //增加String sql2 = "delete from DBMIS.tb_userAccount where stu_id=1"; //删除String sql3 = "update  DBMIS.tb_userAccount set stu_name='李四' where stu_id=2"; //修改//执行SQL语句int count = stmt.executeUpdate(sql1);  //返回值表示 增删改 几条数据//d.处理结果if(count>0){System.out.println("操作成功!");}    }catch(ClassNotFountException e){e.printStackTrace();}catch(SQLException e){e.printStackTrace();}catch(Exception e){e.printStackTrace();}finally{try{//为了防止空指针异常if(stmt!=null)stmt.close();if(conn!=null)conn.close();}catch(SQLException e){e.printStackTrace();}}
}

一般为了提高代码利用率会用另一种方式来连接数据库获取数据。

JDBC原理及应用模板相关推荐

  1. 【JDBC】jdbc原理总结

    1 什么是JDBC JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库.原来我们操作数据库是在控制台使用SQL语句来操作数据库 ...

  2. 数据库连接JDBC原理

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 数据库连 ...

  3. Java数据库持久层框架基础:jdbc原理和使用综述

    Java数据库持久层框架基础:jdbc原理和使用综述 前言 jdbc基础架构 jbdc的使用 jdbc的主要接口 驱动 连接 连接池 会话Statement 结果集ResultSet 前言 目前jav ...

  4. 吃透MySQL(二):JDBC原理及源码解析

    文章目录 一,JDBC使用 二,JDBC原理 1,JDBC基本原理 2,Java SPI机制 三,JDBC源码分析 自JDBC4.0开始,Class.forName(""),可以省 ...

  5. JDBC 简介 JDBC 原理

    JDBC  简介 JDBC(Java Data Base Connectivity,java 数据库连接)是一种用于执行 SQL 语句的 JavaAPI,可以为多种关系 数据库提供统一访问,它由一组用 ...

  6. java 模板实现原理,Java Web 模板代码生成器的设计与实现详解

    起因 项目中需要根据数据库表写很多Meta.Dao.Service代码,其中很多代码都是重复而繁琐的.因此如果有一个模板代码的生成器,就可以一定程度提高开发效率. 目标 可配置生成Java Web项目 ...

  7. 理解Sharding jdbc原理,看这一篇就够了

    相比于Spring基于AbstractRoutingDataSource实现的分库分表功能,Sharding jdbc在单库单表扩展到多库多表时,兼容性方面表现的更好一点.例如,spring实现的分库 ...

  8. JDBC原理,JDBC基础编程

    JDBC WHAT IS JDBC Java Database Connectivity:Java访问数据库的解决方案. JDBC是Java应用程序访问数据库的里程碑式解决方案.Java研发者希望用相 ...

  9. JDBC原理实现详解

    看目录 JDBC 一.JDBC是什么? 二.JDBC的本质是什么? 三.JDBC的意义 四.JDBC编程六步 五.JDBC注册驱动常用方式 六.从属性资源文件中读取连接数据库资源 七.处理查询结果集 ...

最新文章

  1. JavaScript中的字符串操作(转)
  2. Git@OSC 增加 SVN 支持
  3. 【Java 虚拟机原理】Class 字节码二进制文件分析 四 ( 字段表数据结构 | 字段表详细分析 | 访问标志 | 字段名称 | 字段描述符 | 属性项目 )
  4. myeclipse + tomcat 项目自动部署
  5. 基于jsp的教师科研工作量_基于jsp+mysql的JSP教师科研信息管理系统
  6. 现在多少钱能和以80年代的万元户持平?
  7. ubuntu系统安装vscode教程
  8. 工作389-移动端控制
  9. sqlmap --os-shell反制小思路
  10. quot;在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvokequot;
  11. sql server列转行怎么提高效率_行转列、列转行
  12. C++ 复杂、内存漏洞,2019 年的软件开发并不安全!
  13. lnmp+lamp编译后,编译参数查看
  14. 直线绘制算法-数值微分法(DDA)
  15. python函数的调用顺序,python 函数调用顺序
  16. 笔记本硬盘直接安装win7系统教程(不用U盘和PE)
  17. 【MyBatis-Plus】CRUD 操作
  18. unix 简单的命令
  19. DNS劫持与路由器DNS劫持漏洞详解(附防护方法)
  20. 你还不清楚某个系统文件的作用吗?Windows_xp系统文件详解【大全】

热门文章

  1. E06-libcrypto.so.10 遗失的解决办法
  2. 一个轻量级分布式RPC框架--NettyRpc
  3. [vijos1162]波浪数
  4. SQL2005存储过程解密
  5. Gartner磁盘阵列魔力象限:华为、昆腾、Infinidat势头迅猛
  6. 设置环境变量ANDROID_SDK_HOME有什么用?
  7. php遍历文件夹及其子文件夹并计算所占的磁盘空间
  8. android中如何通过代码检测是否有root权限?
  9. Http Ajax技术哪家强?Axios、Superagent、Request、Fetch、Supertest技能大比拼!
  10. Vue前端和Java后端 联调使用AES 前后端加密解密