在学习数据库连接时看到try(){}结构,查了一下写在这里:
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()
{
}