JDBC数据库连接学习
    用jdbc连接数据库
    1.加载驱动
        Class.forName("");
        用注册的方式会使内存中存在两个对象,而用上边的方法内存中仅存在一个驱动不需要依赖具体的API程序灵活性更高
    2.得到连接
        Connection conn = DriverManager();
    3.创建sql对象
        PreparedStatement
        CallableStatement
        Statement statement = conn.createStatement();
    4.通过statement向数据库发送sql指令
        statement.executeUpdate(sql); //执行 dml(update insert delete)
        statement.executeQuery(sql); //执行
    5.关闭资源(先开后闭,后开先闭)
    
    Connection 他代表数据库的连接。客户端与数据库所有交互都通过connection对象完成。
        createStatement();    创建数据库发送sql的statement对象
        prepareStatement(sql);    创建向数据库发送预编译sql的PerpareStatement对象。可以防止sql注入
        prepare(sql); 创建执行存储过程中的callableStatement对象
        
        什么时候需要吧setAutoCommit设为false,setAutoCommit(boolean autoCommit);    设置事务是否自动提交,把一组dml语句一起提交时,使用事务管理,设置成false(相当于做成原子性吧,我这样理解);
        
        commit();    
        rollback();
        ResultSet对象调用next() 方法最后一个返回false;注意是false不是null
        Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
        ResultSet中的静态常量
                    CLOSE_CURSORS_AT_COMMIT        该常量指示提交当前事务时,具有此可保存性的打开的 ResultSet 对象将被关闭。
                    CONCUR_READ_ONLY                     该常量指示不可以更新的 ResultSet 对象的并发模式。
                    CONCUR_UPDATABLE                     该常量指示可以更新的 ResultSet 对象的并发模式。
                    FETCH_FORWARD                       该常量指示将按正向(即从第一个到最后一个)处理结果集中的行。
                    FETCH_REVERSE
                    FETCH_UNKNOWN
                    HOLD_CURSORS_OVER_COMMIT
                    TYPE_FORWARD_ONLY
                    TYPE_SCROLL_INSENSITIVE     该常量指示可滚动但通常不受 ResultSet 底层数据更改影响的 ResultSet 对象的类型。
                    TYPE_SCROLL_SENSITIVE         该常量指示可滚动并且通常受 ResultSet 底层数据更改影响的 ResultSet 对象的类型。
        ResultSet rs = stmt.executeQuery("SELECT a, b FROM table");
        
        ResultSet 在默认情况下,我们的rs结果集,只能向前移动,这样rs结果集就不能复用。
        我们可以这样做
            statement = ct.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
            
        rs.beforeFirst(); //我们希望重新使用结果集,
        rs.next();                //移动到下一行
        rs.Previous();        //移动到前一行
        rs.absolute(row); //移动到指定行
        rs.afterLast();        //移动到resultSet的最后面
        
        !!提问如果数据库中列的类型是varchar2,获取该列的数据调用什么方?Int类型呢?bigInt类型呢?Boolean类型呢?
        MySQL数据库JDBC对应类型数据表
        
        MySQL的连接并发,最大连接量13000
        
        即时关闭资源,一个资源不关也会出现问题。
        Connection连接尽可能晚连接,尽可能早释放,如果不能处理好Connection就极可能出现宕机。
        关闭资源的代码一定要放在finally
        
        SqlHelper类的编写                        
            1、访问数据库很平凡、有并发量时,不要把Connection设定成static
            2、加载驱动就需要一次

16-1-27---JDBC复习(01)的更多相关文章

  1. JDBC复习

    -----------------------------------------JDBC复习----------------------------------------- 1.JDBC (Jav ...

  2. Bone Collector(复习01背包)

    传送门 题目大意:01背包裸题. 复习01背包: 题目 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总 ...

  3. JDBC复习2

    前面复习了一些基础知识以及如何抽取一些常用的代码,接下来就结合junit4做一个增删改查的小demo 重点是这么几个步骤:1.创建连接 2.编写sql语句 3.编写sql语句的载体 4.如果是Prep ...

  4. mybatis复习01

    1.mybatis的历史: mybatis是apache的一个开源项目,2010被google收购,转移到google code. mybatis是一个优秀的持久层框架,对jdbc操作进行了封装,是操 ...

  5. JDBC 复习2 存取mysql 大数据

    大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据 mysql的大数据分为2种 blob 和 text ,没有cl ...

  6. JDBC 复习1 DBUtil

    package dbex; import java.io.Closeable; import java.io.IOException; import java.io.InputStream; impo ...

  7. java数据结构复习01

    1.数组 package javaDataStruct.array01; public class MyArray { private int[] arr; // 表示有效数据的长度 private ...

  8. nodejs复习01

    console 格式化 console.log("%s:%s", "a", "b") //字符串 console.log("%d. ...

  9. JDBC复习1

    1.什么是JDBC JDBC是java数据库连接技术的简称(Java DataBase Connectivity) jdbc是接口,jdbc驱动才是接口的实现,负责连接各种不同的数据库.jdbc的AP ...

  10. codevs 2837 考前复习——01背包

     时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description Aiden马上要考试了,可他还没怎么复习,于是他 ...

随机推荐

  1. 软工实践——github文件整理

    软工实践中,整理github上文件遇到的一些问题 先扔github链接Transcend/ActivityHelper 1.原来呢我们团队的github上的文件的安排十分凌乱,没有归档.把说明文档.源 ...

  2. ionic的常用命令总结以及正式发布的准备

    常用命令: npm install -g ionic cordova(需要安装node) ionic start cutePuppyPics --v2(建app cutePuppyPics app名字 ...

  3. 使用Open xml 操作Excel系列之一-读取Excel

    一. 安装Open Xml SDK 从微软网站下载Open xml SDK,安装SDK. 二. 在项目中添加对DocumentFormat.OpenXml库的引用

  4. php模拟http请求的方法

    我在这里终结了三种方法 第一种方法:fsockopen $flag = 0; $post = ''; $errno = ''; $errstr = ''; //要post的数据 $argv = arr ...

  5. iOS Salesforce SDK 小知识

    Salesforce SDK 能做许多任务,因此也比较繁杂,又分了原生,js等多个调用方法. 关键点总结: SFSmartStore 中的 - (id) initWithName:(NSString* ...

  6. Android搜索功能的案例,本地保存搜索历史记录......

    开发的APP有一个搜索功能,并且需要显示搜索的历史记录,我闲暇之余帮她开发了这个功能,现把该页面抽取成一个demo分享给大家. 实现效果如图所示:  本案例实现起来很简单,所以可以直接拿来嵌入项目中使 ...

  7. jQuery checkbox的全选与反选

    1:checkbox的全选与反选 js 代码 $("#cbAll").click(function(){ if($("#cbAll").is(":ch ...

  8. Linux中的用户和用户组

      在Linux中,有三种用户: Root 用户:也称为超级用户,对系统拥有完全的控制权限.超级用户可以不受限制的运行任何命令.Root 用户可以看做是系统管理员. 系统用户:系统用户是Linux运行 ...

  9. unity播放视频

    方法一: 1.用一个Quad(或者其他的)做屏幕,调整摄像机位置和它的大小,使它显示在你想要的区域 2.将视频拖入Unity,拖入,拖入,拖入:不是将视频直接copy到指定的文件夹中 3.将下面脚本挂 ...

  10. NetBeans无法使用编码GBK安全打开文件

    刚才使用NetBeans打开php文件时,提示:NetBeans无法使用编码GBK安全地打开该路径下的文件. 找到了解决方案. 原文地址:http://qdjinxin.iteye.com/blog/ ...