热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java数据可连接失败抛出异常_Java——异常处理,数据库连接

在学习数据库连接时看到try(){}结构,查了一下写在这里:1importjava.sql.Connection;2importjava.sql.Dri

在学习数据库连接时看到try(){}结构,查了一下写在这里:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 importjava.sql.Connection;2 importjava.sql.DriverManager;3 importjava.sql.ResultSet;4 importjava.sql.Statement;5

6 /**

7 * Created by BoGummyYoung on 2017/4/6.8 */

9 public classConnMySql10 {11 public static void main(String[] args) throwsException12 {13 //1.加载驱动,使用反射知识,现在记住这么写

14 Class.forName("com.mysql.jdbc.Driver");15 try(16 //2.使用DriverManager获取数据库连接17 //其中返回的Connection就代表了Java程序和数据库的连接18 //不同数据库的URL写法需要查驱动文档,用户名、密码由DBA分配

19 Connection conn =DriverManager.getConnection(20 "jdbc:mysql://localhost:3306/select_test"

21 ,"root","bogummy");22 //3.使用Connection来创建一个Statement对象

23 Statement stmt =conn.createStatement();24 //4.执行SQL语句

25 /*

26 Statement 有三种执行SQL语句的方法:27 1.execute()可执行任何SQL语句——返回一个boolean值28 如果执行后第一个结果是ResultSet,则返回true,否则返回false29 2.executeQuery()执行select语句——返回查询到的结果集30 3.executeUpdate()用于执行DML语句——返回一个整数31 代表被SQL语句影响的记录条数32 */

33 ResultSet rs = stmt.executeQuery("select s.*, teacher_name"

34 +" from student_table s , teacher_table t"

35 +" where t.teacher_id = s.java_teacher"))36 {37 //ResultSet有一系列的getXxx(列索引 | 列名)方法,用于获取记录指针38 //指向行、列特定的值,不断地使用next()将记录指针下移一行39 //如果移动之后记录指针依然指向有效行,则next()方法返回true

40 while(rs.next())41 {42 System.out.println(rs.getInt(1) + "\t"

43 + rs.getString(2) + "\t"

44 + rs.getString(3) + "\t"

45 + rs.getString(4) + "\t");46 }47 }48 }49 }

View Code

基本的异常处理:

1 try

2 {3 //业务实现代码

4 ...5 }6 catch(Exception e)7 {8 alert 输入不合法9 gotoretry10 }

如果执行try块里的业务逻辑代码时出现异常,系统自动生成一个异常对象,该异常对象被提交给Java运行时环境,这个过程被称为抛出(throw)异常。

通常情况下,如果try块被执行一次,则try块被执行一次,则try块后只有一个catch块会被执行,绝不可能有多个catch块被执行,除非在循环中使用了continue开始下一次循环,下一次循环又重新运行了try块,这才可能导致多个catch块被执行。

Java把所有非正常情况分成两种:异常(Exception)和错误(Error),它们都集成Throwable父类。

Error错误:一般是与虚拟机相关的问题,如系统崩溃、虚拟机错误、动态链接失败等,这种错误无法恢复或不可能补货,将导致应用程序终端,不会使用catch块来补货Error对象。

回收资源:try块里打开了一些物理资源(例如数据库连接、网络连接和磁盘文件等),这些物理资源都必须显示回收。

1、finally回收

1 try

2 {3 //业务实现代码

4 }5 catch(SubException e)6 {7 //异常处理块1

8 }9 catch(SubException2 e)10 {11 //异常处理块2

12 }13 ......14 finally

15 {16 //资源回收块

17 }

2、Java7自动关闭资源的try语句

try关键字后面紧跟一队圆括号,圆括号可以声明、初始化一个或多个资源,此处的资源值得是那些必须在程序结束时显示关闭的资源(比如数据库连接、网络连接等),try语句在该语句结束时自动关闭这些资源。

try()

{

}



推荐阅读
  • 软件工程课堂测试2
    要做一个简单的保存网页界面,首先用jsp写出保存界面,本次界面比较简单,首先是三个提示语,后面是三个输入框,然 ... [详细]
  • 本文探讨了在 SQL Server 中使用 JDBC 插入数据时遇到的问题。通过详细分析代码和数据库配置,提供了解决方案并解释了潜在的原因。 ... [详细]
  • ListView简单使用
    先上效果:主要实现了Listview的绑定和点击事件。项目资源结构如下:先创建一个动物类,用来装载数据:Animal类如下:packagecom.example.simplelis ... [详细]
  • 深入解析动态代理模式:23种设计模式之三
    在设计模式中,动态代理模式是应用最为广泛的一种代理模式。它允许我们在运行时动态创建代理对象,并在调用方法时进行增强处理。本文将详细介绍动态代理的实现机制及其应用场景。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
  • 深入解析Java多线程与并发库的应用:空中网实习生面试题详解
    本文详细探讨了Java多线程与并发库的高级应用,结合空中网在挑选实习生时的面试题目,深入分析了相关技术要点和实现细节。文章通过具体的代码示例展示了如何使用Semaphore和SynchronousQueue来管理线程同步和任务调度。 ... [详细]
  • 深入理解Java多线程并发处理:基础与实践
    本文探讨了Java中的多线程并发处理机制,从基本概念到实际应用,帮助读者全面理解并掌握多线程编程技巧。通过实例解析和理论阐述,确保初学者也能轻松入门。 ... [详细]
  • 本文详细介绍了如何解压并安装MySQL集群压缩包,创建用户和组,初始化数据库,配置环境变量,并启动相关服务。此外,还提供了详细的命令行操作步骤和常见问题的解决方案。 ... [详细]
  • 本文档介绍了如何在Visual Studio 2010环境下,利用C#语言连接SQL Server 2008数据库,并实现基本的数据操作,如增删改查等功能。通过构建一个面向对象的数据库工具类,简化了数据库操作流程。 ... [详细]
  • 本文介绍如何在MySQL中创建一个自定义函数,用于将包含多个班级编号的字符串拆分为对应的班级名称。通过详细解释代码逻辑和功能,帮助读者理解并应用这一技术。 ... [详细]
  • 为了解决不同服务器间共享图片的需求,我们最初考虑建立一个FTP图片服务器。然而,考虑到项目是一个简单的CMS系统,为了简化流程,团队决定探索七牛云存储的解决方案。本文将详细介绍使用七牛云存储的过程和心得。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 在尝试从数据库获取设置的过程中,遇到了一个致命错误:Fatal error: Call to a member function bind_param() on boolean。本文将详细分析该错误的原因,并提供解决方案。 ... [详细]
  • 本文介绍如何在Java中实现一个罗马数字计算器,重点在于如何通过循环和字符验证确保用户输入合法。我们将探讨创建一个方法来检查字符串中的非法字符,并使用循环不断提示用户输入,直到输入符合要求。 ... [详细]
author-avatar
sunci99_652
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有