• 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 || 点返回首页

  • 相关阅读:
    分布式事务-第一刀
    Qt
    自描述C++部分面试题集
    读书笔记6.21
    STL vector容器 和deque容器
    C++ STL框架
    C++ 多态
    C++ 虚继承
    C++ 类的继承和派生
    C++ 类中的函数重载
  • 原文地址:https://www.cnblogs.com/aeon/p/10740049.html
Copyright © 2020-2023  润新知