导读

1.初识
2.Java中JDBC开发流程
3.实例

初识

JDBC:Java Database Connectivity
可以利用JDBC技术,通用的写法,与不同的数据库进行交互
利用JDBC,可以与数据库建立连接,发送SQL语句执行,得到结果集并处理

JDBC提供两部分API,一部分针对数据库厂商提供的,每个数据库厂商针对接口提供实现类一部分针对应用程序开发人员的


驱动就是一个类,不同的厂商有不同的类

驱动方式:四种jdbc=>odbc=>DBjdbc=>客户端RDBMS=>DBjdbc=>中间服务器=>DB   基于网络的Java协议jdbc=>DB    基于Java的本地协议常用API:包:Java.sql
Driver:驱动接口
DriverManager:驱动管理类
Connection:连接接口,代表与数据库的一个连接
Statement:接口,用于执行SQL语句子接口:PreparedStatement
ResultSet:结果集,  查询会返回一个结果集,等待你的处理

Java中JDBC开发流程

准备工作:
导入jar包,忘了步骤?->看这里

ojdbc是针对于Oracle数据库的一个jdbc
下载地址:百度或者Oracle官网搜索ojdbc

1.注册数据库驱动
Oracle对应的驱动类:oracle.jdbc.driver包下OracleDriver类,这个jar包不是源码的,所以无法查看

创建一个驱动对象,并注册(可以利用Driver driver = new OracleDriver();DriverManager.register(driver))Class.forName("oracle.jdbc.driver.OracleDriver");
Class:是一个类,每个类加载到内存时,都有一个对应的Class类型的对象//加载这个全类名(这里的oracle.jdbc.driver.OracleDriver,即包名.类名)对应的类到内存,会执行对应的static{},静态代码块,里面包含了创建驱动对象并注册
如果是MySql数据库则如下
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mysql_shiyanlocalhost
3306端口号
数据库名称
都要按实际情况写

2.与数据库建立连接

这是一个静态方法
DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","easybuy","easybuy");参数1 URL:jdbc:oracle:thin:@host:端口号:SIDhost是指计算机IP,本机的话可以写@localhost,端口号为数据库的端口号参数2 数据库连接的用户名:自己根据实际情况提供参数3 数据库连接的口令:同上==>返回一个连接对象,Connection实现类对象

3.创建可以执行SQL语句的Statement

利用连接对象conn.createStatement();=>返回一个Statement实现类对象

4.执行SQL语句

对于增删改: stmt.executeUpdate("sql语句");=>返回int类型的值,影响的行数对于查询:   stmt.executeQuery("sql语句");=>返回一个ResultSet,结果集注意:这里SQL语句不能写分号,否则报错

5.处理结果集(对于查询才有)

结果集中有一个游标:可以指向结果集中的行,默认不指向任何一行rs.next():让游标指向下一行,如果有下一行,返回true如果没有下一行,返回falsers.getXXX(列在结果集中的下标或者列名)eg:rs.getLong(1) 或者  rs.getLong("id")//结果集中有多行,可以利用循环while(rs.next()){//行的处理}

6.资源释放

ResultSet,Statement,Connection
按照后打开的先关闭顺序

实例

普通版:

package com.hala.jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class JDBCDemo {public static void main(String[] args) {// TODO Auto-generated method stubJDBCDemo demo=new JDBCDemo();try {demo.queryUser();} catch (ClassNotFoundException | SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** JDBC开发六大步骤* @throws ClassNotFoundException* @throws SQLException*/public void queryUser() throws ClassNotFoundException, SQLException{//1.注册数据库驱动Class.forName("oracle.jdbc.driver.OracleDriver");//2.与数据库建立连接并接收返回连接/** 参数1:url(jdbc:oracle:thin:@host:端口号:SID)* 参数2:数据库用户名* 参数3:数据库密码*/Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","easybuy","easybuy");//3.创建可以执行SQL语句的StatementStatement stmt=conn.createStatement();//4.执行SQL语句//这里sql语句不能带有;String sql="SELECT id,username,password,sex FROM t_user";ResultSet rs=stmt.executeQuery(sql);//5.处理结果集while(rs.next()){System.out.println(rs.getLong(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t"+rs.getString("sex"));}//6.资源释放if(rs!=null){rs.close();}if(stmt!=null){stmt.close();}if(conn!=null){conn.close();}}}

结合集合版:

数据库------->Java的映射关系
表            类
列(字段)       类的属性
行            类的实例


User.java

package com.hala.jdbc;public class User {private long id;private String userName;private String password;private String sex;private String idName;private long tel;private String addr;public User() {super();}public User(long id, String userName, String password, String sex, String idName, long tel, String addr) {super();this.id = id;this.userName = userName;this.password = password;this.sex = sex;this.idName = idName;this.tel = tel;this.addr = addr;}public long getId() {return id;}public void setId(long id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getIdName() {return idName;}public void setIdName(String idName) {this.idName = idName;}public long getTel() {return tel;}public void setTel(long tel) {this.tel = tel;}public String getAddr() {return addr;}public void setAddr(String addr) {this.addr = addr;}@Overridepublic String toString() {return "User [id=" + id + ", userName=" + userName + ", password=" + password + ", sex=" + sex + ", idName="+ idName + ", tel=" + tel + ", addr=" + addr + "]";}}

JDBCDemo.java

package com.hala.jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;public class JDBCDemo {public static void main(String[] args) {// TODO Auto-generated method stubJDBCDemo demo=new JDBCDemo();try {List<User> list=demo.queryUser();for(User user:list){System.out.println(user);}} catch (ClassNotFoundException | SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** JDBC开发六大步骤* @throws ClassNotFoundException* @throws SQLException*/public List<User> queryUser() throws ClassNotFoundException, SQLException{List<User> list=new ArrayList<>();//1.注册数据库驱动Class.forName("oracle.jdbc.driver.OracleDriver");//2.与数据库建立连接并接收返回连接/** 参数1:url(jdbc:oracle:thin:@host:端口号:SID)* 参数2:数据库用户名* 参数3:数据库密码*/Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","easybuy","easybuy");//3.创建可以执行SQL语句的StatementStatement stmt=conn.createStatement();//4.执行SQL语句//这里sql语句不能带有;String sql="SELECT id,username,password,sex FROM t_user";ResultSet rs=stmt.executeQuery(sql);//5.处理结果集while(rs.next()){//将每一行结果创建成对象User user=new User(rs.getLong(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getLong(6),rs.getString(7));//将对象放到集合中list.add(user);}//6.资源释放if(rs!=null){rs.close();}if(stmt!=null){stmt.close();}if(conn!=null){conn.close();}//返回结果集return list;}}

注意:目前需要参数,以形参输入,注意拼接,很容易出错,尤其文本型,需要单引号

String sql="UPDATE t_user  SET password='"+password+"' WHERE id="+id;

Java 13---JDBC简介相关推荐

  1. 双表查询java代码_什么是JDBC?Java数据库连接性简介

    JDBC(Java数据库连接性)是Java API,用于管理与数据库的连接,发出查询和命令以及处理从数据库获得的结果集.JDBC在1997年作为JDK 1.1的一部分发布,是为Java持久层开发的首批 ...

  2. 深圳Java培训:JDBC简介

    深圳Java培训:JDBC简介 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一 ...

  3. 4.Java数据库连接_1.JDBC (Java DB Connection)简介

    //============================================================================ Mysql安装参考: http://blo ...

  4. Java数据库连接--JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  5. DriverManager 驱动管理器类简介 JDBC简介(三)

    驱动程序管理器是负责管理驱动程序的,驱动注册以后,会保存在DriverManager中的已注册列表中 后续的处理就可以对这个列表进行操作 简言之,驱动管理器,就是字面含义,主要负责就是管理 驱动 概述 ...

  6. Java使用Jdbc操作MySql数据库(一)

    这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...

  7. JDBC—01—JDBC简介;JDBC常用接口与类;

    一. JDBC 简介 1 什么是 JDBC JDBC(Java DataBase Connectivity)java 数据库连接 是 JavaEE 平台下的技术规范 定义了在 Java 语言中连接数据 ...

  8. Java通过JDBC来连接SqlServer数据库

    Java通过JDBC来连接SqlServer数据库 0.       安装配置Java运行的环境,就不废话了 1.       下载JDBC的驱动程序http://msdn.microsoft.com ...

  9. JDBC与ORM发展与联系 JDBC简介(九)

    概念回顾 回顾下JDBC的概念: JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它 ...

  10. Data Source与数据库连接池简介 JDBC简介(八)

    DataSource是作为DriverManager的替代品而推出的,DataSource 对象是获取连接的首选方法. 起源 为何放弃DriverManager DriverManager负责管理驱动 ...

最新文章

  1. 输入输出 scanf和*修饰符
  2. Mac下安装多版本python
  3. 「零门槛多语言 Python/C/C# 通用思想学习系列」第一篇:经典HelloWorld
  4. apache fop_Apache FOP与Eclipse和OSGi的集成
  5. DOS命令 format
  6. linux中swi指令,Linux系统调用、新增系统调用方法
  7. 《基于MFC的OpenGL编程》Part 8 Colors
  8. 百度对数据的要求很高,智能音箱的难点是远场语音识别
  9. 评人工智能如何走向新阶段?
  10. matlab程序代码 伪码捕获_GNSS_SDR_a 实现北斗卫星的伪随机码产生和捕获跟踪,其中主函数为initial 。 matlab 262万源代码下载- www.pudn.com...
  11. Game Master(思维 + 贪心)
  12. java抽奖活动_java抽奖思路
  13. cloudfare dns_Cloudflare配置动态dns(ddns)
  14. 提示计算机未安装flash,win10系统提示未安装Flash的解决方法
  15. UltraEdit 不能复制粘贴
  16. 基于Qt的房贷计算器
  17. 一年之计在于春,一日之计在于晨,劲爆
  18. Codeforces Round #710 (Div. 3)个人题解
  19. 如何清理占用计算机内存,win10如何清理电脑内存占用高怎么办
  20. PPT:智能仓储系统规划实战

热门文章

  1. Git - 从远程仓库中拉取指定分支到本地
  2. pkuseg,LTP,jieba分词实践
  3. 【OpenCV-Python】5.OpenCV的图形用户界面窗口控制
  4. ES6学习笔记:箭头函数
  5. 图解:手机控制电脑的软件的使用教程
  6. pytorch入门学习(四)-----计算图与动态图
  7. 纯Java实现网易邮箱发送邮件
  8. 企业人的职场晋升“密码”
  9. pandas、pyecharts绘制基金走势图-01
  10. 2020牛客暑假多校第二场补题