java 通过元数据改写jdbcUtil访问jar
来源:互联网 发布:语音速记软件 编辑:程序博客网 时间:2024/05/22 11:52
直接上代码:
package com.dsp.dbAssist;
import java.sql.Connection;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
public class DBAssist {
private DataSource dataSource;
public DBAssist(DataSource dataSource) {
this.dataSource = dataSource;
}
/**
* 增删改数据库
*
* @param sql
* @param params
*/
public void Update(String sql, Object... params) {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = this.dataSource.getConnection();
stmt = conn.prepareStatement(sql);
ParameterMetaData pmd = stmt.getParameterMetaData();
int num = pmd.getParameterCount();
if (num > 0) {
if (params == null) {
throw new IllegalArgumentException("没有传入参数");
}
if (params.length != num) {
throw new IllegalArgumentException("传入的参数个数不正确");
}
for (int i = 0; i < num; i++) {
stmt.setObject(i, params[i]);
}
}
stmt.executeUpdate();
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
release(rs, stmt, conn);
}
}
public Object Query(String sql, ResultSetHandler Handle, Object... params) {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = this.dataSource.getConnection();
stmt = conn.prepareStatement(sql);
ParameterMetaData pmd = stmt.getParameterMetaData();
int num = pmd.getParameterCount();
if (num > 0) {
if (params == null) {
throw new IllegalArgumentException("没有传入参数");
}
if (params.length != num) {
throw new IllegalArgumentException("传入的参数个数不正确");
}
for (int i = 0; i < num; i++) {
stmt.setObject(i, params[i]);
}
}
rs = stmt.executeQuery();
return Handle.handle(rs);
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
release(rs, stmt, conn);
}
}
/**
* 释放资源
*
* @param rs
* @param stmt
* @param conn
*/
private void release(ResultSet rs, Statement stmt, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs = null;
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt = null;
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
如果要获取一个对象绑定
package com.dsp.dbAssist;
import java.lang.reflect.Field;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
public class BeanHandler implements ResultSetHandler {
private Class clazz;
public BeanHandler(Class clazz) {
this.clazz = clazz;
}
public Object handle(ResultSet rs) {
try {
if (rs.next()) {
Object beanclazz = this.clazz.newInstance();
ResultSetMetaData rmd = rs.getMetaData();
int count = rmd.getColumnCount();
for (int i = 0; i < count; i++) {
String fieldName = rmd.getColumnName(i);
Object fieldValue = rs.getObject(i);
Field f = this.clazz.getField(fieldName);
f.setAccessible(true);
f.set(beanclazz, fieldValue);
}
return beanclazz;
}
return null;
} catch (Exception e) {
throw new RuntimeException("绑定数据出错");
}
}
}
如果要获取list 那么匿名类如下:
package com.dsp.dbAssist;
import java.lang.reflect.Field;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.List;
public class BeanListHandler implements ResultSetHandler {
private Class clazz;
public BeanListHandler(Class clazz) {
this.clazz = clazz;
}
public Object handle(ResultSet rs) {
try {
List list = new ArrayList();
while (rs.next()) {
Object beanclazz = this.clazz.newInstance();
ResultSetMetaData rmd = rs.getMetaData();
int count = rmd.getColumnCount();
for (int i = 0; i < count; i++) {
String fieldName = rmd.getColumnName(i);
Object fieldValue = rs.getObject(i);
Field f = this.clazz.getField(fieldName);
f.setAccessible(true);
f.set(beanclazz, fieldValue);
}
list.add(beanclazz);
}
return list;
} catch (Exception e) {
throw new RuntimeException("绑定数据出错");
}
}
}
- java 通过元数据改写jdbcUtil访问jar
- JdbcUtil.java
- Java jdbcutil
- java 使用jsch.jar包通过sftp访问Linux服务器
- JAVA---JdbcUtil封装
- Java-JDBCUtil工具类
- Jdbcutil.java jdbc.properties
- JAVA通过ODBC访问本地SAS数据
- Java通过JSON传递数据访问服务器
- 通过JAVA对SAS元数据用户进行增删改
- JAVA通过JDBC访问SAS数据(通过IOM接口)
- JdbcUtil
- JDBCUtil
- JdbcUtil
- JdbcUtil
- JDBCUtil
- jdbcutil
- JdbcUtil
- lucas定理及扩展lucas定理
- DSP5509A——环境搭建出现的错误解决
- 计蒜客 难题题库 026 等差数列
- css3属性选择器
- 分享一个很好用的验证码插件代码
- java 通过元数据改写jdbcUtil访问jar
- Eclipse搭建Spring开发环境
- C++ Primer 第五版 练习9.52 解答
- 待重写
- poj 2632
- Linux_USB驱动程序设计学习
- CSS3结构性伪类
- 面试题2:实现Singleton
- 计蒜客 难题题库 027 三值排序