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、加载驱动就需要一次

最新文章

  1. php下载网络图片到服务器
  2. 【总结】清除webbrowser cookie/session的6种方法
  3. zabbix 监控客户端数据库 zabbix客户端
  4. Nginx 内置全局变量
  5. Delphi 7使用自定义图标关联文件类型
  6. lib和dll文件的区别和联系
  7. wm_char
  8. hadoop之MapReduce WordCount分析
  9. Linux删除乱码文件或者目录
  10. Object-c中@private、@protected、@public解析
  11. 【iOS发展-53】实例探究:scrollView使用方法和解决方案无法滚动核心
  12. 【分享】我们用了不到200行代码实现的文件日志系统,极佳的IO性能和高并发支持,附压力测试数据
  13. MQTT 设计原则
  14. 部署testlink报错,安装wampserver时提示丢失MSVCR110.dll
  15. day 68 增删改查 语法
  16. 【maven】maven源码打包
  17. Codeforces Round #281 (Div. 2) A. Vasya and Football 模拟
  18. windows 7 php 7.1 命令行 执行 中文文件名 的PHP文件
  19. [转帖]从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路
  20. PHP7新特性的介绍

热门文章

  1. mysql 语法
  2. 复习(1)【Maven】
  3. ajax——CORS跨域调用REST API 的常见问题以及前后端的设置
  4. 设置html title标题左侧的小图标
  5. iOS SpriteKit 问题
  6. Android知识点总结[转]
  7. springmvc session和model解析
  8. pygame学习笔记
  9. 详解Java 8中Stream类型的“懒”加载
  10. 【Java EE 学习 67 上】【OA项目练习】【JBPM工作流的使用】