JDBC

JDBC

 

 

   JDBC入门

    搭建开发环境

    编写程序,加载数据库驱动

    建立连接

    创建用于向数据库发送SQL的Statement对象

    从代表结果集的resultSet中取出数据

    断开与数据库的连接,并释放相关资源

 

 

DriverManager  ---驱动管理类

  --1、注册驱动

    实际开发中注册驱动  利用反射

    Class.forName("com.mysql.jdbc.Driver"); 注册一次 

  -- 2、连接数据库

 

Connection  :连接对象

  *   主要作用

      一、创建sql语句对象

        * Statement    createStatement()         :执行sql语句  有sql注入漏洞

        * PreparedStatement  prepareStatement(String sql)   :预编译sql语句  解决sql注入漏洞

        * CallableStatement  prepareCall(String sql)     : 执行sql中的存储过程

 

      二、进行事务的管理

        *setAutoCommit(boolean autoCommit)             :设置事务是否自动提交

        * commit()                                                          : 事务提交

        * rollback()                                                          : 事务回滚

 

Statement     :    执行sql

  *主要作用:

    一、执行sql语句

      * boolean execute(String sql)                                     : 执行sql,执行select语句返回true,否则返回false

      * ResultSet executeQuery(String sql)                        :  执行sql中select语句

      * int  executeUpdate(String sql)                                 :  执行sql中的 insert/update/delete语句

 

    二 、执行批处理操作

      * addBatch(String sql)                                               : 添加到批处理

      * executeBatch()                                                        :执行批处理

      * clearBatch()                                                             :清空批处理

 

ResultSet:            结果集

  *  结果集:sql select 查询语句的封装

 

JDBC

 

 

JDBC

 

 

package com.imooc.jdbc.demo1;

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

import org.junit.Test;

import com.mysql.jdbc.Driver;

public class JdbcDemo2 {
    
    /**
     * jdbc入门过程实践
     */
    @Test
    public void demo1() {
        
        //抽取Connection Statement ResultSet 对象
        Connection conn = null;
        Statement stmt = null;
        ResultSet resultSet = null;
        
        try {
            //1.加载驱动
            DriverManager.registerDriver(new Driver());
            //2.获得连接
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
            //3.创建执行SQL的对象并执行sql
            String sql = "select * from emp";
            //3.1创建执行sql的对象
            stmt = conn.createStatement();
            //3.2执行sql获取结果集
            resultSet = stmt.executeQuery(sql);
            //遍历集合
            while(resultSet.next()) {
                int uid = resultSet.getInt("id");
                String username= resultSet.getString("username");
                int age = resultSet.getInt("age");
                String sex = resultSet.getString("sex");
                
                //打印出来
                System.out.println(uid+"-"+username+"-"+age+"-"+sex);
            }
            
            //4.释放资源
            resultSet.close();
            stmt.close();
            conn.close();
            
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            //释放资源在finally都会执行
            
            if(resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
                resultSet = null;
            }
            
            
            if(stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
                stmt = null;
            }
            
            if(conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
                conn = null; //垃圾回收机制更早回收对象
            }
        }
        
        
    }

}

 

      

 

 

      

上一篇:什么是JDBC的最佳实践?


下一篇:mybatis源码解析 - 核心流程之ResultSet解析