zoukankan      html  css  js  c++  java
  • Derby数据库的使用

     一、 Derby数据库平台的搭建

       ●  JDK 1.6版本及之后的版本为Java平台提供了一个数据库管理系统,简称Derby数据库。
       ●  连接Derby数据库需要有关的类,这些类以jar文件的形式存的放在Java安装目录的dblib目录中, 需要把Java安装目录dblib,
           例如
                 E:jdk1.8dblib
          下的下列三个jar文件:
          ************************
           ▲ derby.jar
           ▲ derbynet.jar
           ▲ derbyclient.jar
         ***************************

    复制到Java运行环境的扩展中,即将这些jar文件存放在JDK安装目录的jrelibext目录中.
    例如,复制到:E:jdk1.8jrelibext 目录中

    如果jdk中没有Derby的jar文件,这里给出一个压缩文件的百度网盘链接:

    链接:https://pan.baidu.com/s/1lC4z0w8CWrHpRSX340NnJQ
    提取码:znx9

    解压后找到derby.jar

    二 、配置系统变量path  

     ★ 为了在命令行窗口操作Derby数据库,需要使用Java安装目录中dbin下的一些命令。
     ★ 可以将dbin作为系统环境变量path的一个值,以便随时在命令行窗口中使用dbin中的命令。
          (1)对于Windows 10/Windows 7,用鼠标右键单击“计算机”/“我的电脑”
          (2)在弹出的快捷菜单中选择“属性”命令弹出“系统特性”对话框,再单击该对话框中的“高级系统设置”/“高级选项”。
          (3)然后单击按钮“环境变量”,添加系统环境变量。如果曾经设置过环境变量path,可单击该变量进行编辑操作,将需要的值加入即可。

    在系统变量中新建一个变量,变量名为DERBY_HOME ,变量值为D:javadb-derby-10.14.2.0-bin(变量值就是我们刚才解压过的derby文件夹)。

     
    接着在Path系统变量中加入:%DERBY_HOME%in   

    三 、在命令行连接内置derby数据库

            内置Derby数据库的特点是应用程序必须和该Derby数据库驻留在相同计算机上(内置Derby数据库也是相对后面的网络Derby数据库而言的),并且在当前计算机中,同一时刻不能有两个Java程序访问同一个内置数据库。
        步骤如下:
    *********************************************
        1.启动ij环境
        ●所谓ij环境,就是在该环境下可以使用ij工具来连接数据库,在数据库库中创建表、进行诸如查询、增删改等操作。
        ●执行ij.bat批处理文件,启动ij环境(ij.bat是Java安装目录dbin中的一个批处理文件,为了能在命令行窗口的输入行处于任何目录中时都可以执行ij.bat批处理文件需将dbin作为系统环境变量path的一个值)。
        ●假设连接D:2000目录中名字是dog的内置Derby数据库,那么首先打开命令行窗口,并进入D:2000目录,然后执行ij.bat批处理文件。
        ●退出ij环境,可以在命令行窗口键入:exit;注意,不要忘记exit后面的分号。也可以     【Ctrl+C】退出ij环境。
        进入ij环境环境后,就可以使用ij提供的各种ij命令,比如连接数据库、建立表等命令(ij命令不区分大小写)。
    *********************************************
        2.连接内置derby数据库
        ij命令如下:

    connect 'jdbc:derby:数据库;create=true|false';

         ● create=true,如果数据库不存在,那么就在当前目录,即启动ij的当前目录(比如D:2000)中创建数据库,并与所创建的数据库建立连接。如果数据库存在,那么不再创建数据库,直接与存在的数据库建立连接。
         ● create=false,如果数据库存在,就直接与存在的数据库建立连接,如果数据库不存在,不再创建数据库,直接放弃连接。
        例如:

         connect 'jdbc:derby:dog;create=true';

        连接数据库时,也可以指定数据库所在的目录,例如,连接D:0下名字是cat的数据库:
        connect 'jdbc:derby:D:/00/cat;create=true';

    四、 操作表

        ★ 和数据库建立连接以后,就可以使用ij命令(这些ij命令就是标准的SQL语句)在数据库库中进行创建表、向表中插入记录、删除表中的记录、查询表中的记录等操作。。
    1. 在数据库中创建表
           创建表的ij命令如下:
          ●create table 表名(字段1 数据类型, 字段2 字段2属性...字段n 字段n属性);
         我们准备在dog数据库中创建名字为mess的表。该表的字段(属性)为:
          ◆number(文本,主键)  
          ◆name(文本)
          ◆birth(日期)
          ◆price(数字,双精度)。

        create table mess
        (number char(10) primary key,name varchar(20),birth date, price double);

    2. 向表中插入记录(行)
     
        创建表后,就可以使用ij命令向表中插入记录、使用ij命令查询记录。向表中插入记录的ij命令如下(就是标准的SQL语句):
       ●insert into 表名 values(字段1值,字段2值,…字段n值);
       例如:

       insert into mess values('001','藏獒','2015-1-1',18576.98);
       insert into mess values('002','哈巴','2015-6-19',6576);
       insert into mess values('003','牧养犬','2015-10-10',9737.9);

    3. 查询表中的记录


        记录带着全部字段值:
        ●  select * from 表名;
       例如:

        select * from mess;  

    带着部分字段值:
       ● select 字段m,...字段n  from 表名;
       例如:

      select name,price from mess; 

    4. 更新表中的记录
             ● update <表名>  set <字段名> = 新值  where <条件子句>
       例如:

              update mess  set  price = 2999   where number='002';
              update mess  set  name = '牧养狗'  where name='哈巴';
              update mess  set  name = '中档狗'  where price<2000 And price>=1000;

    5.删除表中的记录
       
        ● delete  from  <表名>  where  <条件子句>

    五、 网络derby数据库

    注意网络Derby数据库需要导入的jar包是derbyclient.jar

       网络derby数据库允许网络上其他计算机中的Java程序通过网络访问该网络derby数据库。
       步骤:
       1.启动Derby数据库服务器
       在服务器端的命令行窗口执行startNetworkServer.bat启动Derby数据库服务器。 
       2.连接网络derby数据库
        在命令行连接:
        connect 'jdbc:derby://数据库服务器IP:1527/数据库名;create=true|false';
       例如,

       connect 'jdbc:derby://127.0.0.1:1527//student;create=true';

       ★如果student数据库不存在,那么上述ij命令就会在服务器端建立student数据库。建立student数据库后,在启动Derby数据库服务器的目录(比如D:0)下可以看到一个名字是student的文件夹,Derby数据库以文件夹的形式存放,而不是以文件形式存放。
       ★客户端和网络Derby数据库建立连接后,就可以使用ij命令在网络Derby数据库中创建表等操作(这些操作与操作内置Derby数据库完全相同)。
       ★以下使用ij命令在网络Derby数据库student中创建了名字是mingdan的表,该表有2个字段:xuehao和name,字段名和类型如下
          ☆   xuehao int primary key not null,
          ☆   name varchar(32) 
       (1)

    connect 'jdbc:derby://127.0.0.1:1527//student;create=true';

       (2)

     create table mingdan
     (xuehao int primary key not null,name varchar(30));

       (3)

      insert into mingdan values(001,'李奎魁');
      insert into mingdan values(2,'翠花花');

    六 、Derby数据库常用的基本数据类型

    ★     smallint   取值范围 -2^15~2^15-1。例如,age smallint,其中age是字段名。
    ★     int        取值范围 -2^31~2^31-1。例如,spead int 。
    ★     bigint       取值范围 -2^63~2^63-1。例如,price int。
    ★     real或float  取值范围 -3.402x10^+38~3.402x10+38。例如,length real。
    ★     double    取值范围  -1.79769x10+308~1.79769x10+308。例如, weight double。
    ★     decimal   小数点可精确到31位。例如,height decimal(12,6)。
    ★     Decimal(n,m)表示数值中共有n位数,其中整数n-m位, 小数m位。
                     

    例:decimal(10,6),数值中共有10位数,其中整数占4位,小数占6位。
    例:decimal(2,1),插入“1.23”或“1.2345...”会自动四舍五入成“1.2”;         
    插入“2”会自动补成“2.0”,以确保2位的有效长度,其中包含1位小数。

    ★     char      最大长度254。例如, name char(20)。
    ★     varchar   最大长度32672。例如,content varchar(265)。
    ★     time      取值范围00:00:00~24:00:00。例如,sleep time。
    ★     date      取值范围0001-01-01 ~9999-12-31。例如,birth date。
    ★     timestamp 取值范围是date和time的合集。例如,start timestamp。

    例如:
       (1)

     connect 'jdbc:derby:play;create=true';

       (2)

    create table time_list
    (shijian time ,name char(18),song char(200));

       (3)

    insert into time_list values( '20:12:56','刘翠花','月半小夜曲')

    七、 JDBC操作数据库       

    我们经常使用JDBC进行如下的操作。
    ●  与一个数据库建立连接。
    ●  向已连接的数据库发送SQL语句。
    ●  处理SQL语句返回的结果。
    1. 连接内置Derby数据库
       步骤
    (1)加载Derby数据库驱动程序

      try{  Class.forName("org.apache.derby.jdbc.EmbeddedDriver");//加载驱动
      }
      catch(Exception e) {
         System.out.print(e);
      }

    (2)连接内置Derby数据库
       Connection con = DriverManager.getConnection("jdbc:derby:数据库;create=true|false");
      例如,

      Connection con = DriverManager.getConnection("jdbc:derby:boy;create=true");

    以下例1是一个简单的Java应用程序,该程序连接到内置Derby数据库dog

    import java.sql.*;
    public class Day1_1{
       public static void main(String args[]) {
          Connection con;
          Statement sql;
          ResultSet rs;
          try{ Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
          }
          catch(Exception e) {
                System.out.print(e);
          }
          try {
                con=DriverManager.getConnection("jdbc:derby:dog;create=true");
                sql=con.createStatement();
                rs=sql.executeQuery("SELECT * FROM mess ");
                while(rs.next()) {
                  String number=rs.getString(1);
                  String name=rs.getString(2);
                  Date date=rs.getDate(3);
                  double price=rs.getDouble("price");
                  System.out.print(number+"|");
                  System.out.print(name+"|");
                  System.out.print(date.toString()+"|");
                  System.out.println(price+"|");
              }
              con.close();
          }
          catch(SQLException e) {
              System.out.println(e);
          }
      }
    }

    2. 连接网络Derby数据库
       ★首先服务器端在它的命令行窗口执行startNetworkServer.bat启动Derby数据库服务器。
       ●客户端的步骤
    (1)加载Derby数据库驱动程序

      try{  Class.forName("org.apache.derby.jdbc.ClientDriver");//加载驱动
      }
      catch(Exception e) {
         System.out.print(e);
      }

    (2)连接网络Derby数据库
       Connection con = DriverManager.getConnection ("jdbc:derby://数据库服务器IP:1527/数据库;create=true|false");
      例如,

      Connection con = DriverManager.getConnection("jdbc:derby://127.0.0.1:1527//student;create=true");


    在运行下面的例2之前,首先在服务器端计算机上打开命令行窗口,并进入D:0目录,执行startNetworkServer启动Derby数据库服务器启动(因为例子2要访问的网络Derby数据库位于服务器所在计算机的D:0目录中)

    import java.sql.*; 
    public class Day1_2 {
       public static void main(String args[]) {
          Connection con;
          Statement sql; 
          ResultSet rs;
          try{ Class.forName("org.apache.derby.jdbc.ClientDriver");
          }
          catch(Exception e) {
             System.out.print(e);
          }
          try { 
              String uri="jdbc:derby://127.0.0.1:1527//student;create=true";
              con=DriverManager.getConnection(uri);//和网络Derby数据库student建立连接
              sql=con.createStatement();
              rs=sql.executeQuery("SELECT * FROM mingdan");
              while(rs.next()) {
                  String number=rs.getString(1);
                  String name=rs.getString(2);
                  System.out.print(number+"|");
                  System.out.println(name+"|");
              }
              con.close();
          }
          catch(SQLException e) { 
              System.out.println(e);
          }
       }
    }
  • 相关阅读:
    复杂网络常用数据集网站
    01单人决策问题
    《无线网络安全技术》阅读笔记
    最优化理论基础
    测试layer控件,除了ie报错其它浏览器都生效
    Native App、Web App、Hybrid App
    有些效果在IE下运行时,IE下开调试模式才显示正常是什么原因?
    关于Content-Type中application/x-www-form-urlencoded 和 multipart/form-data的区别及用法
    js表单提交的三种方式
    前端涉及的所有知识体系
  • 原文地址:https://www.cnblogs.com/wkfvawl/p/12091358.html
Copyright © 2011-2022 走看看