精华内容
下载资源
问答
  • java关系数据库

    2021-03-11 11:12:49
    一、JDBC基础JDBC是Java应用与数据库管理系统进行交互的标准API,包括两个包:核心API---java.sql和扩展的API---javax.sql。应用程序通过核心API的接口实现数据库连接和数据处理,其主要接口如下:接口名称功能java....

    一、JDBC基础

    JDBC是Java应用与数据库管理系统进行交互的标准API,包括两个包:核心API---java.sql和扩展的API---javax.sql。应用程序通过核心API的接口实现数据库连接和数据处理,其主要接口如下:

    接口名称

    功能

    java.sql.Driver

    驱动程序,连接应用程序和数据库,用于读取数据库驱动器的信息,提供连接方法,建立访问数据库所用的Connection对象。在加载某一Driver类时,它应该创建自己的实例并向DriverManager注册该实例。

    java.sql.DriverManager

    驱动程序管理器,管理一组Driver对象,对程序中用到的驱动程序进行管理,包括加载驱动程序、获得连接对象、向数据库发送信息。在调用getConnection方法时,DriverManager会试着从初始化时加载的那些驱动程序以及使用与当前 applet 或应用程序相同的类加载器显式加载的那些驱动程序中查找合适的驱动程序。

    java.sql.Connection

    连接Java数据库和Java应用程序之间的主要对象并创建所有的Statement对象。 不管对数据库进行什么样的操作,都需要创建一个连接,然后通过这个连接来完成操作。

    java.sql.Statement

    语句对象,代表了一个特定的容器,对一个特定的数据库执行SQL语句。用于执行静态SQL语句并返回它所生成结果的对象。在默认情况下,同一时间每个 Statement 对象在只能打开一个ResultSet对象。因此,如果读取一个 ResultSet 对象与读取另一个交叉,则这两个对象必须是由不同的Statement对象生成的。如果存在某个语句的打开的当前ResultSet对象,则Statement接口中的所有执行方法都会隐式关闭它。

    PreparedStatement

    表示预编译的SQL语句的对象。SQL语句被预编译并存储在PreparedStatement对象中。然后可以使用此对象多次高效地执行该语句。

    java.sql.ResultSet

    用于控制对一个特定语句的行数据的存取,也就是数据库中记录或行组成的集合。

    二、结果集及其常见方法

    1. 结果集有三种类型,它的类型决定了能否对结果集中的游标进行操作,以及并发的数据源的改变能否反映到结果集中。具体描述如下:

    类型

    描述

    TYPE_FORWARD_ONLY

    默认的结果集类型,这种类型的结果集对象的游标只能向前移动,从第1行的前面到最后一行的后面。

    TYPE_SCROLL_INSENSITIVE

    这种类型的结果集对象的游标可以向前移动,也可以直接定位到某一行上,但是对结果集中对应数据的变化是不敏感的。

    TYPE_SCROLL_SENSITIVE

    这种类型的结果集对象的游标可以向前移动,也可以直接定位到某一行上,并且对结果集中对应数据的变化是敏感的(如果)。

    2. 结果集的并发性决定了结果集所支持的更新操作的层次,有两种并发性层次:

    类型

    描述

    CONCUR_READ_ONLY

    默认的结果集并发类型,这种情况下的结果集对象不支持更新操作。

    CONCUR_UPDATABLE

    这种情况下的结果集对象支持更新操作。

    可以通过调用DatabaseMetaData的supportsResultSetConcurrency方法来看驱动是否支持结果集上的更新操作,该方法定义如下:

    boolean supportsResultSetConcurrency(int type,int concurrency) throws SQLException

    第一个数据表示结果集类型,第二个参数表示并发类型。

    3. 结果集的延续性是指当事务提交时,在当前事务中创建的结果集是否关闭。默认情况下会关闭这个结果集对象。延续性可以通过如下两个静态属性来指定:

    类型

    描述

    HOLD_CURSORS_OVER_COMMIT

    当提交事务时不关闭该结果集对象。

    CLOSE_CURSORS_AT_COMMIT

    提交事务时关闭结果集对象,有时候会提高性能。

    4. 结果集的类型、并发性和延续性可以通过Connection.createStatement、Connection.prepareStatement和Connection.prepareCall等方法指定,同时Statement、PreparedStatement和CallableStatement接口也提供了相应的setter方法和getter方法。如下代码是创建语句对象的时候指定结果集的类型、并发性和延续性。

    Connection conn = ds.getConnection(user,passwd);

    Statement stmt = conn.createStatement(ResultSet. TYPE_SCROLL_INSENSITIVE,

    ResultSet. CONCUR_READ_ONLY, ResultSet. CLOSE_CURSORS_AT_COMMIT);

    5. 结果集常用的游标操作方法如下表所示:

    返回值

    方法名

    功能描述

    boolean

    next()

    将游标从当前位置向前移一行,如果指向某行,返回true,如果指向最后一行的后面,返回false

    boolean

    previous()

    将游标从当前位置向后移一行,如果指向某行,返回true,如果指向第一行的前面,返回false

    boolean

    first()

    将游标移到此结果集的第一行。

    boolean

    last()

    将游标移到些结果集的最后一行。

    void

    beforeFirst()

    将游标移动到此结果集的开始处,正好位于第一行之前

    void

    afterLast()

    将游标移动到此结果集的末尾,正好位于最后一行之后

    boolean

    relative(int rows)

    按相对行数移动游标。如果参数为0,游标无变化。如果参数是正的,游标向前移动rows行,如果rows太大,游标指向最后1条记录的后面。如果参数是负数,游标向后移动rows行,如果rows太小,游标指向第1条记录的前面。如果游标指向一个有效行,方法返回true,否则返回false

    boolean

    absolute(int row)

    将游标移动到参数所指定的行

    6. 以下是示例代码:

    //获取结果集中列的类型

    ResultSet rs = stmt.executeQuery(sqlString);

    ResultSetMetaData rsmd = rs.getMetaData();

    int [] colType = new int[ rsmd.getColumnCount() ];

    for(int idx=0,int col=1;idx

    colType[idx] = rsmd.getColumnType(col);

    //如果结果集支持更新操作,可以通过结果集完成更新、删除和插入操作。

    Statement stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE);

    ResultSet rs = stmt.executeQuery(“select author from booklist where isbn=111”);

    rs.next();

    rs.updateString(“author”,”JerryChoi”);

    rs.updateRow();

    //插入记录

    ResultSet rs = stmt.executeQuery(“select author,title,isbn from booklist”);

    rs.moveToInsertRow();

    //设置每一列的值

    rs.updateString(1,”aaa”);

    rs.updateString(2,”bbb”);

    rs.updateLong(3,1234);

    //插入一行

    rs.insertRow();

    rs.moveToCurrentRow();

    //删除记录

    rs.absolute(4);

    rs.deleteRow();

    三、连接数据库的基本过程

    基本过程如下:

    l 建立数据源

    l 导入用到的包

    l 加载驱动程序

    l 创建与数据库的连接

    l 创建语句对象

    l 编写SQL语句

    l 执行SQL语句

    l 处理数据

    l 关闭相关对象

    l 处理异常

    1.建立数据源

    假设已经存在名为bookstore的MySQL数据库。

    2.导入用到的包

    import java.sql.*;

    3.加载驱动程序

    //如果驱动程序和名字是MyDriver,加载驱动程序的语句是:

    Class.forName(“MyDriver”);

    //或者

    Class.forName(“MyDriver”).newInstance();

    //本例中使用MySQL,刚加载的语句为:

    Class.forName(“com.mysql.jdbc.Driver”);

    4.创建与数据库的连接

    连接数据库需要知道如下信息:

    l 数据库所在的主机,所使用的端口等

    l 数据库的名字

    l 用户信息,包括用户名和口令

    //连接数据库的格式如下:

    //constr:连接字符串;user:用户名;passwd:口令

    Connection con = DriverManager.getConnection(constr,user,passwd);

    //MySQL数据库的连接示例如下:

    Connection con = DriverManager.getConnection(“jdbc:mysql://localhost:3306/bookstore”,”root”,”root”);

    以下表格是常用的数据库驱动程序名字和URL格式:

    数据库

    驱动程序

    URL

    Oracle

    oracle.jdbc.driver.OracleDriver

    jdbc:oracle:thin:@dbip:port:databasename

    dbip:数据库服务器的 IP 地址,如果是本地可写 localhost 或 127.0.0.1 。

    port :数据库的监听端口,需要看安装时的配置,缺省为 1521 。

    databasename:数据库的 SID ,通常为全局数据库的名字。

    SQL Server

    com.microsoft.jdbc.sqlserver.SQLServerDriver

    jdbc:microsoft:sqlserver://dbip:port;DatabaseName=databasename

    dbip:数据库服务器的 IP 地址,如果是本地可写 localhost 或 127.0.0.1 。

    port :数据库的监听端口,需要看安装时的配置,缺省为 1433。

    databasename:数据库的 SID ,通常为全局数据库的名字。

    DB2

    com.ibm.db2.jdbc.app.DB2Driver

    jdbc:db2://dbip:port/databasename

    dbip:数据库服务器的 IP 地址,如果是本地可写 localhost 或 127.0.0.1 。

    port :数据库的监听端口,需要看安装时的配置。

    databasename:数据库的 SID ,通常为全局数据库的名字。

    Informix

    com.informix.jdbc.IfxDriver

    jdbc:infoxmix-sqli://dbip:port /testDB:INFORMIXSERVER= databasename;user=username;password=userpassword

    dbip:数据库服务器的 IP 地址,如果是本地可写 localhost 或 127.0.0.1 。

    port :数据库的监听端口,需要看安装时的配置。

    databasename:数据库的 SID ,通常为全局数据库的名字。

    user:用户名

    password:用户口令

    Sybase

    com.sybase.jdbc.SybDriver

    jdbc:sybase:Tds:dbip:port/databasename

    dbip:数据库服务器的 IP 地址,如果是本地可写 localhost 或 127.0.0.1 。

    port :数据库的监听端口,需要看安装时的配置。

    databasename:数据库的 SID ,通常为全局数据库的名字。

    MySQL

    com.mysql.jdbc.Driver

    org.gjt.mm.mysql.Driver

    jdbc:mysql://dbip:port/databasename [?param1=value1][&param2=value2]……

    注:[] 是可选的选项

    dbip:数据库服务器的IP地址,如果是本地可写成 localhost 或 127.0.0.1 。

    port:数据库的监听端口,需要看安装时的配置,缺省为 3306。

    databasename:数据库的 SID ,通常为全局数据库的名字。

    param1、param2、value1和value2:附加参数,常见参数如下:

    l user:用户名

    l password:密码

    l autoReconnect:联机失败时是否重新联机(true/false)

    l maxReconnect:尝试重新联机次数

    l initialTimeout:尝试重新联机间隔

    l maxRows:传回最大行数

    l useUnicode:是否使用Unicode编码(ture/false)

    l characterEncoding:何种编码

    l relaxAutocommit:是否自动提交(true/false)

    l capitalizeTypeNames:数据定义的名称以大写表示

    PostgreSQL

    org.postgresql.Driver

    jdbc:postgresql://dbip:port/databasename

    dbip:数据库服务器的IP地址,如果是本地可写成 localhost 或 127.0.0.1 。

    port:数据库的监听端口,需要看安装时的配置。

    databasename:数据库的 SID ,通常为全局数据库的名字。

    Access

    sun.jdbc.odbc.JdbcOdbcDriver

    jdbc:odbc:datasourcename

    datasourcename:数据库的 SID ,通常为全局数据库的名字。

    注:该驱动只能工作在 Windows 系统中,首先需要在操作系统中建立一个可以访问 Access 数据库的本地数据源(ODBC) ,如果名字为 allandb ,那么 URL 写法如下:jdbc:odbc:allandb

    5.创建语句对象

    语句对象的作业就是执行SQL语句。语句对象的创建是通过连接对象创建的,所以在创建语句对象之前应该确保连接对象已经创建。以下代码是创建语句对象的代码,不管连接什么数据库,不管执行什么样的操作,这句代码不用改:

    Statement stmt = con.createStatement();

    6.编写SQL语句

    示例代码如下:

    String sql = “select * from usertable”;

    7.执行SQL语句

    常用的执行SQL语句的方法有以下两个:

    返回值

    方法

    说明

    ResultSet

    executeQuery(String sql)

    主要用于执行有结果集返回的SQL语句,典型的就是select查询语句。

    int

    executeUpdate(String sql)

    主要用于执行没有结果集返回的SQL语句,如果要在数据库中添加、修改或删除信息,它们都没有返回值,应该使用本方法。该方法的返回值是一个整数,表示影响数据库中记录的个数。

    例如,要执行上面的查询语句,可以使用如下代码:

    ResultSet rs = stmt.executeQuery(sql);

    8.处理结果集

    可参照上面的“结果集及其常见方法”

    注:对行的遍历,使用结果集的next()方法。要获取某一列,可以使用getXXX(int columnIndex)或getXXX(String columnLabel)方法。以下是示例代码:

    //以字符串的形式获取第1列或字段名为username的列

    String userid = rs.getString(1);

    String userName = rs.getString(“username”);

    9.关闭相关对象

    代码如下:

    //应该按以下顺序关闭相关对象,该顺序与创建对象的顺序相反

    //关闭结果集

    rs.close();

    //关闭语句

    stmt.close();

    //关闭连接

    con.close();

    10.异常处理

    使用以下框架对异常进行处理:

    try{

    ……//要执行的可能出错的代码

    }catch(Exception e){

    ……//出错后的处理代码

    }finally{

    ……//不管是否出错都要执行的代码

    }

    以下是综合示例代码:

    String className = “com.mysql.jdbc.Driver”;

    String url = “jdbc:mysql://localhost:3306/bookstore”;

    String username = “root”;

    String userpass = “root”;

    String tableName = “usertable”

    Connection con = null;

    PreparedStatement pstmt = null;

    ResultSet rs = null;

    try{

    Class.forName(className);

    con = DriverManager.getConnection(url,username,userpass);

    pstmt = con.prepareStatement(“select * from “ + tableName);

    rs = pstmt.executeQuery();

    while(rs.next())

    {

    for(int i=0;i

    System.out.println(rs.getString(i+1));

    System.out.println();

    }

    }catch(Exception e){

    System.out.println(e.toString);

    }finally{

    try{ rs.close();}catch(Exception e){}

    try{ pstmt.close();}catch(Exception e){}

    try{ con.close();}catch(Exception e){}

    }

    展开全文
  • HSQLDBHSQLDB(Hypersonic SQL)是纯Java开发的关系数据库...AxionAxion是一个小型,快速,开源的关系数据库系统(RDBMS)支持标准SQLJDBC。它主要应用在Java程序中。db4o完全原生于Java和.NET100%面向对象,抛开对象...

    HSQLDB

    HSQLDB(Hypersonic SQL)是纯Java开发的关系型数据库,并提供JDBC驱动存取数据。支持ANSI-92标准SQL语法。而且他占的空间很小。大约只有160K,拥有快速的数据库引擎。

    Axion

    Axion是一个小型,快速,开源的关系型数据库系统(RDBMS)支持标准SQL与JDBC。它主要应用在Java程序中。

    db4o

    完全原生于Java和.NET

    100%面向对象,抛开对象-关系映射

    为嵌入式应用优化

    开源,可以基于GPL协议免费使用.

    中文资源社区:http://www.db4o.com/china?src=cn

    Mckoi DataBase

    McKoiDB是GPL的license,是由纯Java开的数据库。他的JDBC Driver是使用JDBC version 3的Spec.他也是遵循SQL-92的标准,也尽量支持新的SQL特色,并且支持Transaction的功能.

    QED

    QED(Quadcap Embeddable Database)是一个速度快,但很小的纯java关系型数据库。支持SQL92标准,支持事务回滚。QED可以任意免费使用。

    yaRDBMS

    yaRDBMS (yet another relational database management system)也是一个基于java的关系型数据库。支持事务,查询优化,灾难性恢复,索引支持。

    ApacheDerby

    Apache Derby是一种高质量的、纯Java?的嵌入式关系数据库引擎,IBM?最近已将其捐献给开放源码社区。Derby数据库基于文件系统,具有高度的可移植性,并且是轻量级的,这使得它非常便于发布。

    One$DB

    Daffodil DB Java嵌入式数据库是一个独立平台且功能丰富的Java关系数据库管理系统。能提供多级连接是针对嵌入式的Java应用程序而设计。Daffodil DB嵌入式数据库可以在Java程序内直接集成,并且对终端用户是完全透明的。Daffodil DB嵌入式数据库版本具有微小的内存耗用,提供全面的安全功能且无需管理。Daffodil DB嵌入式数据库版可与SQL 99, JDBC 3.0和J2EE标准兼容。

    TinySQL

    TinySQL是一个轻量级的纯java数据库引擎,同时也再带一个jdbc驱动。

    SMYLE

    SMYLE一个基于LGPL的高可靠性、高性能Java数据库,能够处理100,000行的表,支持多维索引、事务处理、崩溃及时恢复等特性。SMYLE可以嵌入到应用中,不需要单独安装发布。

    JavuSQL

    JavuSQL(原先叫SimpleSQL)是一个非常小关系型数据库。包括JDBC驱动只有200kB左右,数据存储在一个64-bit的文件中。SQL语法支持SQL-92标准。

    Ashpool

    Ashpool是一个Java开发的轻量级XML数据库。它的目的是可以使用标准的SQL92语法通过一个JDBC驱动来查询,新增,更新和删除XML文档.

    dbXML

    dbXML是一个Native XML数据库.它能够索引和存储XML文档集合.这个服务器还以脚本,类和触发器的形式来提供商业逻辑.

    Ozone

    ozone是一个面向对象的数据库管理系统完全用Java实现.ozone项目的目的是让开发者可以构建一个纯面向对象,纯Java的数据库应用程序.ozone还可以用来存储XML,可以用任XML工具来访问这些数据.

    eXist

    eXist是一个开源的native XML数据库.它有依据索引的XQuery处理程序,可以自动进行索引,扩展的全文本搜索,XUpdate支持并且它与现存的XML开发工具可以紧密的结合在一起.

    Emdros

    Emdros是一个text数据库可以用来分析/注解(analyzed/annotated)文本.Emdros有自己的强大查询语言用来进行查询,新增,修改,删除操作.

    JDBF

    JDBF是基于JDBC的对象-关系映射系统.它需要一个叫做repository的XML配置文件用来映射对象.它生成SQL来取得,保存,删除对象.

    BerkeleyDB JE

    Berkeley DB JE是一个高性能的事务存储引擎完全利用Java开发.Berkeley DB JE在应用程序的地址空间(address space)上执行,不需要进行服务端与客户端的通讯.它应用程序的原生格式来存储格数据所以不需要在运时期进行数据的转换.Berkeley DB JE完全支持ACID事务与恢复.

    Mondrian

    Mondrian是一个OLAP数据库.它实现了MDX语言,XML解析,JOLAP规范.它从SQL和其它数据源读取数据并把这数据聚集在内存缓存中.

    Apache Xindice

    Apache Xindice也是一个Native-XML数据库(NXD).Xindice提供了命令行界面来管理数据库。Xindice使用XPath做为它的查询语言与XML:DB XUpdate做为它的更新语言.

    JDOInstruments

    JDOInstruments是一个用Java开发的嵌入式面向对象数据库.它还实现了Sun的JDO规范用于Java对象的透明持久化.它可运行在windows2000, windows2003 64bits,和Linux(Fedora Core2)平台上.

    H2

    H2是一个采用Java开发开源的嵌入式SQL数据库。它支持集群,提供JDBC和部分ODBC API,采用C/S模型。它还包括一个用于管理数据库的Web客户端。

    RETE-DB

    RETE-DB是一个可定制多用户Web数据库。RETE-DB与其它多功能的internet数据库相比较Speed,security和scalability是它显著的优点。RETE-DB的特点包括:

    1.基于Group的访问控制思想。

    2.安全性:可对每一条记录,每一个字段定义访问权限。

    3.快速:经测试当处理数万条记录时,它还能跑得异常快。

    4.可量测性(Scalability):多个分布式RETE-DB实例能够平行地运行在相同的数据库上。数据的每一次变化都将被记录,甚至包括RETE-DB管理操作变化的记录。

    5.导入/导出:搜索得到的结果能够被导出到电子表格中也能够把电子表格的数据类型记录导到数据库中。

    Perst

    Perst是一个简单,快速,便捷,面向对象适合Java与.NET的数据库。Perst不需要专门的编译器或与预处理器,并且支持ACID事务。

    SmallSQL

    SmallSQL是一个100%纯Java的DBMS,一个用于Java桌面应用程序的嵌入式关系型数据库。它有一个JDBC3.0接口并提供许多ANSI SQL92和ANSI SQL99特性。SmallSQL非常小而且快速因为它没有网络接口。

    MyOODB

    MyOODB是一个面向对象数据库,真正快速的分布式数据库,支持真正的分布式对象,支持真正的分布式事务,支持隐式/显式事务,支持无缝高速 Web服务访问,支持数据库自我恢复,支持多个并发嵌套事务并且数据库大小只占磁盘很小的空间。集合MyOOWEB和MyOOSDK能为开发快速,很小但 又强大的App/Web应用程序提供一个平台。

    Metanotion BlockFile

    BlockFile一个100%纯Java,轻量级,单个文件嵌入式数据库。它的功能介于SQLite与BerkeleyDB之间。专门为PDA和Mobile应用程序而开发。

    JODB

    JODB是一个面向对象开源数据库。该数据库使用缓存机制来避免占用太多内存。在查询时也尽可能减少实例化对象以避免进行过多地垃圾收集。

    NeoDatis ODB

    NeoDatis ODB是一个面向对象数据库,一个真正透明的对象持久层。利用一行简单的代码就能够持久化native object。ODB非常简单、非常快并自带强大查询语言。ODB既可以做为一个内嵌数据库引擎使用,也可以以C/S模式运行。

    BaseX

    BaseX是一个原生XML数据库。它具有简洁的存储结构,高效的XPath和XQuery实现和一个用于操作存储数据的可视化前台操作界面。

    FeatherDB

    FeatherDB是一个采用Java开发基于JSON的Document数据库,是CouchDB的一个克隆。它拥有一个完整的 HTTP/REST接口,支持通过Java类或JavaScript(使用java6的JavaScript支持)实现查询。FeatherDB使用嵌入 的Jetty HTTP服务器来处理所有交互。

    hamsterdb-java

    hamsterdb-java是hamsterdb嵌入式数据库的一个Java封装。hamsterdb是一个采用C开发,非常快,轻量级的嵌入式数据库引擎。

    Neo

    Neo是一个图形数据库(graph database)。它是一个可嵌入,基于磁盘的Java持久化引擎,其数据存储采用图形结构来代替表格。一张graph就是一种网状的结构图更适合于敏 捷、快速开发。特性:能够以直观,面向图形的方式展示数据,网状结构图由节点,关联和属性组成。Neo能够在单一计算机上处理几十亿个节点,关联和属性。 一个强大的横向移动框架能够在节点空间中快速横向移动。整个Neo大小还不到500k。拥有简单、便利、面向对象的API。此外Neo包括一些数据库固有 的特性:ACID事务支持,数据持久化,并行控制,事务恢复等。

    xbird

    XBird是一个轻量级的XQuery处理器和Native XML数据库引擎,嵌入式数据库引擎,分布式XQuery处理器。此外XBird还支持HTML Web页面抓取(scraping)。

    ChaiDB

    ChaiDB是一个采用Java开发的高性能嵌入式数据库。使用B-Tree实现数据存储,提供JCA,JTA接口,数据库管理工具比如:备份与还原等。

    HeliDB

    HeliDB是一个简单、快速的数据库,用于存储来自Java程序的key—value成对数据。可以通过配置来使该数据库支持不同的功能和存储 方式。最简单的配置情况下,该数据库只是一个基于文件的Map,更复杂的配置,该数据库将使用B 树数据结构来提供快速搜索、新增和事务支持。

    展开全文
  • java.sql.Ty p e s 值Java 类型IBM DB2Oracle Sybase SQL Informix IBM Content ManagerBIGINT http://www.doczj.com/doc/7fe3f3f5700abb68a982fbee.htmlng.long BIGINT NUMBER (38, 0)BIGINT BIGINT INT8 DK_CM_...

    java.sql.

    Ty p e s 值Java 类型

    IBM DB

    2

    Oracle Sybase SQL Informix IBM Content Manager

    BIGINT http://www.doczj.com/doc/7fe3f3f5700abb68a982fbee.htmlng.long BIGINT NUMB

    ER (3

    8, 0)

    BIGINT BIGINT INT8 DK_CM_BIGINT

    BINARY byte[] CHAR F

    OR BIT

    DATA

    RAW BINARY IMAGE BYTE DK_CM_BLOB

    BIT http://www.doczj.com/doc/7fe3f3f5700abb68a982fbee.htmlng.Boole

    an

    N/A BIT BIT BIT BIT DK_CM_SMALLINT

    BLOB byte[] BLOB BLOB BLOB BLOB BLOB DK_CM_BLOB

    CHAR http://www.doczj.com/doc/7fe3f3f5700abb68a982fbee.htmlng.String CHAR,

    GRAPHI

    C

    CHAR CHAR CHAR CHAR DK_CM_CHAR

    CLOB http://www.doczj.com/doc/7fe3f3f5700abb68a982fbee.htmlng.String C L OB,

    DBCLOB

    CLOB CLOB CLOB CLOB DK_CM_CLOB

    DATE java.sql.Date DATE DATE DATE DATE DATE DK_CM_DATE

    D E C I M AL java.math.BigD

    ecimal

    DECIMA

    L

    NUMB

    ER

    DECIMA

    L, MON

    EY, SM

    A L L M O

    NEY

    D E C I M

    AL

    DECIMA

    L

    DK_CM_DECIMAL

    DOUBL E http://www.doczj.com/doc/7fe3f3f5700abb68a982fbee.htmlng.Doubl

    e

    DOUBLE

    DOUB

    LE PR

    E C I S I

    ON

    DOUBL

    E P R E

    CISION

    DOUBL

    E P R E

    CISION

    DOUBLE

    PRECIS

    ION

    DK_CM_DOUBLE

    FLOAT http://www.doczj.com/doc/7fe3f3f5700abb68a982fbee.htmlng.Doubl

    e

    FLOAT FLOAT FLOAT FLOAT FLOAT DK_CM_DOUBLE

    INTEGE R http://www.doczj.com/doc/7fe3f3f5700abb68a982fbee.htmlng.Intege

    r

    INTEGE

    R

    INTEG

    ER

    INT

    INTEGE

    R

    INTEGE

    R

    DK_CM_INTEGER

    JAVA_O BJECT http://www.doczj.com/doc/7fe3f3f5700abb68a982fbee.htmlng.Object

    JAVA_O

    BJECT

    JAVA_

    O B J E

    CT

    JAVA_O

    BJECT

    JAVA_O

    BJECT

    OPAQUE N/A

    LONGV

    ARBINA RY byte[]

    LONG V

    A R C H A

    R FOR

    BIT DAT

    A

    LONG

    RAW

    IMAGE IMAGE BYTE DK_CM_BLOB

    LONGV

    ARCHA R http://www.doczj.com/doc/7fe3f3f5700abb68a982fbee.htmlng.String

    LONG V

    A R C H A

    R, L ON

    G VARG

    RAPHIC

    LONG TEXT TEXT TEXT

    DK_CM_VARCHAR(350

    0)

    NUMER IC java.math.BigD

    ecimal

    NUMERI

    C

    NUMB

    ER

    NUMER

    IC

    NUMER

    IC

    NUMERI

    C

    DK_CM_DECIMAL

    OTHER http://www.doczj.com/doc/7fe3f3f5700abb68a982fbee.htmlng.Object OTHER O T H E

    R

    OTHER OTHER OTHER N/A

    REAL http://www.doczj.com/doc/7fe3f3f5700abb68a982fbee.htmlng.Float REAL REAL REAL REAL REAL DK_CM_DOUBLE

    展开全文
  • 数据库与java的几个概念MDAC、DAO、ADO、OLE DB、ODBC是什么关系MDAC(Microsoft Data Access Components)是微软数据库访问组件,Netpise和许多利用数据库的软件都需要操作系统安装MDAC。很多用户的操作系统中已经...

    数据库与java的几个概念

    MDAC、DAO、ADO、OLE DB、ODBC是什么关系

    MDAC(Microsoft Data Access Components)是微软数据库访问组件,Netpise和许多利用数据库的软件都需要操作系统安装MDAC。很多用户的操作系统中已经存在了MDAC,有些是操作系统内置的、有些是其它应用程序安装的。

    在 MDAC 中有三种主要技术:

    (1)ActiveX 数据对象 (ADO): 是一个高级的、易于使用的与 OLE DB 的接口。

    (2)OLE DB: 是一个低级的、高性能的接口,用来实现与各种数据存储的连接。ADO 和 OLE DB 均可处理关系(表格)和非关系(分级或流)数据。

    (3)开放式数据库互连 (ODBC) 是另一个专门为关系数据存储设计的低级的、高性能的接口。

    数据访问方式所走过的几个阶段:

    ODBC – (Open Database Connectivity)是第一个使用SQL访问不同关系数据库的数据访问技术。使用ODBC应用程序能够通过单一的命令操纵不同的数据库,而开发人员需要做的仅仅只是针对不同的应用加入相应的ODBC驱动。开放数据库互连(ODBC)是Microsoft引进的一种早期数据库接口技术。它实际上是我们要在本章后面加以讨论的ADO的前身。

    DAO - (Data Access Objects)不像ODBC那样是面向C/C++程序员的,它是微软提供给Visual Basic开发人员的一种简单的数据访问方法,用于操纵Access数据库。

    RDO – 在使用DAO访问不同的关系型数据库的时候,Jet引擎不得不在DAO和ODBC之间进行命令的转化,导致了性能的下降,而RDO(Remote Data Objects)的出现就顺理成章了。

    OLE DB – 随着越来越多的数据以非关系型格式存储,需要一种新的架构来提供这种应用和数据源之间的无缝连接,基于COM(Component Object Model)的OLE DB应运而生了。

    Java DataBase Connectivity(Java数据库连接),用于访问关系型数据库的Java技术,仅仅是一种技术标准,访问不同的关系型数据库需要相应的JDBC规范的实现包。

    Java 2 Standard Edition(JAVA2标准版),用来开发Java程序的基础,包括编译器、小工具、运行环境,SUN发布的标准版本中还包括核心类库的所有源代码。

    Java Foundation Classes(JAVA基础类),集合了GUI组件以及其他能简化开发和展开桌面和Internet/Intranet应用的服务,其核心就是Swing。

    Java 2 Enterprise Edition(JAVA2企业版),使用Java进行企业开发的一套扩展标准,必须基于J2SE,提供一个基于组件设计、开发、集合、展开企业应用的途径。J2EE 平台提供了多层、

    相关文档:

    以下设置WinXP及以上用户,右键点击我的电脑->属性->高级->环境变量,设置即可。设置完成后需重新启动命令提示符才能生效。具体如下:

    JAVA环境变量设置

    Windows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH。

    JAVA_HOME指向的是JDK的安装路径,如D:\Program Files\IBM\Java50,在这路径下你应该能够� ......

    package test;

    /**

    *

    * @author openpk

    */

    import java.util.concurrent.ExecutorService;

    import java.util.concurrent.Executors;

    import java.util.concurrent.Semaphore;

    public class Main {

    public static void main(String[] args) {

    // 线程池

    ExecutorService exec = Executors ......

    =====suppose such a method:

    public static void openFile(String fileName, PrintWriter stream) throws FileNotFoundException

    {

    stream = new PrintWriter(fileName);

    }

    =====then we want to use it this way:

    PrintWriter toFile = null;

    try

    {

    openFile("data.txt", t ......

    Struts、Hibernate和Spring的轻型J2EE架构的研究

    关键词 Struts,Hibernate,Spring,用户管理

    一、特性

    1. Struts与MVC

    Struts是Apache Jakarta项目的组成部分。该项目的目标是为建立Java Web 应用程序而提供的一个开源

    框架。通过使用Struts框架可以改进和提高Java Server Pages (JSP ......

    写一个Application程序,界面上放置两个Textfield,一个Button,用户在第一个Textfield中输入姓名后敲回车键可以在第二个Textfield中输出:“Welcome you,用姓名”。用户点击Button可以退出程序。

    帮帮忙吧!简单的Java语言。谢谢啦! ......

    展开全文
  • 2.数据库java实体类的属性值名字相同,但是因为两者之间的数据类型不同,会导致在启动项目时报“非法”异常,解决的方法如下: 1.java:String string对应数据库中的CHAR、var、LONGVARCHAR这三个类型。同时也...
  • Java实体类与数据库表映射关系

    千次阅读 2021-04-28 10:10:50
    在代码编写过程中,避免不了与数据库打交道,而这最基本的就是如何把数据映射为实体类,下面介绍几种比较常用的映射方式。 一:xml文件编写映射规则 <!-- 通用查询映射结果 --> <resultMap id="myMap" type...
  • Java与数据库连接篇课程内容:一、什么是JDBC?(What)JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成...
  • java如何与数据库连接

    2021-03-05 22:07:25
    JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和...
  • 基于数据库Java Web现今所有的 Web都是基于数据库的,可见数据库在Web中的开发时如此的重要。然而基本上所有的网站都是要求客户登陆的时候都必须事先注册账号,这样才能进入网页,访问其中的页面,资源。。开发...
  • 一个网络关系数据库应用系统是一个三层次结构。...一种是使用JDBC-ODBC桥接器与数据库连接,一种是用纯Java的JDBC驱动程序实现与数据库连接。使用JDBC-ODBC 桥接器与数据库连接Java程序使用JDBC-ODBC 桥接器...
  • Java程序与数据库进行连接的操作方法一个网络关系数据库应用系统是一个三层次结构。客户机服务器采用网络连接,客户机端应用程序按通信协议服务器端的数据库程序通信;数据库服务程序通过SQL命令与数据库管理...
  • 数据库中创建的数据结构的种类,以及在数据实体之间建立的复杂关系是决定数据库系统效率的重要因素 糟糕的数据库设计表现为一下两方面: 效率低下。 更新和检索数据时会出现许多问题。 良好的数据库设计表现在: ...
  • 数据库会不会很难学?.现在主流的数据库是SQL Server,oracle,mysql。我没做过mysql。如果你懂一门数据库语言,学习其他数据库是很容易的。只是不同的数据库针对不同的用户群体,不同的数据库之间也有一些区别。...
  • Java数据库连接

    2021-03-15 23:59:11
    Java数据库连接[编辑]概述Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。1.简介Java数据库连接...
  • 1.2.2 通过Java程序与数据库服务器交互尽管直接通过 MySQL 的自带客户程序来访问 MySQL 数据库服务器也是可行的,但是实际操作起来却很麻烦。悟空打算让刚参加了电脑扫盲班的小不点来管理猴子信息。小不点不太懂 SQL...
  • Java程序与数据库连接

    2021-03-05 23:13:23
    一个网络关系Java程序与数据库连接方法有两种。一种是使用JDBC-ODBC桥接器与数据库连接,一种是用纯Java的JDBC驱动程序实现与数据库连接。使用JDBC-ODBC 桥接器与数据库连接Java程序使用JDBC-ODBC 桥接器与数据库...
  • 与关系数据库相比,图数据库更能反映数据之间的联系。在Neo4j中,最基本的元素是节点(Nodes )和关系(Relationships ),其他的基本概念可以参考Graph database concepts。如下图所示,节点和边都可以添加属性,...
  • 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述VARCHAR L+N VARCHAR java.lang.String 12CHAR N CHAR java.lang.String 1 字符型BLOB L+N BLOB java.lang.byte[] -4 二进制型TEXT 65535 VARCHAR ...
  • java数据库之视图

    2021-03-14 01:30:50
    视图并不在数据库中以存储的数据值集形式存在,而是存在于实际引用的数据库表中,视图的构成可以是单表查询,多表联合查询,分组查询以及计算(表达式)查询等。行和列数据来自由定义视图的查询所引用的表,并且在引用...
  • 使用java类创建数据库

    2021-03-09 00:03:49
    我想创建一个能够创建应用程序将使用的数据库的.jar文件.这只会执行一次,以便创建数据库.我在访问数据库方面没有问题,做这样的事情:Class.forName("com.mysql.jdbc.Driver").newInstance();Connection conexion = ...
  • 使用Java实现数据库编程-第一章 一、设计数据库的重要性 良好的数据库设计 节省数据的存储空间 能够保证数据的完整性 方便进行数据库应用系统的开发 糟糕的数据库设计 数据冗余、存储空间浪费 内存空间浪费 ...
  • JDBC数据库与Java连接

    2021-06-24 19:48:24
    JDBC是Java访问数据库的标准规范,可以为不同的关系数据库提供统一访问,它由一组用Java语言编写的接口和类组成。 JDBC规范(掌握四个核心对象): DriverManager:用于注册驱动 Connection: 表示与数据库创建的...
  • 标签:java代码加锁publicstatic synchronized int generate(StringtableName){Stringsql = "select value from t_table_id where table_name=?";Connectionconn = null;PreparedStatementpstmt = null;ResultSetrs ...
  • Java操作Sqlite数据库(简介及连接)2020-08-09 15:34:27一、SQLite 简介SQLite,是一款轻型的数据库,是遵守ACID的关系数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计...
  • java原生操作数据库

    2021-03-10 07:51:40
    使用java代码操作oracle数据库需要下载oracle的jdbc连接桥,使用其连接操作。下载引入jdbc连接桥在项目中我使用的是maven构建的项目,由于oracle授权的关系maven源中不可以直接下载。需要到官方的网站去下载,然后...
  • 编写访问数据库Java程序还需要几个重要的类和接口。DriverManager类...通常,应用程序只使用类DriverManager的getConnection()静态方法,用来建立与数据库的连接,返回Connection对象:static Connectio...
  • 背景最近在做一个java桌面应用的时候,考虑到要保存一些...java序列化反序列化Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。JDBCJDBC(Java Data Base Conne...
  • 转:数据库字段和java类型的对应关系下表说明用来当作从产生资源的模型的java.sql.Type值之间的关系,其对应的Java物件类型,以及在受支援的JDBC平台上每一个这些类型的实作(若有的话)。表格也会指出标准...
  • ORM 的原则是将一个类映射到一张表上,然而对象和关系数据库之间有一点的差异。对象和对象之间的关系有一对一,一对多,多对多。这三个关系关系的存储是有差异的。1、一对一:我们可以用两张表分别表示两个类。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 551,229
精华内容 220,491
关键字:

数据库与java关系

java 订阅