JDBC随堂笔记

        这是自己跟着马士兵老师视频一边学习,一边自己把一些知识点先写到一个文档里面,为了以后自己查找。之前自己也跟着马士兵老师的视频学习了数据库ORACLE,当时就是在文档里面敲写了一些SQL语句,也没什么提示性语句。现在想想挺可惜的。现在就发表到博客里面吧。

JDBC随堂笔记:

基本程序:
1.JDBC的初步:   Class.forName("oracle.jdbc.driver.OracleDriver");
                conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.106:1521:orcl", "scott", "tiger");
                sta=conn.createStatement();
                re =sta.executeQuery("select * from dept");
                while(re.next()) {
                    System.out.println(re.getString("deptno"));
                }
    
2.DML:        Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.106:1521:orcl","scott","tiger");
            sta=conn.createStatement();
            String sql ="insert into dept2 values(98, 'GAME','BK')";
            sta.executeUpdate(sql);
3.Transaction:        Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.106:1521:orcl","scott","tiger");
            sta = conn.createStatement();
            conn.setAutoCommit(false);
            //sta.addBatch("insert into dept2 values(55,'sd','haha')");
            sta.addBatch("insert into dept2 values(21,'sd','haha')");
            sta.executeBatch();
            conn.commit();
            conn.setAutoCommit(true);

JDBC -- 数据库的联结纽带。
1.JDBC 全称: java database connectivity java数据库连接
2.数据库类型有: Oracle, SQLServer,Mysql,等。各个数据库对外提供的有API函数。当跨数据库时,由于各个数据库对外
提供的API不一样,这时就要分层来解决这个问题。微软提供的ODBC统一了各个数据库的对外接口。java中JDBC统一了各个数据库对外
的接口。对于不同的数据库,JDBC就要提供不同的类库去连接。
编程步骤:
    1.加载驱动包:
           1.build path   2.add external archives  3.找 classes12
    2.创建驱动对象,自动向managerDriver注册。
    3.Connection 连接数据库。Connection conn = ManagerDriver.getConnection();
    4. 创建SQL语句(interface Statement)并执行一些操作
        1.Statement sta = conn.createStatement();
        2.sta.executeQuery("select * from dept");执行查询语句;
        3.sta.executeUpdate();
    5.循环遍历结果集:ResultSet  相当于一个游标,在第一个位置的前面。
              ResultSet re; while(re.next()) re.getString(); re.getInt();
    6.关闭一些资源,re.close(); sta.close(); conn.close(); 释放内存。 按照进栈顺序。
    7.创建一个STRING类型,执行executeUpdate(),用Statement语句比较麻烦。“insert into table values("+deptno+",'"+dname+"','"+loc+"')";
        可以吧这条SQL语句打印出来,检验。
    8.灵活指定SQL语句中的变量。PreparedStatement conn.prepareStatement("insert into tabel values (?,?,?)");
    9.调用SQL中的存储过程:用
    CallableStatement ca = conn.prepareCall("{ call p(?,?,?)}";
    ca.registerOutParameter(3,Types.INTEGER);
    ca.setInteger(1,3);
    ca.execute();
    10. batch 批处理 Statement sta; sta.addBatch("insert ....");...sta.executeBatch();sta.close();
            PreparedStatement pre=conn.prepareStatement("insert ....(?,?,?)");
            pre.setInt(1,2); pre.addBatch();
    11.运用事务处理:DML语句中Update自动提交,提交过程中可能会发生错误,所以,当所有的update都结束时在手动提交。
        conn.setAutoCommit(false);
               .
            .
        conn.commit();
    当出现Exception时,conn.rollback(); conn.setAutoCommit();
    12.结果集滚动:收索时可以不按照顺序,跳跃性收索。Statement sta=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY(并发访问结果集只读不能更新));
            re.last(); re.getRow();到目前的位置有多少行记录。re.getInt(2)字段的第几个;re.getString(1); re.previous();
    13.JDBC新增加的内容: DATASOURCE & ROWSET :datasoure 是用来代替DriverManager的,效率会更快。可以拿到数据库的连接,连接池实现

总结:
    养成良好的习惯,吧一些容易出现的错误,先TRY{} CATCH{}。对于一些资源的关闭,先判断该资源是否
    为null,关闭后在显式吧该资源对象设置为null;敲代码先把自己的思路大致说一下,要有注释。
    7.往表中输入一些信息在java程序中。

SQL回忆语句:
    1.创建一张表:
        create table +表名(字段  数据类型);
    2.复制一张表:
        insert into table (字段列表。可省略)select (字段列表,可省略) from tabel; 例如:insert into a select * from b;
    
        sample 显示,parse 转换
    3.存储过程:
        create or replace procedure p
            (v_a in number, v_b number, v_ret out number, v_temp in out number)
            is
            begin
                if(v_a > v_b) then  v_ret := v_a;
                else v_ret := v_b;
                end if;
                v_temp := v_temp + 1;
            end;    

install 安装                                                                                                   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值