`
wind_bell
  • 浏览: 291970 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

JDBC基础(二)注:转

    博客分类:
  • JDBC
阅读更多
因为是基础篇,所以还是对每一步骤简单说明一下吧:

    前面说是,注册驱动程序有多方法,Class.forName();是一种显式地加载.当一个驱
动程序类被Classloader装载后,在溶解的过程中,DriverManager会注册这个驱动类的实例.
这个调用是自动发生的,也就是说DriverManager.registerDriver()方法被自动调用了,当然
我们也可以直接调用DriverManager.registerDriver()来注册驱动程序,但是,以我的经验.
MS的浏览中APPLET在调用这个方法时不能成功,也就是说MS在浏览器中内置的JVM对该方法的
实现是无效的.
    另外我们还可以利用系统属性jdbc.drivers来加载多个驱动程序:
System.setProperty("jdbc.drivers","driver1:driver2:.....:drivern");多个驱动程序之
间用":"隔开,这样在连结时JDBC会按顺序搜索,直到找到第一个能成功连结指定的URL的驱动
程序.
    在基础篇里我们先不介绍DataSource这些高级特性.

    在成功注册驱动程序后,我们就可以用DriverManager的静态方法getConnection来得
到和数据库连结的引用:
    Connection conn = DriverManager.getConnection(url);
    如果连结是成功的,则返回Connection对象conn,如果为null或抛出异常,则说明没有
和数据库建立连结.
    对于getConnection()方法有三个重载的方法,一种是最简单的只给出数据源即:
getConnection(url),另一种是同时给出一些数据源信息即getConnection(url,Properties),
另外一种就是给出数据源,用户名和密码:getConnection(url,user,passwod),对于数据源信息.
如果我们想在连结时给出更多的信息可以把这些信息压入到一个Properties,当然可以直接压
入用户名密码,别外还可以压入指定字符集,编码方式或默认操作等一些其它信息.
    
    在得到一个连结后,也就是有了和数据库找交道的通道.我们就可以做我们想要的操
作了.
    还是先来介绍一些一般性的操作:
    如果我们要对数据库中的表进行操作,要先缘故绑定一个语句:
    Statement stmt = conn.createStatement();
    然后利用这个语句来执行操作.根本操作目的,可以有两种结果返回,如果执行的查询
操作,返回为结果集ResultSet,如果执行更新操作,则返回操作的记录数int.
    注意,SQL操作严格区分只有两个,一种就是读操作(查询操作),另一种就是写操作(更
新操作),所以,create,insert,update,drop,delete等对数据有改写行为的操作都是更新操作.

    ResultSet rs = stmt.executeQuery("select * from table where xxxxx");
    int x = stmt.executeUpdate("delete from table where ......");
    如果你硬要用executeQuery执行一个更新操作是可以的,但不要把它赋给一个句柄,
当然稍微有些经验的程序员是不会这么做的.
    至于对结果集的处理,我们放在下一节讨论,因为它是可操作的可选项,只有查询操作
才返回结果集,对于一次操作过程的完成,一个非常必要的步骤是关闭数据库连结,在你没有了
解更多的JDBC知识这前,你先把这一步骤作为JDBC操作中最最重要的一步,在以后的介绍中我会
不断地提醒你去关闭数据库连结!!!!!!!!!!!

    按上面介绍的步骤,一个完成的例子是这样的:(注意,为了按上面的步骤介绍,这个例
子不是最好的)
    try{
        Class.forName("org.gjt.mm.mysql.Driver");
    }catch(Exception e){
        System.out.println("没有成功加载驱动程序:"+e.toString());
        return;
    }//对于象我这样的经验,可以直接从e.toString()的简单的几个字判断出异常原因,
     //如果你是一个新手应该选捕获它的子类,如何知道要捕获哪几个异常呢?一个简单
     //的方法就是先不加try{},直接Class.forName("org.gjt.mm.mysql.Driver");,编
     //译器就会告诉你要你捕获哪几个异常了,当然这是偷机取巧的方法,最好还是自己
     //去看JDK文档,它会告诉你每个方法有哪些异常要你捕获.
    Connection conn = null;
    try{
        conn = DriverManager.getConnection(
                        "jdbc:mysql://host:3306/mysql",
                        "user",
                        "passwd");
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("select * from table");
        //rs 处理
        [rs.close();]
        [stmt.close();]
    }
    catch(Exception e){
        System.out.println("数据库操作出现异常:"+e.toString());
    }
    finally{
        try{conn.close();}catch(Exception){}
    }//不管你以前是学习到的关于数据库流程是如何操作的,如果你相信我,从现在开始,
     //请你一定要把数据库关闭的代码写到finally块中,切切! 

分享到:
评论

相关推荐

    (彭涛注非常好的资料)跟姐姐学JDBC.rar

    但理解和掌握JDBC基础知识仍然是每个Java开发者的必备技能,因为它有助于理解这些框架的工作原理,并在遇到问题时能进行底层排查。 通过《跟姐姐学JDBC》这份资料,你可以系统地学习JDBC的各个方面,结合实际案例...

    shopping-management-system_超市管理系统_

    商品信息的管理是超市运营的基础,确保了数据的准确性和实时性。 2. 库存控制:系统应具备库存监控功能,实时更新商品库存,当库存量低于预设阈值时,能发出预警,以便及时补充货品。同时,它还能记录每一次出入库...

    how2j离线免费版.rar

    8. **数据库操作**:涉及JDBC基础,事务管理,以及与MySQL、Oracle等常见数据库的交互。 9. **Maven或Gradle**:如何使用构建工具管理项目依赖。 10. **Web开发**:讲解Servlet、JSP、过滤器和监听器,以及SpringMVC...

    Java工资管理系统

    这个系统集成了基础的数据存储、检索、更新以及删除等操作,旨在提高人力资源部门的效率,同时提供了一个直观的用户界面,方便操作人员进行日常的工资管理。 在Java工资管理系统中,主要涉及以下几个核心知识点: ...

    基于SpringBoot开发的长途汽车售票系统源码+sql数据库+项目说明+设计报告.zip

    配置属性文件路径:src/main/resources/application.properties 注:只需配置和修改sql主机地址,数据库名,用户名,密码, 项目访问路径,这几个属性,项目即可正常运行访问。 # DataSource jdbc.driver=...

    Web原理及应用:微博—会员管理

    一般会使用关系型数据库如MySQL,通过JDBC或ORM框架(如Hibernate或MyBatis)来与数据库交互。在添加会员时,会执行SQL的INSERT语句。同样,删除会员会执行DELETE语句,而展示会员信息则会使用SELECT语句。 为了...

    基于Servlet JSP MySQL的用户注册模块V1.0

    在这个过程中,涉及到的关键技术包括Servlet、JSP和JDBC。 Servlet是Java编程语言中用于扩展服务器功能的接口,它处理来自客户端(如浏览器)的请求,并生成响应。在这个用户注册模块中,Servlet作为服务器端的控制...

    was部署与配置手册

    - **启动命令**:`D:\IBM\WebSphere\AppServer\bin>startServer.bat server1` (注:server1 是默认服务器名,可根据实际情况调整) - **停止命令**:`D:\IBM\WebSphere\AppServer\bin>stopServer.bat server1` #####...

    图书管理系统

    接着,配置数据库连接,通常会使用JDBC驱动程序,通过DSN(数据源名称)或连接字符串建立与SQL Server的连接。最后,启动Tomcat,用户就可以通过浏览器访问图书管理系统了。 总的来说,《图书管理系统》是IT行业中...

    基于ssm+bootstrap的简单员工管理系统 +源代码+文档说明

    注:使用前需要配置maven环境 使用中遇到问题可提交issue,+qq讨论 使用工具eclipse,在eclipse导入文件即可使用 通过运行项目里面的ssm_crud.sql来导入数据库结构 注意修改数据库信息:ssm-crud/src/main/...

    java版飞机大战源码-Rockira.github.io:Rockira.github.io

    注 : 没链接的是还没写 :hot_beverage: 各类知识点总结 下面的文章都有对应的原创精美PDF,在持续更新中,可以来找我催更~ Hibernate AJAX Redis ...... :hot_beverage:Java基础 计算机操作系统与Linux 计算机网络 7...

    PL/SQL 基础.doc

    PL/SQL 基础,一个不错的 PL/SQL 参考手册。内容预览: ---- 第一章 PL/SQL 简介 ---- 1. Oracle应用编辑方法概览 ... 注:a. 加上REVERSE关键字 表示递减,从结束边界到起始边界,递减步长为一; ...

    Eclipse连接MySQL数据库宣贯.pdf

    // (注:示例代码中这部分未完整给出) } catch (Exception e) { e.printStackTrace(); } finally { if (sm != null) { try { sm.close(); } catch (SQLException e) { e.printStackTrace(); } } if ...

    自己总结的Kettle使用方法和成果.doc

    Kettle 中有两种脚本文件,transformation 和 job,transformation 完成针对数据的基础转换,job 则完成整个工作流的控制。 三、Kettle 的安装和配置 首先,需要下载开源免费的 pdi-ce 软件压缩包,当前最新版本为...

    Spring+SpringMVC+MyBatis SSM

    本程序适合初学者学习,采用Spring+SpringMVC+...注:本程序绝对100%可以使用,仅用于学习交流,一切从事商业活动与本作者无关,保留一切解释权。 代码简单,易懂,欢迎共同学习交流QQ:596085859 本代码出持续升级。

    java2核心技术卷二

    该书旨在帮助读者深入理解和掌握Java的高级特性,适用于已经熟悉Java语言基础和《Java核心技术卷一》的读者。 书中内容涵盖了Java2标准版的多个方面,包括流与文件、XML、网络编程、数据库编程、国际化、高级Swing...

    jsp资料,非常好的基础学习资料

    7. **JSTL(JavaServer Pages Standard Tag Library)**:JSTL是一套标准标签库,包括核心标签、XML标签、JDBC标签、函数标签等,旨在减少scriptlet的使用,提高代码的可读性和可维护性。 8. **Servlet与JSP的关系*...

    jsp编程光盘,详细的源代码例程及注释,从初级到高级,具参考价值!

    JSP最终会被翻译成Servlet,它们都是基于Java的Web开发技术,但JSP更注重视图层,Servlet则更适合控制逻辑。 **五、JSP示例代码** 压缩包中的例程可能包括以下类型: 1. **Hello, World!**:基础的JSP页面展示,...

    基于SpringMVC+Spring+Hibernate+JQuery+Bootstrap框架的OA系统

    注:建库时,字符集编码为:utf8(utf8_general_ci) ---修改配置文件“jdbc.properties”,改成对应数据库的用户名和密码 ---“sysconfig.properties”系统配置文件;需要修改“root.dir”属性,设置为...

    基于SpringMvc+Spring+MyBatis的OA系统项目

    注:建库时,字符集编码为:utf8(utf8_general_ci) ---修改配置文件“jdbc.properties”,改成对应数据库的用户名和密码 ---“sysconfig.properties”系统配置文件;需要修改“root.dir”属性,设置为...

Global site tag (gtag.js) - Google Analytics