dljd_(003_006)_jdbc概述

一、概述

  

二、java连接数据库

  2.1数据库设计

  

create database jdbc;
use jdbc;

create table test(
id int primary key auto_increment,
name varchar(10)
);

insert into test values(1,"name1");
insert into test values(2,"name2");
insert into test values(3,"name3");
insert into test values(4,"name4");
insert into test values(5,"name5");
package edu.aeon.jdbc;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * [说明]:连接数据库
 * @author aeon(qq:1584875179)
 *
 */
public class Test {
    public static void main(String[] args) {
        Connection connection=null;
        Statement statement=null;
        ResultSet resultSet=null;
        try {
            Driver driver=new com.mysql.jdbc.Driver();
            DriverManager.registerDriver(driver);
            String url="jdbc:mysql://localhost:3306/jdbc";
            String username="root";
            String password="root";
            connection=DriverManager.getConnection(url, username, password);
            statement=connection.createStatement();
            String sql="select* from test";
            resultSet=statement.executeQuery(sql);
            while(resultSet.next()){
                int id=resultSet.getInt("id");
                String name=resultSet.getString("name");
                System.out.println(id+"	"+name);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                if(null!=resultSet){
                    resultSet.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if(null!=statement){
                    statement.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if(null!=connection){
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

 数据库截图:

   

  测试结果:

  

  问题:什么情况下可以将一些异常代码放到一个try{}catch(){}块里面,什么情况下不可以?

    前一个异常的发生可以影响到后一个,那么我们可以放到一起,如,打开数据库连接失败了,就不可能获取到语句对象,更不可能根据语句对象获取到结果集,所以把它们放到一个try{}块里面,一个发生异常,那么代码就不往下跑了,直接抛出异常!

    finally里面分开放是因为,我不管你异常与否我都要关闭资源以减轻服务器的压力,即使第一个结果集关闭失败,我还想着要关闭语句对象和数据库连接对象,能关闭一个是一个,能减轻一点服务器负担就减轻一点。

  

如有任何疑问可联系邮箱: 给我发邮件、或直接联系QQ:1584875179 || 点返回首页

原文地址:https://www.cnblogs.com/aeon/p/10740049.html