JDBC基础

来源:互联网 发布:电视网络直播在线观看 编辑:程序博客网 时间:2024/06/06 17:40

原文地址:http://my.oschina.net/u/1014520/blog/224809


一。简介

    JDBC:实现跨数据库平台,统一数据库编程接口,但在编程中仍需要编写sql语句(不同的数据库语句sql语句有些区别),所以hibernate比较流行,完全屏蔽了数据库的区别。

    JDBC两端:在开发端,有统一的JDBC接口,在数据库端,不同的数据库有不同的JDBC接口(类库)。

二。编程步骤 :具有规律性。

1>操作数据库的一般步骤,可分为4步:

(1)装载数据库驱动(可选)

    这一步并不是必须的,在某些操作系统中,数据库驱动的相关信息在安装驱动程序时已经被保存到指定的位置(如windows中,SQL Server数据库驱动信息被保存到注册表中)。但对于JDBC驱动,这一步是必须的。

(2)建立数据库连接(即获得Connection对象)

    对于网络数据库,建立数据库连接一般要提供下面5种信息:

     1,数据库服务器名(可以是机器名、域名或IP地址)。 2,端口号  3,数据库名   4,用户名  5,密码

    根据数据库的不同,5种信息略有不同。

(3)获得用于进行数据操作的对象

    获得操作对象就可以进行数据库查询、增、删、修改、执行存储过程等操作。

(4)关闭数据库

   2>JDBC操作数据库mysql的步骤

  (1)装载数据库驱动

    用jdbc装载数据库驱动有两种方法:  

    1,使用Class.forName方法

    forName方法是Class类的一个静态方法,返回Class对象。它有一个字符串类型的参数,需要传入一个JDBC驱动类名:Class.forName("com.mysql.jdbc.Driver");

    2,静态创建JDBC驱动类实例

    可直接使用new关键字静态创建JDBC驱动类对象:

    Driver myDriver = new com.mysql.jdbc.Driver();  DriverManager.registerDriver(myDriver);

后者用于注册创建的JDBC驱动类对象。

    (2)建立数据库连接

    在JDBC中,可以使用DriverManager类的getConnection方法获得数据库连接对象。在获得数据库连接对象之前需要知道5中参数信息:

    1,数据库服务器名:localhost  2.端口号 省略(默认) 3,数据库名:xxx  4.用户名:xxx  5.密码:xxx

    MySQL使用了默认的端口号(3306),因此端口号信息可被省略。MySQL的连接字符串格式是:jdbc:nysql://servername/dbname?parameter

    按照上面的信息依次填入这个连接字符串,填完后的连接字符串如下:

    jdbc:mysql://localhost/xxx?user=xxx&password=1234&characterEncoding=UTF8

因为需要在数据库中处理中文,所以在连接字符串的末尾需要加上字符编码以正确处理中文。

    获得数据库连接对象的代码有多种方式,一种是:

    String connStr = " jdbc:mysql://localhost/xxx?user=xxx&password=1234&characterEncoding=UTF8";

    Connection conn = DriverManager.getConnection(connStr);

    另一种是:

    Connection conn = DriverManaget.getConnection(connStr,"用户名","密码");

    除此之外,也可以使用Connection类的setCatalog方法改变当前数据库:

    conn.setCatalog("newdb");

    (3)获得用于进行数据操作的对象

    在JDBC中,可以使用Statement对象(翻译“语句”)和PreparedStatement对象操作数据库。(在此介绍前者)。Statement对象通过Connection接口的createStatement方法创建,有3种重载形式。无参数的是:

    Statement stmt = conn.createStatement();

    通过Statement对象可以对数据库进行查询、增加、删除、修改等操作。

    execute方法一般用于执行DDL(CREATE、DROP等)语句,或是执行DML(INSERT  UPDATE  DELETE等)语句

    stmt.execute("DROP TABLE IF EXISTS t_books");

    executeQuery一般用于执行SELECT语句,这个方法通过一个ResultSet对象返回查询结果,代码:

    ResultSet rs = stmt.executeQuery("SELECT * FORM t_books");

    (4)关闭数据库

    将打开的对象依次关闭:stmt.close()    conn.close().


0 0
原创粉丝点击