zoukankan      html  css  js  c++  java
  • day17 9.关闭资源与异常处理

    Java程序跟任何外部设备进行连接之后,都要把连接断开,把资源释放掉。Connection是一个重量级资源,Connecton占内存,Connection的获取是比较消耗资源和内存的。finally是一定会被执行,刚才玩的JDBC代码,异常都没处理直接抛出异常了,这是不负责任的行为。

    package cn.itcast.jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    //对异常进行try-catch
    public class JdbcDemo5 {
       public static void main(String[] args) {
    	   Connection con = null;
    	   Statement st = null;
    	   ResultSet rs = null;
    	   
    	   try {
    		   
    		//1.注册驱动  
    		  
    		   
    		Class.forName("com.mysql.jdbc.Driver");
    		
    		//2.获取连接
    		try {
    			 con = DriverManager.getConnection("jdbc:mysql:///day17", "root", "");
    		    
    			//3.获取操作sql语句对象Statement
    			 st =   con.createStatement();
    		
    		   //4.执行sql
    		     rs = st.executeQuery("select * from user");
    		   
    		   //5.遍历结果集
    		    while(rs.next()){
    		    	int id = rs.getInt("id");
    		    	//String id = rs.getString("id");//虽然用getString()行,但是用getInt()比较合适
    		    	String username = rs.getString("username");
    		    	String password = rs.getString("password");
    		    	String email = rs.getString("email");
    		    	System.out.println(id+"   "+username+"   "+password+"   "+email);
    		    }
    		
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    	} catch (ClassNotFoundException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}finally{
    		  //6.释放资源
    		  try {
    			  if(rs !=null ){
    			rs.close();
    			  }
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		  try {
    			  if(st!=null){
    			st.close();
    			  }
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
              try {
            	  if(con!=null){
    			con.close();
            	  }
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}	
    	 }
    }
    }
    
  • 相关阅读:
    uva-442 Matrix Chain Multiplication
    mongodb笔记2
    用MODELLER构建好模型后对loop区域进行自动的优化过程
    Java乔晓松-android的四大组件之一Service(服务的绑定)
    内部排序之交换排序
    C,C++中的static
    [置顶] 贝叶斯分类(一)
    RabbitMQ和kafka从几个角度简单的对比--转
    rabbitmq Clustering Guide--官方
    How To Cluster Rabbit-MQ--reference
  • 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/6635583.html
Copyright © 2011-2022 走看看