zoukankan      html  css  js  c++  java
  • JDBC

    *概念:

      Java Database Connectivity Java数据库连接 Java语言操作数据库


    *JDBC本质:

      其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包,我们可以使用这套接口编程,真正实行的代码是驱动jar包中的实现类。

    *JDBC中的对象:
      1.DriverManager:
        *加载驱动
        *获取数据库连接:
          Connection con = DriverManager.getConnection(String url,String user ,String password);
          url:jdbc:mysql://ip地址(域名):端口号/数据库名称


      2.Connection:
        *获取执行sql对象
          Statement st = con.createStatement()
          PreparedStatement = con.preparedStatement(String sql)

        *管理事务:
          *开启事务: setAutoCommit(boolean autoCommit)

          *提交事务:commit()

          *回滚事务:rollback()


      3.Statement:

        *执行sql的对象
          st.excuteUpdate(String sql):执行DML(增删改)语句、DDL语句(create、alter、drop)
            返回值:影响的行数,可以通过影响的行数判断DML语句是否执行成功。
          ResultSet st.excuteQuery(String sql):执行DQL(select)语句


      4.ResultSet:
    结果集对象,封装查询结果,判断当前行是否有数据,如果有数据返回true,否则返回false

        *next():游标向下移动一行
        *getXxx():获取数据
          Xxx代表数据类型
          *参数:
            int--->列的编号,从1开始 例如 getInt(1);
            String --->列的名称 例如 getInt(id);
        *注意:
          *使用步骤:
            1.游标向下移动一行
            2.判断是否有数据
            3.获取数据


      5.PreparedStatement:执行sql的对象(推荐使用该方法)
        sql注入问题:在拼接sql时,有一些sql 的特殊关键字参与字符串的拼接。会造成安全性问题
          用户随便输入,输入密码:a' or 'a' = 'a
        解决sql注入问题:
    使用PrepareStatement对象

        预编译的sql:参数使用?作为占位符
        使用setXxx()方法赋值。


    *抽取JDBC工具类:JDBCUtils
      *目的:

        简化书写


      *分析:
        1.注册驱动
        2.抽取一个方法获取连接对象
        *需求:不想传参(麻烦),还得保证工具类的通用性
        *解决:配置文件
        3.抽取一个方法释放资源

    *JDBC控制事务
      1.事务:参照Mysql基础与进阶篇事务内容


      2.操作:
        开启
        提交
        回滚


      3.使用Connection对象来管理对象
        *开启事务:setAutoCommit(boolean autoCommit):调用改方法设置参数为false,即为开启事务
        *在执行sql之前开启事务
        *提交事务:commit()
        *当所有事务都执行完提交事务
        *回滚事务:rollback()
        *在Catch中回滚事务

     

     

     

  • 相关阅读:
    再见2011,展望2012!
    软件测试经验分享
    常用window命令
    测试报告编写
    酒桌上的计算机网络
    OA压力测试案例
    FileSystemObject和Folders使用详细介绍
    关于盘点的问题汇总
    PB 图表数据窗口操作
    sqlserver2005中行转列的方法
  • 原文地址:https://www.cnblogs.com/sxyu/p/12313785.html
Copyright © 2011-2022 走看看