JDBC基本概念和数据库连接操作

JDBC介绍

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

 

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 驱动方式,它直接同数据库进行连接,在生产型开发中,推荐使用该方式。

 

纯Java驱动

 

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

 

 

获取 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接口常用方法及作用

 

使用 statement 查询数据库时,每次执行查询时都需要将 SQL 语句传递给数据库,并重新解析执行 , 当多次执行同一查询时,就会影响效率。
为了提高查询效率,可以使用 PreparedStatement 接口,该接口将对 SQL 语句进行预编译,以后执行相同的语句时,就可以执行编译好的语句,从而提高查询效率。

 

 连接步骤

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();
        }

 ---删除

 --修改

 --查询

 

以上方法很麻烦,自此进阶版的连接数据库的步骤来了

因为增删改查有许多代码都是重复的所有请看以下代码

一: 先建立一个包为:com.util 包中建立一个类:DBHelper类//帮助类 

 1.使用静态代码块加载驱动

. 编写连接语句

private static final String URL="jdbc:sqlserver://localhost:1433;databasename=api";

  3.  获得连接方法 

4.关闭资源

帮助包的建立 就好了,建立完后我们就可以在其他其他地方调用帮助包了使用帮助包就可以简化我们的代码。

二.根据SQLserver 表,新建一个类,提供Get,Set方法,有参无参,toString方法等等需要用的方法。

 

三.新建一个com.dao 包然后在dao 包里面建立你的类名为数据库表名的类里面的方法:

首先我们先定以资源:

--01增加

 --02删除

 --03修改

 --04查找

 这就是进阶版的所有内容了之后调用Dao类里面的方法就行了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值