JDBC(数据库的连接和使用)

一、JDBC的简介

  1. jdbc的概述:
    jdbc:java database connectivity 通过java代码去操作数据库 jdbc也是一套规范 jdbc中大部分都是接口,具体的实现是个大数据库厂商 就是jdbc接口实现的jar包。
  2. jdbc规范有哪些
    1. java.sql.DriverManager类:负责驱动的注册 和 jdbc操作的入口
    2. java.sql.Connection接口:负责连接数据库
    3. java.sql.Statement接口:负责操作数据库
    4. java.sql.ResultSet接口:负责封装查询的结果数据
    5. java.sql.PreparedStatement:负责操作数据库 对sql语句进行预编译
  3. 快速入门
         准备工作:
    1. 数据库中有可操作的数据
    2. 准备数据库的驱动jar包

二、编码阶段:

  1. 操作数据库的一般流程
    1. 注册驱动
    2. 链接数据库
    3. 执行SQL语句操作数据库
    4. 遍历结果集
    5. 关闭资源

      1. //(1) 注册驱动
      2. DriverManager.registerDriver(newDriver());
      3. //(2) 连接数据库
      4. Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/android","root","didi848484");
      5. //(3) 执行sql语句操作数据库
      6. //1.创建一个 Statement 对象来将 SQL 语句发送到数据库。
      7. Statement stem=conn.createStatement();
      8. //2.执行SQL语句
      9. ResultSet rs=stem.executeQuery("select * from user");
      10. //(4) 遍历结果集
      11. while(rs.next())
      12. {
      13. System.out.print("id:"+rs.getInt("id"));
      14. System.out.print(",username:"+rs.getString("username"));
      15. System.out.print(",password:"+rs.getString("password"));
      16. //.....
      17. System.out.println();
      18. }
      19. //(5) 关闭资源
      20. rs.close();
      21. stem.close();
      22. conn.close();
  2. 数据库连接流程详解
    1. 注册驱动
      一般有2种方式:
      1.第一种方式,使用DriverManager提供的方法来注册
      格式:DriverManager.registerDriver(new Driver())//这里的new Driver()一定要导入对应数据库JAR包中的类
      例子:DriverManager.registerDriver(new Driver()); //这种方式一半不使用,原因是跟踪源码发现,源码内驱动重复注册,影响效率。

      2.第二种方式:使用反射来注册
      格式:Class.forName("驱动的全包名");
      例子:Class.forName("com.mysql.jdbc.Driver");

      1. Class.forName("com.mysql.jdbc.Driver");

      开发中一般使用反射的方式来注册驱动。好处有两点,一:驱动只注册一次,提高了效率。二:可以将驱动的全包名提取成配置文件 解耦合 方便后期维护

    2. 连接数据库
      格式:Connection conn = DriverManager.getConnection(url,name,password);
      url:数据库的地址
            格式:主协议:子协议://主机:端口/数据库名称
            示例:jdbc:mysql://localhost:3306/jdbc
            注意:如果主机是本机(localhost)端口也是默认的3306则可以简写为:jdbc:mysql:///jdbc
      name:用户名
      password:密码
    3. 创建Statement来执行sql语句
      1. 创建Statement对象
        格式:Statement stmt = conn.createStatement();
      2. 执行sql语句
        使用Statement 对象下的2个方法来执行SQL语句
        a.int executeUpdate(String sql) : 返回值int 是影响的行数//主要用来执行:增、删、改语句或者不返回任何内容的SQL语句(如 SQL DDL 语句)
        b.ResultSet    executeQuery(String sql) :执行查询语句 返回结果ResultSet//主要用于接收select 语句查询的结果
    4. ResultSet结果集
      ResultSet内部封装的是查询返回的数据:ResultSet就是对查询的结果的封装就可以看成一张表 其内部维护着一个游标(指针)起初游标指向在第一条数据的上面,当我们执行next()方法时,游标会向下窥探一下是否存在下一条数据,如果有next方法会返回true,并且游标向下移动一行,如果没有下一条数据返回false,当游标指向某一行时,可以通过getXXX()方法取得这一行中的某一个字段下的数据。

      如何取ResultSet中的数据
      1.首先通过next()方法窥探结果集中是否有下一行数据,如果有返回true且结果集指针移动到下一行,否则返回false
      2.当next()方法返回为true时,可以通过ResultSet对象的方法取出数据,如:getInt()     getString()     getDate()    getObject()  括号内参数:字段名称 (查询出的字段名称)

      1. //创建ResultSet对象来接收查询结果
      2. ResultSet rs=stem.executeQuery("select * from user");
      3. //通过next()和各类get方法取出数据
      4. while(rs.next())
      5. {
      6. System.out.print("id:"+rs.getInt("id"));
      7. System.out.print(",username:"+rs.getString("username"));
      8. System.out.print(",password:"+rs.getString("password"));
      9. //.....
      10. System.out.println();
      11. }
    5. 关闭资源
      原则:与数据库有关系的资源全部关闭 从小到大关闭
      RresultSet---->Statement------->Connection

来自为知笔记(Wiz)

时间: 2024-12-06 06:09:14

JDBC(数据库的连接和使用)的相关文章

jdbc 数据库的连接 以及数据库的增删改查

package util; import java.sql.Connection;import java.sql.DriverManager; public class Jdbcutil { private static Connection conn=null; static{ String url="jdbc:mysql://localhost:3306/test"; String username="root"; String password="1

通过JDBC 与数据库建立连接

import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** 通过JDBC 与数据库建立连接 第一步:加载oracle的JDBC架包 第二步:代码实现 1.加载驱动:Class.forName("oracle.jdbc.OracleDriver"): //driverClasss= oracle.jdbc.OracleDriver; 注意加引号 2.建立连接 调用

JDBC创建数据库的连接

创建数据库的连接 .     ?要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接. ?使用DriverManager的getConnectin(String url , String username,String password)方法传入指定的欲连接的数据库的路径.数据库的用户名和密码来获得. 例如: //连接MySql数据库,用户名和密码都是root String url = "jdbc:mysql://loc

JDBC 数据库异常 Exception 关闭的(语句,连接,ResultSet)

如果在rs.next()之前关闭了Statement或PreparedStatement,会导致下面的异常: java.sql.SQLException: 关闭的语句: next 如果在rs.next()之前关闭了Connection,会导致下面的异常: java.sql.SQLException: 关闭的连接: next问题 如果在rs.next()之前关闭了ResultSet,会导致下面的异常: java.sql.SQLException: 关闭的 Resultset: next JDBC

Java数据库的连接JDBC

1.JDBC 开发步骤(1)注册驱动.告知JVM使用的是哪一个数据库的驱动(2)获得连接.使用JDBC中的类,完成对MySQL数据库的连接(3)获得语句执行平台通过连接对象获取对SQL语句的执行者对象(4)执行sql语句使用执行者对象,向数据库执行SQL语句获取到数据库的执行后的结果(5)处理结果(6)释放资源.(先开的后关)调用一堆close()方法 package com.oracle.demo01; import java.sql.Connection; import java.sql.D

jsp_数据库的连接

一.添加数据库以及表 在这里我们使用的是mysql数据库 二.配置数据库的驱动程序 将mysql的驱动程序复制到Tomcat目录下的lib目录中 注:在Tomcat中如果配置了新的jar包,则配置完成后一定要重新启动服务器. 三.在jsp文件中获取数据库的连接,并将前面创建的表的数据显示出来 1 <%@ page contentType="text/html; charset=utf-8" language="java" import="java.s

JDBC:数据库操作:处理大对象CLOB数据

目标: 了解大对象处理基本原理, 掌握CLOB数据的读,写操作. 可以使用CLOB类处理大文本数据. 大对象处理主要指CLOB和BLOB两种类型字段.可以大量存储文字. 要想在程序中处理这样的大数据操作,则必须使用preparedStatement完成.所有文件内容通过IO流方式从大文本字段中保存和读取. 写入大数据对象: 使用PreparedStatement接口中的方法. void setAsciiStream(int parameterIndex, InputStream x, int l

JDBC数据库1

数据库(Database)是按照数据结构来组织,存储,和管理数据的仓库.数据库有很多类型,从简单存储各种数据的的表格到能够储存大型数据的系统,在各方面得到了广泛的应用.数据库简介J.Martin给 数据库下了一个比较完整的定义:数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用程序服务:数据的存储独立于使用它的 程序:对数据库插入新数据,修改和检索原有的数据均能按一种公用的和可控制的方式进行.当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一

数据库 —— 应用程序与数据库的连接

目录: ODBC 与 JDBC 是什么? 1.ODBC 与 JDBC 是什么? [Link] JDBC, 全称为Java DataBase Connectivity standard, 它是一个面向对象的应用程序接口(API), 通过它可访问各类关系数据库.JDBC也是java核心类库的一部分. JDBC的最大特点是它独立于具体的关系数据库.与ODBC (Open Database Connectivity)类似, JDBC API 中定义了一些Java类分别用来表示与数据库的连接(connec

JDBC:数据库操作:BLOB数据处理

CLOB主要保存海量文字,而BLOB是专门保存二进制数据:包括,图片,音乐,影片.等. 在MYSQL中,BLOB类型使用LONGBLOB声明,最高可存储4G内容. 创建一个表: create table userblob ( id int(4) primary key not null auto_increment, name varchar(30), photo longblob ); 代码: package 类集; import java.sql.Connection ; import ja