JDBC(Java DataBase Connectivity) 称为Java数据库连接,它是一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成,有了JDBC就可以用同一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。 有了JDBC,就不必为访问Mysql数据库专门写一个程序,为访问Oracle又专门写一个程序等等。


abap和java开发的区别与联系 jdbc和api什么区别_数据库

 

 

 

JDBC的体系结构
JDBC的结构可划分为两层:一个是面向底层的JDBC Driver Interface(驱动程序管理器接口),另一个是面向程序员的JDBC API。

使用JDBC编程,可让开发人员从复杂的驱动器调用命令和函数中解脱出来,可以致力于应用程序中的关键地方。JDBC支持不同的关系数据库,这使得程序的可移植性大大加强。JDBC API是面向对象的,可以让用户把常用的方法封装为—个类,以备后用。但是它也有缺点,一是使用JDBC,访问数据记录的速度会受到一定程度的影响。二是JDBC结构中包含不同厂家的产品,这就给更改数据源带来了很大的麻烦。

JDBC提供的主要接口有:
java.sql.DriverManager:用于驱动程序的调入

java.sql.Connection:与特定数据库建立连接

java.sql.Statement:用于SQL语句的执行,包括查询语句、更新语句、创建数据库语句等

java.sql.ResultSet:用于保存查询所得的结果

DriverManager:负责管理JDBC驱动程序。使用JDBC驱动程序之前,必须先将驱动程序加载并注册后才可以使用,同时提供方法来建立与数据库的连接。

JDBC优缺点

优点:
JDBC使得编程人员从复杂的驱动器调用命令和函数中解脱出来,可以致力于应用程序中的关键地方。
JDBC支持不同的关系数据库,这使得程序的可移植性大大加强。
JDBC API是面向对象的,可以让用户把常用的方法封装为—个类,以备后用。
缺点:
使用JDBC,访问数据记录的速度会受到一定程度的影响。
JDBC结构中包含不同厂家的产品,这就给更改数据源带来了很大的麻烦。
两种常用的驱动方式
JDBC 驱动由数据库厂商或第三方中间件厂商提供,在我们实际编程过程中,有两种较为常用的驱动方式:
l 第一种是 JDBC-ODBC 桥方式,适用于个人开发与测试,它通过 ODBC 与数据库进行连接。
l 另一种是纯 java 驱动方式,它直接同数据库进行连接,在生产型开发中,推荐使用该方式。

 

abap和java开发的区别与联系 jdbc和api什么区别_abap和java开发的区别与联系_02

 

 

 

abap和java开发的区别与联系 jdbc和api什么区别_数据库_03

如果我们使用纯 java 驱动方式进行数据库连接,首先需要下载数据库厂商提供的驱动程序 jar 包,并将 jar 包引入工程中。
如我们使用的数据库是 SQL Server 2005, 则我们的驱动名称为: com.microsoft.sqlserver.jdbc.SQLServerDriver
url 为: jdbc:sqlserver ://localhost:1433;DatabaseName=Student

 

 

 

abap和java开发的区别与联系 jdbc和api什么区别_sql_04

 

 

获取 Connection 对象后就可以进行各种数据库操作了,此时需要使用 Connection 对象创建 Statement 对象。

Statement 对象用于将 SQL 语句发送到数据库中,或者理解为执行 SQL 语句。

Statement接口中包含很多基本数据库操作方法。

执行 SQL 命令的三个方法:

ResultSet executeQuery ( String sql ):可以执行 SQL 查询并获取 ResultSet 对象;

Int executeUpdate ( String sql ):可以执行插入、删除、更新等操作,返回值是执行该操作所影响的行数;

Boolean execute ( String sql ):这是一个最为一般的执行方法,可以执行任意 SQL 语句,然后获得一个布尔值,表示是否返回 RestultSet 。

ResultSet接口常用方法及作用

abap和java开发的区别与联系 jdbc和api什么区别_SQL_05

 

 

使用 statement 查询数据库时,每次执行查询时都需要将 SQL 语句传递给数据库,并重新解析执行 , 当多次执行同一查询时,就会影响效率。

为了提高查询效率,可以使用 PreparedStatement 接口,该接口将对 SQL 语句进行预编译,以后执行相同的语句时,就可以执行编译好的语句,从而提高查询效率。

abap和java开发的区别与联系 jdbc和api什么区别_SQL_06

 

 

 

连接步骤
1、启动服务
2、建库 建表 新建Java项目
3、导入驱动包
4、加载驱动
5、获得连接
6、开始执行
7、判断是否执行成功
8、关闭连接

数据库连接具体操作----增加
1、启动服务

启动eclipse和Microsoft SQL Server

2、SQL Server里面建数据库,建表,eclipse新建项目

3、导入驱动包:也就是jar,jar是什么东西,我们把它称架什么是架呢,就我们写了一堆java代码,你要用这个Java代码是不是要拷给你,那样很麻烦,所以我们可以这样子我把我写好的java代码打成一个jar包,这个jar就跟压缩包一样的,只不过这个jar包是专门个java用的,所有它被称为架包,也就是说我们把这个东西丢到Java里面去,那我们就直接可以使用jar包中的所有的类了

复制jar包找到eclipse新建项目粘贴到

里面

右键找到Build Path,划过来有个Add to Build Path 点击它就好了

4、加载驱动

--01注册驱动----只做一次

// - 01.打出SQLServerDriver,按快捷键ALT加/杠

会出来这一窜//import com.microsoft.sqlserver.jdbc.SQLServerDriver;

复制com.microsoft.sqlserver.jdbc.SQLServerDriver

-- 02.使用Class.forName加载驱动

把刚刚复制的代码放里面
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

5、获得连接
- 01.编写连接语句
String url = "jdbc:sqlserver://localhost:1433;databasename=api_284";
- 02.获得连接
Connection con = DriverManager.getConnection(url, "sa", "sa123");

6、开始执行

Scanner mys=new Scanner(System.in);
System.out.println("请输入你的名字");
String name=mys.next();
System.out.println("请输入你的年龄");
int age=mys.nextInt();

- 01.获得执行对象
?代表占位符,一个占位符意味着需要一个变量来填充
PreparedStatement ps = con.prepareStatement("insert into student values(?,?)");
如果sql语句有?号,则必须进行占位符的设置
ps.setString(1, name);
ps.setInt(2, age);
- 02.让执行对象执行
增删改的执行结果都是int类型
int n = ps.executeUpdate();
n就是数据库收到影响的行数

7、判断是否执行成功

if(n>0) {
            System.out.println("成功的");
        }else {
            System.out.println("失败的");
        }

8、关闭连接

if(con!=null&&!con.isClosed()) {
            con.close();
        }
        if(ps!=null) {
            ps.close();
        }