您的位置:首页 > 大数据

jdbc心得-4-分页、元数据、大数据处理

2012-06-20 19:54 253 查看
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 对于MySQL中的Text类型,可调用如下方法设置:

PreparedStatement.setCharacterStream(index,reader, length);

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

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

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)和反射实现与具体类的耦合
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: