JDBC 笔记

1JDBC全称为:Java Data Base Connectivityjava数据库连接),它主要由接口组成。

2、组成JDBC的2个包: 

  java.sql

 javax.sql

3、开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动)

4、编写一个程序,这个程序从userinfo表中读取数据,并打印在命令行窗口中。

        一、搭建实验环境 :

           1、在mysql中创建一个库,并创建userinfo表和插入表的数据。

        2、新建一个Java工程,并导入数据驱动。

        二、编写程序,在程序中加载数据库驱动

                 DriverManager. registerDriver(Driver driver)

        三、建立连接(Connection)

                Connection conn = DriverManager.getConnection(url,user,pass); 

        四、创建用于向数据库发送SQLStatement对象,并发送sql

             Statement st = conn.createStatement();

            ResultSet rs = st.excuteQuery(sql);       

           五、从代表结果集的ResultSet中取出数据,打印到命令行窗口

          六、断开与数据库的连接,并释放相关资源

5Jdbc程序中的DriverManager用于加载驱动,并创建与数据库的链接,这个API的常用方法:

                1DriverManager.registerDriver(new Driver())

          注意:在实际开发中,并不推荐采用这个方法注册驱动。

        查看Driver的源代码可以看到,如果采用此种方式,会导致驱动程序加载两次,也就是在内存中会有两Driver对象。

        2推荐方式:Class.forName(“com.mysql.jdbc.Driver”);

        采用此种方式不会导致驱动对象在内存中重复出现,并且采用此种方式,程序仅仅只需要一个字符串,不需要import驱动的API,这样可使程序不依赖具体的驱动,使程序的灵活性更高。

        3DriverManager.getConnection(url, user, password),根据url获取数据库的链接。

6URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:

 7、使用JDBC对数据库进行CRUD

        Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可。

        Statement对象的executeUpdate方法,用于向数据库发送增、删、改的sql语句,executeUpdate行完后,将会返回一个整数(即增删改语句导致了数据库几行数据发生了变化)

        Statement.executeQuery方法用于向数据库发送查询语句,executeQuery方法返回代表查询结果的ResultSet对象。

8PreparedStatement

        PreperedStatementStatement的孩子,它的实例对象可以通过调用Connection.preparedStatement()方法获得,相对于Statement对象而言:

        PreperedStatement可以避免SQL注入的问题。

        Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出。PreparedStatement 可对SQL进行预编译,从而提高数据库的执行效率。        

         并且PreperedStatement对于sql中的参数,允许使用占位符的形式进行替换,简化sql语句的编写。

9、使用JDBC处理大数据

        在实际开发中,程序需要把大文本或二进制数据保存到数据库。

        基本概念:大数据也称之为LOB(Large Objects)LOB又分为:

                 clobblob

                       clob用于存储大文本。

                       blob用于存储二进制数据,例如图像、声音、二进制文等。

        对MySQL而言只blob,而没有clobmysql存储大文本采用的是TextTextblob分别又分为:

                 

           TINYTEXTTEXTMEDIUMTEXTLONGTEXT                 

           TINYBLOBBLOBMEDIUMBLOBLONGBLOB

 10、使用JDBC处理大文本

        对于MySQL中的Text类型,可调用如下方法设置:

                 PreparedStatement.setCharacterStream(index, reader, length);

                 //注意length长度须设置,并且设置为int

        对MySQL中的Text类型,可调用如下方法获取:

                 reader = resultSet. getCharacterStream(i);

                 reader = resultSet.getClob(i).getCharacterStream();                

                 string s = resultSet.getString(i);

11、使用JDBC处理二进制数据

        对于MySQL中的BLOB类型,可调用如下方法设置:

        PreparedStatement. setBinaryStream(i, inputStream, length);

        对MySQL中的BLOB类型,可调用如下方法获取:

        InputStream in  = resultSet.getBinaryStream(i);        

        InputStream in  = resultSet.getBlob(i).getBinaryStream();

12Oracle中大数据处理

        Oracle定义了一个BLOB字段用于保存二进制数据,但这个字段并不能存放真正的二进制数据,只能向这

个字段存一个指针,然后把数据放到指针所指向的OracleLOB段中, LOB段是在数据库内部表的一部分。

        

       因而在操作OracleBlob之前,必须获得指针(定位器)才能进行Blob数据的读取和写入。

        

       如何获得表中的Blob指针呢? 可以先使用insert语句向表中插入一个空的blob(调用oracle的函数

empty_blob()  ),这将创建一个blob的指针,然后再把这个emptyblob的指针查询出来,这样就可得到BLOB

对象,从而读写blob数据了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值