博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java——异常处理,数据库连接
阅读量:5330 次
发布时间:2019-06-14

本文共 2777 字,大约阅读时间需要 9 分钟。

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

1 import java.sql.Connection; 2 import java.sql.DriverManager; 3 import java.sql.ResultSet; 4 import java.sql.Statement; 5  6 /** 7  * Created by BoGummyYoung on 2017/4/6. 8  */ 9 public class ConnMySql10 {11     public static void main(String[] args) throws Exception12     {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()方法返回true40             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        goto retry10 }

如果执行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      //异常处理块212 }13 ......14 finally15 {16     //资源回收块17 }

 

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

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

try(){}

 

转载于:https://www.cnblogs.com/bolumiere/p/6681357.html

你可能感兴趣的文章
hdu3307 欧拉函数
查看>>
Spring Bean InitializingBean和DisposableBean实例
查看>>
Solr4.8.0源码分析(5)之查询流程分析总述
查看>>
[Windows Server]安装系统显示“缺少计算机所需的介质驱动程序”解决方案
查看>>
[容斥][dp][快速幂] Jzoj P5862 孤独
查看>>
Lucene 学习之二:数值类型的索引和范围查询分析
查看>>
软件开发工作模型
查看>>
Java基础之字符串匹配大全
查看>>
面向对象
查看>>
lintcode83- Single Number II- midium
查看>>
移动端 响应式、自适应、适配 实现方法分析(和其他基础知识拓展)
查看>>
selenium-窗口切换
查看>>
使用vue的v-model自定义 checkbox组件
查看>>
[工具] Sublime Text 使用指南
查看>>
Hangfire在ASP.NET CORE中的简单实现方法
查看>>
Algorithm——何为算法?
查看>>
Web服务器的原理
查看>>
小强升职计读书笔记
查看>>
常用的107条Javascript
查看>>
#10015 灯泡(无向图连通性+二分)
查看>>