JDBC(Java Data Base Connectivity,java数据库连接)
JDBC概述
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。是Java访问数据库的标准规范
JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
JDBC需要连接驱动,驱动是两个设备要进行通信,满足一定通信数据格式,数据格式由设备提供商规定,设备提供商为设备提供驱动软件,通过软件可以与该设备进行通信。
JDBC原理
Java提供访问数据库规范称为JDBC,而生产厂商提供规范的实现类称为驱动。

JDBC是接口,驱动是接口的实现,没有驱动将无法完成数据库连接,从而不能操作数据库!每个数据库厂商都需要提供自己的驱动,用来连接自己公司的数据库,也就是说驱动一般都由数据库生成厂商提供。
JDBC开发步骤
- 注册驱动.
- 获得连接.
- 获得语句执行平台
- 执行sql语句
- 处理结果
- 释放资源.


详解各个对象:
注册驱动
通过查询com.mysql.jdbc.Driver源码,我们发现Driver类“主动”将自己进行注册
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}}
2.获取数据库连接
*方法:staticConnection getConnection(Stringurl,String user,String password)
*参数:url:指定连接路径
语法:jdbc:mysql://ip地址(域名):端口号/数据库名称
例子:"jdbc:mysql://localhost:3306/lyd01"
细节:如果连接的是本机MySQL服务器,并且MySQL服务器默认端口是3306,则可以简写为:jdbc:mysql://数据库名称
user:用户名
password:密码
Connection:数据库连接对象
功能:
- 获取执行sql的对象
*Statement createStatement()
*PreparedStatement prepareStatement(String sql)
2.管理实务:
开启实务:setAutoCommit(boolean autoCommit):调用该方法设置为false
提交实务:commit()
回滚实务:rollback()
Statement:执行sql的对象
boolean execute(String sql); --执行select返回true 执行其他的语句返回false.
int executeUpdate(String sql); --执行insert update delete语句.
ResultSet executeQuery(String sql); --执行select语句.
*返回值:影响的行数,可能通过这个影响行数的判断DML语句是否执行成功 ,返回值>0则执行成功,反正失败
连接数据库

目的:使用工具类来,简化书写
*分析:
1.抽取注册驱动
2.抽取一个方法获取连接
3.抽取方法释放资源
先写一个jdbc.properties文件

创建一个工具类



定义一个类封装


然后写主流程调用


JDBC(Java Data Base Connectivity,java数据库连接)的更多相关文章
- (十七)jdbc(Java Data Base Connectivity,java数据库连接)基础使用
一.JDBC相关概念介绍 1.1 JDBC介绍 SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库的规范(接口),称之为JDBC.这套接口由数据库厂商去实现,这样,开发人员只需要学习 ...
- J2EE学习从菜鸟变大鸟之五 JDBC(Java Data Base Connectivity)
JDBC刚开始学习这个的时候看到了,以为是ODBC呢,很是相似啊,总的来说还是基本上一类的东东,但是还有一些细微的区别,下面和大家一起分享学习. JDBC(Java Data Base Connect ...
- JDBC (Java DataBase Connectivity)数据库连接池原理解析与实现
一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大 ...
- 【Java】-NO.16.EBook.4.Java.1.012-【疯狂Java讲义第3版 李刚】- JDBC
1.0.0 Summary Tittle:[Java]-NO.16.EBook.4.Java.1.012-[疯狂Java讲义第3版 李刚]- JDBC Style:EBook Series:Java ...
- Spring Data:企业级Java的现代数据访问技术(影印版)
<Spring Data:企业级Java的现代数据访问技术(影印版)>基本信息原书名:Spring Data:Modern Data Access for Enterprise Java作 ...
- 自定义的jdbc连接工具类JDBCUtils【java 工具类】
JDBCUtils 类设计: 1. 创建私有的属性*(连接数据库必要的四个变量):dreiver url user password 2. 将构造函数私有化 3.将注册驱动写入静态代码块 4.外界只能 ...
- java jdbc ResultSet结果通过java反射赋值给java对象
在不整合框架的情况下,使用jdbc从数据库读取数据时都得一个个的get和set,不仅累代码还显得不简洁,所以利用java的反射机制写了一个工具类,这样用jdbc从数据库拿数据的时候就不用那么麻烦了. ...
- 第77节:Java中的事务和数据库连接池和DBUtiles
第77节:Java中的事务和数据库连接池和DBUtiles 前言 看哭你,字数:8803,承蒙关照,谢谢朋友点赞! 事务 Transaction事务,什么是事务,事务是包含一组操作,这组操作里面包含许 ...
- java学习笔记41(数据库连接池 C3p0连接池)
在之前的学习中,我们发现,我们需要频繁的创建连接对象,用完之后还需要在关闭资源,因为这些连接对象都是占资源的,但是又不得不创建,比较繁琐,为了解决这种情况,Java出现了数据库连接池: 数据库连接池的 ...
随机推荐
- 用es6方式的写的订阅发布的模式
//发布订阅模式 class EventEmiter { constructor() { //维护一个对象 this._events = { } } on(eventName, callback) { ...
- JS浅谈原始值与引用值操作
值的操作分为三大类:复制,传递,比较 一:复制 原始值 let a = 10; let b = a; 注释:2018-7-30 17:33:49 1 原始类型的值都是存放在栈内存当中,所以他们的赋值操 ...
- Spark环境搭建(二)-----------HDFS shell 常用操作
配置好HDFS,也学习了点HDFS的简单操作,跟Linux命令相似 1) 配置Hadoop的环境变量,类似Java的配置 在 ~/.bash_profile 中加入 export HADOOP_HO ...
- Selenium + Python +CSV
绪论 首先写这个文章的时候仅仅花了2个晚上(我是菜鸟所以很慢),自己之前略懂selenium,但是不是很懂csv,这次相当于练手了. 第一章 环境介绍 具体实验环境 系统 Windows10教育版 1 ...
- 06-Python入门学习-元组、字典、集合类型
一.元组 一:基本使用:tuple 1 用途: 记录多个值,当多个值没有改的需求,此时用元组更合适 2 定义方式: 在()内用逗号分隔开多个任意类型的值 t=(1,1.3,'xx',('a','b') ...
- Codechef August Challenge 2018 : Coordinate Compression
传送门 外边二分,里面拿线段树维护贪心就行了. #include<cstdio> #include<vector> #include<cstring> #inclu ...
- Kotlin从入门到放弃
1.eclipse kotlin安装: http://blog.csdn.net/u014134488/article/details/50684922 2.Android Studio kotlin ...
- OSS内文件如何设置为无时间限制的下载链接
OSS内文件如何设置为无时间限制的下载链接 想把一些文件上传到OSS里,把OSS当网盘用,做成分享的下载链接 发现获取的链接都是有时间限制的 有没有取消这个时间限制的功能或者方法 请将object的权 ...
- Viterbi algorithm
HMM(隐马尔可夫模型)是用来描述隐含未知参数的统计模型,是一个关于时序的概率模型,它描述了一个由隐藏的马尔可夫链生成状态序列,再由状态序列生成观测序列的过程.其中,状态之间的转换以及观测序列和状态序 ...
- 一个LinkedBlockingQueue线程安全的例子
一个LinkedBlockingQueue线程安全的例子 package llj.mf.ace; import java.util.ArrayList; import java.util.HashSe ...