zoukankan      html  css  js  c++  java
  • 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 查询语句的封装

    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; //垃圾回收机制更早回收对象
                }
            }
            
            
        }
    
    }

          

          

  • 相关阅读:
    c# 泛型总结
    透过字节码分析java基本类型数组的内存分配方式。
    c#索引器
    redis在asp.net 中的应用
    Unity3D shaderLab
    Unity3d Asset Store 打不开
    C# 类型转换的开销
    [转]权重算法
    Coroutine的原理以及实现
    在Unity3D里使用WinForm
  • 原文地址:https://www.cnblogs.com/wuheng-123/p/13771407.html
Copyright © 2011-2022 走看看