专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 数据库

jdbc经验-4-分页、元数据、大数据处理

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
jdbc心得-4-分页、元数据、大数据处理

1.MySQL分页的实现:

•       Select * from table limit M,N

•      M:记录开始索引位置

•      N:取多少条记录。

代码案例:

package com.hbsi.jdbcdemo;

import java.sql.*;

import com.hbsi.dbUtil.DBManger;

public class demo5 {

   publicstatic void main(String[] args) {

     pageSelect(2,3);

   }

   publicstatic void pageSelect(int page,int pageSize){

     Connectioncon=null;

     PreparedStatementps=null;

     ResultSetrs=null;

     Stringsql="select * from users limit ?,?";

     try{

        con=DBManger.getConnection();

        ps=con.prepareStatement(sql);

        ps.setInt(1,(page-1)*pageSize);

        ps.setInt(2,pageSize);

        rs=ps.executeQuery();

        while(rs.next()){

   System.out.println(rs.getInt("id")+"t"+rs.getString("name")+"t"+rs.getString("password"));

        }

     }catch(Exceptione){

        e.printStackTrace();

     }finally{

        DBManger.dbClose(rs,ps, con);

     }

    

   }

2.  可滚动的结果集

   Statementst =

connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

   ResultSetrs = st.executeQuery(sql);

rs.beforeFirst(); rs.afterLast();rs.first();

rs.isFirst();rs.last();rs.isLast();

       rs.absolute(9);rs.moveToInsertRow();

3.   可更新的结果集

   conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

             ResultSet.CONCUR_UPDATABLE);

   rs.updateString("colname", "new value");

   rs.updateRow();

4.元数据- DataBaseMetaData

l    元数据:数据库、表、列的定义信息。

l    Connection.getDatabaseMetaData()

l    DataBaseMetaData对象

•       getURL():返回一个String类对象,代表数据库的URL。

•       getUserName():返回连接当前数据库管理系统用户名。

•       getDatabaseProductName():返回数据库的产品名称。

•       getDatabaseProductVersion():返回数据库的版本号。

•       getDriverName():返回驱动程序的名称。

•       getDriverVersion():返回驱动程序的版本号。

•       isReadOnly():返回一个boolean值,指示数据库是否只允许读操作。

5.  元数据- ParameterMetaData

l    PreparedStatement .getParameterMetaData()

•       获得代表PreparedStatement元数据的ParameterMetaData对象。

l    ParameterMetaData对象

•       getParameterCount()

•      获得指定参数的个数

•       getParameterType(int param)

•      获得指定参数的sql类型

6.  元数据-ResultSetMetaData

l    ResultSet. getMetaData()

•       获得代表ResultSet对象元数据的ResultSetMetaData对象。

l    ResultSetMetaData对象

•       getColumnCount()

•      返回resultset对象的列数

•       getColumnName(int column)

•      获得指定列的名称

•        getColumnTypeName(int column)

•      获得指定列的类型

7.  使用JDBC处理大数据

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

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

•      clob和blob

•      clob用于存储大文本。Text

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

l    对MySQL而言只有blob,而没有clob,mysql存储大文本采用的是Text,Text和blob分别又分为:

•      TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT

•      TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB

l    对于MySQLText类型,可调用如下方法设置:

PreparedStatement.setCharacterStream(index,reader, length);

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

l    MySQLText类型,可调用如下方法获取:

reader = resultSet. getCharacterStream(i);

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

string s = resultSet.getString(i);

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

PreparedStatement. setBinaryStream(i, inputStream, length);

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

InputStream in  =resultSet.getBinaryStream(i);

InputStream in  =resultSet.getBlob(i).getBinaryStream();8. 一个简单用户相关的数据访问层

l    J2EE三层架构简介

     表示层 、业务逻辑层、数据访问层,三层之间用接口隔离。

l    定义domain对象User,定义存取用户的接口

l    用JDBC实现接口

l    用配置文件(properties)和反射实现与具体类的耦合

                                

 

 

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: