• 数据库 —— 应用程序与数据库的连接


    目录
    1. ODBC 与 JDBC 是什么?
    2. 具体实例入门
    1、ODBC 与 JDBC 是什么?[Link]

    JDBC, 全称为Java DataBase Connectivity standard, 它是一个面向对象的应用程序接口(API), 通过它可访问各类关系数据库。JDBC也是java核心类库的一部分。

    JDBC的最大特点是它独立于具体的关系数据库。与ODBC (Open Database Connectivity)类似, JDBC API 中定义了一些Java类分别用来表示与数据库的连接(connections), SQL语句(SQL statements), 结果集(result sets)以及其它的数据库对象, 使得Java程序能方便地与数据库交互并处理所得的结果。使用JDBC, 所有Java程序(包括Java applications , applets和servlet)都能通过SQL语句或存储在数据库中的过程(stored procedures)来存取数据库。

    要通过JDBC来存取某一特定的数据库,必须有相应的JDBC driver,它往往是由生产数据库的厂家提供,是连接JDBC API与具体数据库之间的桥梁。

    通常,Java程序首先使用JDBC API来与JDBC Driver Manager交互,由JDBC Driver Manager载入指定的JDBC drivers, 以后就可以通过JDBC API来存取数据库。

    ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。 

    一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。 

    2、具体实例入门

    这里提供一个具体的例子,step by step ,为刚刚接触数据库的人提供一个更为直观感性的认识。

    我们具体使用 java应用程序连接 mysql 数据库,整体步骤如下:

    1、java 开发环境的准备
    2、安装 java IDE以便开发 (如 Eclipse )
    3、安装 mysql 数据库
    4、下载 数据库对应的 jdbc driver
    5、将 jdbc driver 库导入到程序环境中
    6、连接测试 

    1、java 开发环境的准备:配置java开发环境——JDK的配置。 步骤网上很多比如:点这里

    2、搜索下载合适你系统(64bit/32bit)的IDE, 比如 Eclipse :点这里去搜索

    3、下载并安装mysql数据库,各个平台官方下载与安装教程 

      按照安装教程,设置好默认用户(root)的密码,安装完毕后,可以打开终端命令行登录数据库:(更加具体的使用,请访问 官方使用手册 )

    mysql -u root -p

          创建待会要测试的数据库, 并创建要测试的表:

    create database test;
    use test;
    create table temp(name varchar(20), password varchar(20));

    这时应该可以使用语句查看到你的表了:

    show tables;     // 查看当前数据库所有的表
    describe temp;  // 查看表的具体字段信息
    
    select * from temp;  // 查看表的数据

    4、下载mysql 提供的 jdbc driver ,点这里 ( Windows下载 (mysql-connector-java-5.1.40.zip) Linux下载: (mysql-connector-java-5.1.40.tar.gz))

         下载好后解压,任意路径都可以,不要以后随便给删掉就可以。

    5、将jdbc driver 库导入到Eclipse 环境中

        1)在 Eclipse 中建立用户库(以后不同的项目,要连接数据库,直接为工程加入这个用户库就好了):

       打开Eclipse,进入菜单windows->prefrences,进入Java->Build Path->user libraries,选择新建,命名为mysql,路径为:.../mysql-connector-java-5.X.XX-bin.jar

      2) 创建java project,命名为testmysql,右键项目名称,选择Build Path->Add libraries,从列表中选择user library,在next界面中选择上面部署的mysql安装包即可;

    6、现在可以开始写代码连接刚才的数据库了。在testmysql工程下新建class,命名为Test.java文件:

    public class Test {
    
        public static void main(String args[]) {
            try {
                Class.forName("com.mysql.jdbc.Driver"); // 加载MYSQL JDBC驱动程序
                System.out.println("Success loading Mysql Driver!");
            } catch (Exception e) {
                System.out.print("Error loading Mysql Driver!");
                e.printStackTrace();
            }
            try {
                Connection connect = DriverManager.getConnection(
                        "jdbc:mysql://localhost:3306/test", "root", "XXXXXXX"); //test 为你的数据库名称,XXXXXXX 这里改为你自己的密码
                System.out.println("Success connect Mysql server!");
                
           //插入一行数据 PreparedStatement Statement
    = connect .prepareStatement("INSERT INTO temp(name,password) VALUES(?,?)"); Statement.setString(1, "name3"); Statement.setString(2, "password3"); Statement.executeUpdate(); // 获取temp表的数据来打印 Statement stmt = connect.createStatement(); ResultSet rs = stmt.executeQuery("select * from temp");// temp 为表的名称 System.out.println("query result:"); while (rs.next()) { System.out.println(rs.getString("name")+" :"+rs.getString("password") ); } } catch (Exception e) { System.out.print("get data error!"); e.printStackTrace(); } } }

    运行程序,执行完毕后查看数据库,此时应该可以看到:

    mysql> select * from temp;
    +-------+-----------+
    | name  | password  |
    +-------+-----------+
    | name3 | password3 |
    +-------+-----------+
    1 row in set (0.00 sec)

    到这里,例子就讲完了,希望对初学者有所帮助 :)

  • 相关阅读:
    wpf 中radioButton binding enum的时候的一个bug
    PLSQL创建Oracle定时任务
    [Transfer]ASP.NETV2.0快速入门、视频在线教程、个人网站、电子商务、宠物店等的使用
    [原创][VB]迷迷糊糊做成的DataList的分页关键字查询,自动编号,URL链接
    [Transfer][VB]DataGrid分页机制,通过编程做一个十分有个性、功能十分完善的分页效果
    [Transfer]声明中“AutoEventWireup”、“Codebehind”、“Inherits”分别表示什么意思?
    [Transfer]二种嵌套的DataGrid数据表格方法[DataRelation,FindControl]
    [Transfer]DataList 自定义分页 (C#)
    [Transfer]Visual Studio2005入门.Net系列视频教程
    JS 屏蔽大全
  • 原文地址:https://www.cnblogs.com/BensonLaur/p/5423065.html
Copyright © 2020-2023  润新知