封装jdbc仿照hibernate访问数据库查询数据
2013-05-31 16:59
337 查看
封装后的jdbc操作数据
public static ArrayList getDatas(Connection conn, SQLObject sqlObj) throws SQLException {
ArrayList rows = new ArrayList();
PreparedStatement pst=null;
ResultSet rs=null;
try {
if (sqlObj == null)
return rows;
pst = conn.prepareStatement(sqlObj.getSql());
Vector params = sqlObj.getParams();
for (int i = 0; i < params.size(); i++) {
if (params.get(i) == null)
throw new SystemException("查询sql语句中第" + (i + 1) + "参数为null!");
pst.setObject(i + 1, params.get(i));//给sql语句中参数赋值
}
rs = pst.executeQuery();
ResultSetMetaData rsm = rs.getMetaData();
while (rs.next()) {
rows.add(getRow(rs, rsm));//getRow方法在下面
}
} catch (Exception e) {
e.printStackTrace();
}finally{
if(rs!=null){
rs.close();
}
if(pst!=null){
pst.close();
}
}
return rows;
}
=====================
private static HashMap getRow(ResultSet rs, ResultSetMetaData rsm) throws SQLException {
HashMap map = new HashMap();
int count = rsm.getColumnCount();
for (int i = 1; i <= count; i++) {
Object value;
int colType = rsm.getColumnType(i);
switch (colType) {
case Types.TIMESTAMP:
case Types.DATE:
value = rs.getDate(i);
if (value != null)
value = Tools.formatDate((java.util.Date) value);
break;
case Types.FLOAT:
case Types.NUMERIC:
value = rs.getString(i);
if (value != null) {
int index = value.toString().indexOf(".");
if (index == 0) {
value = "0".concat(value.toString());
}
}
break;
default:
value = rs.getString(i);
}
map.put(rsm.getColumnName(i).toLowerCase(), value == null ? "" : value.toString());
}
return map;
}
public static ArrayList getDatas(Connection conn, SQLObject sqlObj) throws SQLException {
ArrayList rows = new ArrayList();
PreparedStatement pst=null;
ResultSet rs=null;
try {
if (sqlObj == null)
return rows;
pst = conn.prepareStatement(sqlObj.getSql());
Vector params = sqlObj.getParams();
for (int i = 0; i < params.size(); i++) {
if (params.get(i) == null)
throw new SystemException("查询sql语句中第" + (i + 1) + "参数为null!");
pst.setObject(i + 1, params.get(i));//给sql语句中参数赋值
}
rs = pst.executeQuery();
ResultSetMetaData rsm = rs.getMetaData();
while (rs.next()) {
rows.add(getRow(rs, rsm));//getRow方法在下面
}
} catch (Exception e) {
e.printStackTrace();
}finally{
if(rs!=null){
rs.close();
}
if(pst!=null){
pst.close();
}
}
return rows;
}
=====================
private static HashMap getRow(ResultSet rs, ResultSetMetaData rsm) throws SQLException {
HashMap map = new HashMap();
int count = rsm.getColumnCount();
for (int i = 1; i <= count; i++) {
Object value;
int colType = rsm.getColumnType(i);
switch (colType) {
case Types.TIMESTAMP:
case Types.DATE:
value = rs.getDate(i);
if (value != null)
value = Tools.formatDate((java.util.Date) value);
break;
case Types.FLOAT:
case Types.NUMERIC:
value = rs.getString(i);
if (value != null) {
int index = value.toString().indexOf(".");
if (index == 0) {
value = "0".concat(value.toString());
}
}
break;
default:
value = rs.getString(i);
}
map.put(rsm.getColumnName(i).toLowerCase(), value == null ? "" : value.toString());
}
return map;
}
相关文章推荐
- 仿照hibernate封装的一个对数据库操作的jdbc工具类
- JDBC连接数据库方法的封装,以及查询数据方法的封装
- JDBC连接数据库方法的封装,以及查询数据方法的封装(精华)
- jdbc访问数据库简单封装与配置 使用工厂和mvc
- LINQ学习笔记(10) LINQ to Entities---不需要编写任何数据访问代码就可以查询数据库
- Hibernate 查询用【in】条件去查询数据库的数据
- Sharp-ORM 自动将数据库封装成对象的生成器,三层数据访问结构
- 大数据查询时出现 org.hibernate.exception.GenericJDBCException: Cannot open connection 请求支援
- 使用XAMPP可视化管理Mysql,使用JDBC访问数据库执行插入、查询、删除等操作
- JDBC连接数据库(适当的封装查询、新增修改删除)的方法改进
- 练习题——Gson解析、利用JDBC连接数据库进行数据的存取及查询等的综合
- Hibernate框架的基本搭建(一个小的java project的测试向数据库中插入和查询数据的功能)
- 【JavaEE】之MyBatis与原生JDBC、Hibernate访问数据库的比较
- 使用RESTful Jersey框架搭建WebService,Hibernate框架访问数据库,MySQL存储数据
- php怎么将数据库封装,然后提供数据接口让其他API什么的访问
- Hibernate 查询结果与数据库中的数据不一致
- Sqlserver 在查询分析器里如何访问远程的的数据库,进行数据查询更新等操作。
- (20120802)JDBC数据库连接查询,封装类
- 转jmeter 性能测试 JDBC Request (查询数据库获取数据库数据) 的使用
- 使用原生JDBC从数据库读取数据并且封装