JAVA通过JDBC连接数据库

一、数据库简介

数据库,顾名思义,是专门用于记录数据的资料库。常用的数据库有:Access、SQL SERVER、MySQL、Oracle、DB2。
数据库以为单元,里面的数据利用表格的形式保存,以MySQL数据库为例,数据库中的数据如图:
MySQL数据库
上面为数据库中的一个,第一行的每一个词都是一个是字段(相当于表格标题),第二行是数据,还可以有第三行第四行……也就是一个普通的二维列表。

默认表中的第一个字段为主键或称为主索引,主键可以自己定义,主键相当于人的身份证,是每条数据的唯一标示,用于识别数据,主键不允许重复,除了主键的其他数据可以重复。

数据库的结构为:库—>表—>数据,如下图
数据库结构

二、SQL语句

数据库可以在控制台使用SQL语句操作。
SQL是 结构化查询语言(Structured Query Language) 的缩写,使用SQL语句,可以创建、删除库,创建、删除表,查询数据和修改数据等操作。
包括MySQL在内的大部分数据库都支持SQL语句,除了SQL语句外,各数据库还有其他仅在本数据库中使用的命令。
基本的SQL语句有(每个语句都以分号结尾):
新增库

create database ku-name;--------(ku-name为库名)

删除库

drop database ku-name;

新增表

create table table-name(----------------(table-name为表名)
        duan1 varchar(3)---------------(duan1-3为字段名)
        duan2 int(4)-------------------(varcharint为字段的类型)
        duan3 double(5)----------------(3-5为该类型数据的最大长度)
);-------------------------------------(以分号结束)

删除表

drop table table-name;

查找数据 :

select * from table-name where 条件--------(在where条件下搜索*条件)

更多可以在网上找到,如果只是要创建数据库、增加表等操作,有可视化界面的软件可以使用,不用慢慢输入命令,这里我找到一篇博客:经典SQL语句大全

以下为实例:
这里写图片描述

这里写图片描述

扫描二维码关注公众号,回复: 558836 查看本文章

三、通过JDBC连接数据库

1、JDBC简介

使用JAVA语言对数据库进行操作,需要用到JDBC技术。JDBC即java数据库连接(Java Data Base Connectivity) 的缩写,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
可以形象的把JDBC认为是一个转换座,这是我画的一个草图:
JDBC的个人理解

从草图中可以看出JDBC是一个JAVA语言的接口(interface),提供了一个规范,这个规范给各大数据库厂商,让厂商根据这个规范来制作驱动,有了这个驱动,在JAVA程序中导入了驱动(各大厂商的驱动都是不一样的,可以理解为他们的插座不一样吧,哈),建立连接,便可以传输SQL语句,进行数据的查询和改动的操作了。

2、JDBC操作步骤

(1)将驱动包所在路径添加到CLASSPATH 类路径变量中(比如对于MySQL数据库,将mysql-connector-java-5.1.5-bin.jar 复制到
D:\java (自己选择路径)下,然后把“D:/java/mysql-connector-java-5.1.5-bin.jar”增加到CLASSPATH 变量值中)

(2)在Java APP 中按如下步骤写JDBC 代码:

  • 加载Driver 驱动
  • 创建数据库连接对象Connection
  • 创建一个可向数据库发送SQL 命令并返回结果的传送对象Statement
  • 执行SQL 命令并处理返回结果
  • 处理后,如果有返回结果集,关闭结果集对象ResultSet
  • 关闭对应的Statement 对象
  • 关闭连接对象Connection

具体的代码如下:

//第一步,配置完驱动后,需要在代码中导入sql包
import java.sql.*;
try{
    //第二步,加载数据库厂商对应的驱动包,这里以MySQL驱动包为例
    Class.forName("com.mysql.jdbc.Driver");
    /*
    *第三步,建立数据库连接通道Connection,其中localhost指本地,可改为数据库的ip地址,
    *databasename为库名;3306为MySQL默认的端口,在数据库安装的时候设置,
    *后面的第一个root为管理员账户,第二个root为管理员密码
    */
    conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/databasename", "root", "root");
    //第四步,创建向数据库发送和接收数据的载体Statement
    stmt = conn.createStatement();
    //第五步,定义SQL命令,可用于查询、更改数据等,tablename为表名,这里是查询
    String sql = "select * from tablename";
    //如果要更改数据:String sql = "updata tablename set sex = man where name = HaiSome "
    //第六步,发送指令并返回结果集,这里是查询结果,ResultSet接收到的是一个表格
    ResultSet rs = stmt.executeQuery(sql);
    //如果是更改,则为stmt.executeUpdata(sql);
//接下面的代码

对应草图中的过程,形象理解为:
加载驱动就是找到连接数据库的那条线,这条线的插头因为每个数据库的插孔不同而不同,需要导入不同的包;
Connection是一个通道,建立通道,相当于图中插头和插孔接上,JAVA程序和数据库接通了;
Statement是一个传输数据的载体,相当于图中电线中的电流,将信息传递出去;
SQL语句就是命令了,它要在乘坐Statement才能发出去;
ResultSet是返回的结果,数据库根据查询要求返回一个结果。

数据库返回的查询结果是一个表格,而且表格带有指针,指针指向的是第一行数据,即字段,如图:
表格

这不是我们要的信息,所以应该看看下一行,即调用ResultSet的next()方法,如果有数据,则会返回true,没有数据则返回false:

    //接上面,获取需要的结果
    whlie(rs.next()){     //如果有信息,则返回true,执行内部代码块
        String name = rs.getString("Name");  //获取String类数据
        int name = rs.getInt("Age");    //获取Int型数据
        System.out.println(name);
        System.out.println(age);
    }
}catch(Exception e){
    e.printStackTrace();
}

最后还要关闭资源,因为JVM不能关闭外部资源,需要手动关闭:

finally{
    //手动关闭资源
    if(rs != null){
        try{
            rs.close();
        }catch(Exception e){
            ex.printStackTrace();
        }
    }
    if(stmt != null){
        try{
            stmt.close();
        }catch(Exception e){
            ex.printStackTrace();
        }
    }
    if(conn != null){
        try{
            conn.close();
        }catch(Exception e){
            ex.printStackTrace();
        }
    }
}

更多的内容可以百度一下,我找到一个JDBC的操作资料:JDBC快速入门教程

最后还分享一个关于JDBC的分类,找资料的时候找到的,拓展了我的知识,虽然还不是太懂~涉及了JDBC的分类:
JDBC的四种分类
包括JDBC-ODBC桥、本地API驱动、网络协议驱动和本地协议驱动。

猜你喜欢

转载自blog.csdn.net/z_haisome/article/details/52168896