【J2EE十三个规范】数据层之JDBC

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: <span style="font-family:楷体; font-size:19px; line-height:27px; widows:auto"><strong>【学习概要】</strong></span> <div style="font-family:楷体; font-size:19px; line-height:27px; widows:auto"><span style="
【学习概要】
    在上篇博客中,介绍了两个Web层的规范,本篇博客,继续J2EE十三个规范的学习,下面要介绍的便是数据层的JDBC。
【学习笔记】
    一.什么是JDBC
     JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
    二.JDBC的优势
    1.有了JDBC API,就不必为Sybase数据库专门写一个程序,为Oracle数据库又专门写一个程序等等。程序员只要用JDBC API写一个程序就行,它可以向相应数据库发送SQL调用。同时,将java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序。
    2.JDBC可扩展了java的功能。用java和JDBC API可以发布含有applet的网页,而改applet使用的信息可能来自远程数据库。企业也可以用JDBC通过Intranet将所有支援镰刀一个或多个内部数据库中,即使他们之间所用的操作系统不同。
    3.java和JDBC的结合,使得信息传播变得容易和经济。企业可以继续使用他们安装好的数据库,并能便捷地存取信息,即使信息在不同的数据库管理系统上。
    三.JDBC的用途
    简单地说,JDBC可做以下四件事:
    1. 使得连接到数据库
     2. 创建SQL或MySQL语句
     3. 执行SQL或MySQL的查询数据库
     4. 查看和修改结果记录
    四.JDBC的架构
    JDBC API支持两层和三层处理模型进行数据库访问,但在一般的JDBC体系结构由两层组成:
    1.JDBC API:提供了应用程序对JDBC的管理连接。
    2.JDBC Driver API:支持JDBC管理到驱动器连接。

    以下是一种结构图,它显示了JDBC驱动程序和Java应用程序的位置:


五.JDBC的创建
    创建JDBC应用程序有以下6个步骤:
    1. 导入数据包 . 需要包括含有需要进行数据库编程的JDBC类的包。大多数情况下,使用 import java.sql.*  就可以了.
    2. 注册JDBC驱动程序. 需要初始化驱动程序,可以与数据库打开一个通信通道。
    3. 打开连接. 需要使用DriverManager.getConnection() 方法创建一个Connection对象,它代表与数据库的物理连接。
     4. 执行查询 . 需要使用类型声明的对象建立并提交一个SQL语句到数据库。
     5. 从结果集中提取数据 . 要求使用适当的关于ResultSet.getXXX()方法来检索结果集的数据。
    6. 清理环境. 需要明确地关闭所有的数据库资源相对依靠JVM的垃圾收集。
    下面是一个创建JDBC的完整代码:
//STEP 1. Import required packages
import java.sql.*;

public class FirstExample {
   // JDBC driver name and database URL
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost/EMP";

   //  Database credentials
   static final String USER = "username";
   static final String PASS = "password";
   
   public static void main(String[] args) {
   Connection conn = null;
   Statement stmt = null;
   try{
      //STEP 2: Register JDBC driver
      Class.forName("com.mysql.jdbc.Driver");

      //STEP 3: Open a connection
      System.out.println("Connecting to database...");
      conn = DriverManager.getConnection(DB_URL,USER,PASS);

      //STEP 4: Execute a query
      System.out.println("Creating statement...");
      stmt = conn.createStatement();
      String sql;
      sql = "SELECT id, first, last, age FROM Employees";
      ResultSet rs = stmt.executeQuery(sql);

      //STEP 5: Extract data from result set
      while(rs.next()){
         //Retrieve by column name
         int id  = rs.getInt("id");
         int age = rs.getInt("age");
         String first = rs.getString("first");
         String last = rs.getString("last");

         //Display values
         System.out.print("ID: " + id);
         System.out.print(", Age: " + age);
         System.out.print(", First: " + first);
         System.out.println(", Last: " + last);
      }
      //STEP 6: Clean-up environment
      rs.close();
      stmt.close();
      conn.close();
   }catch(SQLException se){
      //Handle errors for JDBC
      se.printStackTrace();
   }catch(Exception e){
      //Handle errors for Class.forName
      e.printStackTrace();
   }finally{
      //finally block used to close resources
      try{
         if(stmt!=null)
            stmt.close();
      }catch(SQLException se2){
      }// nothing we can do
      try{
         if(conn!=null)
            conn.close();
      }catch(SQLException se){
         se.printStackTrace();
      }//end finally try
   }//end try
   System.out.println("Goodbye!");
}//end main
}//end FirstExample
【学习比较】
    在很早之前,我们就知道了ODBC,而JDBC和ODBC间又有什么样的联系和不同呢。
    目前,Microsoft 的 ODBC API 可能是使用最广的、用于访问关系数据库的编程接口。它能在几乎所有平台上连接几乎所有的数据库。然而,为什么java不使用ODBC呢。答案是可以使用,但不适合直接使用。
    因为ODBC是用C语言接口,从java调用本地C代码再安全性、实现、坚固性和移植性方面都有缺陷。此外,java中没有指针,而ODBC对指针的应用很广泛。
    JDBC API是建立在ODBC基础上的,它保留了ODBC的基本设计特征。它们之间最大的区别在于:JDBC以java风格与优点为基础并进行优化,因此更加易于使用。
【学习感悟】
    对于数据层JDBC的学习,感觉就好像要轻松一些。因为对ODBC有一定的了解,并且对数据库的操作,也是固定的几件事:连接、执行、查询等。不过现在的学习还是很零散的,后面系统的学习与编程相信会更有共鸣。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
11月前
|
Java 数据库连接 数据库
【Servlet】规范项目结构|基于Mysql+JDBC+Servlet 制作简易网页|实现登录、添加、删除、显示的功能(上)
【Servlet】规范项目结构|基于Mysql+JDBC+Servlet 制作简易网页|实现登录、添加、删除、显示的功能
104 0
|
11月前
|
SQL 开发框架 Java
[J2EE规范]JDBC简单例子
[J2EE规范]JDBC简单例子
41 0
|
12月前
|
SQL druid Java
如何使用JDBC操作数据库?一文带你吃透JDBC规范(二)
如何使用JDBC操作数据库?一文带你吃透JDBC规范(二)
84 0
|
12月前
|
SQL Oracle 安全
如何使用JDBC操作数据库?一文带你吃透JDBC规范(一)
如何使用JDBC操作数据库?一文带你吃透JDBC规范(一)
222 1
|
Java 数据库连接 应用服务中间件
|
SQL Java 关系型数据库
Mysql Java驱动代码阅读笔记及JDBC规范笔记
一前言: 以前刚开始用java连接mysql时,都是连猜带蒙的。比如: 一个Statement,Connection何时关闭? Connection能不能先于Statement关闭? ResultSet是怎样存放数据的?...
800 0
|
4月前
|
SQL Java 关系型数据库
MySQL之JDBC(二)
MySQL之JDBC(二)
34 0
|
4月前
|
关系型数据库 MySQL Java
MySQL之JDBC(一)
MySQL之JDBC
35 0
|
25天前
|
关系型数据库 MySQL Java
MySQL的主从复制 && SpringBoot整合Sharding-JDBC解决读写分离
MySQL的主从复制 && SpringBoot整合Sharding-JDBC解决读写分离
36 0