JDBC基本介绍以及使用

JDBC能做什么

The JDBCTM API provides programmatic access to relational data from the JavaTM
programming language. Using the JDBC API, applications written in the Java
programming language can execute SQL statements, retrieve results, and propagate
changes back to an underlying data source. The JDBC API can also be used to
interact with multiple data sources in a distributed, heterogeneous environment. 

JDBC规范中是这样解释的:JDBC API为java程序提供了通过程序访问和操作关系数据的API。通过使用JDBC API,java应用程序可以执行SQL语句,获取SQL查询结果数据,同时可以将更新传递到底层数据库。BC API 也可以用于分布式异构环境中与多个数据源进行交互。

JDBC架构图

从图中我们可以知道有了JDBC API之后,Java应用程序就可以通过操作JDBC API来操纵底层数据库,而不同的数据库提供了不同的JDBC Driver去实现JDBC API,而这些不同数据库之间的实现则由一个叫JDBC Driver Manager的类进行管理,所以我们就可以通过JDBC API去操作不同类型的数据库了,如MYSQL, ORACLE, SQL SERVER等。
在这里插入图片描述

JDBC 常用API以及他们的关系

在这里插入图片描述

类名基本描述
DriverManager主要用来管理不同数据库驱动,java应用程序可通过该类获取到连接Connection,然后通过Connection去操作不同的数据库
Connection主要表示与某一个数据库之间建立的一个会话,可以通过该类去创建Statement并返回创建的Statement结果对象
Statement主要用来执行静态的SQL语句同时获取执行SQL语句之后的结果
PreparedStatement主要用来执行动态SQL语句
CallableStatement主要用来执行数据库的存储过程
ResultSet用来表示数据库执行完SQL语句之后的结果

java中使用JDBC操作数据库的基本步骤

1、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 具体可通过如下代码实现,成功加载之后,会将Driver类的实例注册到DriverManager类中,我们可以通过DriverManager类获取到相应的驱动了

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

2、创建数据库的连接
•要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象

     String url = "jdbc:mysql://localhost:3306/test" ;    
     String username = "root" ;   
     String password = "root" ;   
    Connection con =    
             DriverManager.getConnection(url , username , password ) ;   

3、创建一个Statement
•要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3 种类型:
a、执行静态SQL语句的Statement。
b、执行动态SQL语句的PreparedStatement。
c、执行数据库存储过程的CallableStatement 。

 Statement stmt = con.createStatement() ;   
 PreparedStatement pstmt = con.prepareStatement(sql) ;   
CallableStatement cstmt =    
 con.prepareCall("{CALL demoSp(? , ?)}") ;   

4、执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate和execute

方法描述
ResultSet executeQuery(String sqlString)执行查询数据库的SQL语句 ,返回一个结果集(ResultSet)对象。
int executeUpdate(String sqlString)用于执行INSERT、UPDATE或 DELETE语句以及SQL DDL语句
execute(sqlString)用于执行返回多个结果集、多个更新计数或二者组合的语句。

5、应用程序对获得的ResultSet数据结果进行处理
1、执行更新返回的是本次操作影响到的记录数。
2、执行查询返回的结果是一个ResultSet对象。
• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些
行中数据的访问。
• 使用结果集(ResultSet)对象的访问方法获取数据:

     while(rs.next()){   
         String name = rs.getString("name") ;   
        String pass = rs.getString(1) ; //列是从左到右编号,并且从1开始
     }   

6、关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:

         if(rs != null){   // 关闭记录集   
        try{   
            rs.close() ;   
        }catch(SQLException e){   
            e.printStackTrace() ;   
        }   
          }   
          if(stmt != null){   // 关闭声明   
        try{   
            stmt.close() ;   
        }catch(SQLException e){   
            e.printStackTrace() ;   
        }   
          }   
          if(conn != null){  // 关闭连接对象   
         try{   
            conn.close() ;   
         }catch(SQLException e){   
            e.printStackTrace() ;   
         }   
          }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值