JDBC动态参数,动态sql示例
来源:互联网 发布:尤克里里谱制作软件 编辑:程序博客网 时间:2024/06/03 21:00
* 图书借阅
*
* @param xh
* 学号
* @param bookName
* 图书名称
* @param bookStatus
* 图书状态
* @return
*/
public List<Map<String, Object>> tsjy(String xh, String bookName, String bookStatus) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
List<Map<String, Object>> map = null;
try {
connection = JdbcUtils.getConnection();
StringBuffer sql = new StringBuffer();
sql.append("select wid,sfrzh,tsmc,jsrq,yhrq,xhrq,jhbz from USR_DATAI.T_TS_JY ");
List<Object> params = new ArrayList<Object>();
if (StringUtil.isNotEmpty(xh)) {
sql.append("where SFRZH = ? ");
params.add(xh);
}
if (StringUtil.isNotEmpty(bookName)) {
sql.append("and TSMC like ? ");
params.add("%" + bookName + "%");
}
if (StringUtil.isNotEmpty(bookStatus)) {
sql.append("and JHBZ = ? ");
params.add(bookStatus);
}
sql.append("order by jsrq desc");
log.info("图书借阅sql语句:{}", sql.toString());
preparedStatement = connection.prepareStatement(sql.toString());
setParameter(params, preparedStatement);
resultSet = preparedStatement.executeQuery();
map = JdbcUtils.rsToMap(resultSet);
} catch (Exception e) {
} finally {
JdbcUtils.releaseDB(connection, preparedStatement, resultSet);
}
return map;
}
public void setParameter(List<Object> params, PreparedStatement preparedStatement) throws SQLException {
for (int i = 0; i < params.size(); i++) {
Object p = params.get(i);
if (p instanceof Integer) {
preparedStatement.setInt(i + 1, (Integer) p);
} else if (p instanceof String) {
preparedStatement.setString(i + 1, (String) p);
}
}
}
public static List<Map<String, Object>> rsToMap(ResultSet rs)
throws SQLException, InstantiationException, IllegalAccessException {
// 结果集 中列的名称和类型的信息
ResultSetMetaData rsm = rs.getMetaData();
int colNumber = rsm.getColumnCount();
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
// 遍历每条记录
while (rs.next()) {
Map<String, Object> map = new HashMap<String, Object>();
// 实例化对象
// 取出每一个字段进行赋值
for (int i = 1; i <= colNumber; i++) {
String key = rsm.getColumnName(i);
Object value = rs.getObject(i);
map.put(key, value);
}
list.add(map);
}
return list;
}
/**
* 返回结果只有一条数据
* @param rs
* @return
* @throws SQLException
* @throws InstantiationException
* @throws IllegalAccessException
*/
public static Map<String,Object> rsToOneMap(ResultSet rs)
throws SQLException, InstantiationException, IllegalAccessException {
// 结果集 中列的名称和类型的信息
ResultSetMetaData rsm = rs.getMetaData();
int colNumber = rsm.getColumnCount();
Map<String, Object> map = new HashMap<String, Object>();
// 遍历每条记录
while (rs.next()) {
// 实例化对象
// 取出每一个字段进行赋值
for (int i = 1; i <= colNumber; i++) {
String key = rsm.getColumnName(i);
Object value = rs.getObject(i);
map.put(key, value);
}
}
return map;
}
- JDBC动态参数,动态sql示例
- 09动态sql示例
- oralce 动态sql 点位符示例
- oracle 执行动态sql,using动态参数
- 设置动态SQL参数值
- 备忘: 动态sql 输出参数
- 根据参数写动态sql
- mybatis 动态sql和参数
- mybatis 动态sql和参数
- 用jdbc做查询操作时动态拼接参数报SQL语法错误的问题
- 动态参数文件损坏解决方法示例四则
- Jdbc模板,实现动态生成SQL...
- JDBC 动态创建数据表 及 SQL预处理
- Jdbc模板,实现动态生成SQL...
- JDBC 动态创建数据表 及 SQL预处理
- SQL动态计算出表中公式示例
- SQL动态计算出表中公式示例
- SQL动态计算出表中公式示例
- EFCodeFirst级联删除
- 2017年09月23日普级组 数列
- 为什么还有这么多人用C++写服务端?
- Cron表达式的认识和使用
- 全局变量和局部变量在内存里的区别
- JDBC动态参数,动态sql示例
- (转)移植QT5.6到嵌入式开发板
- Spring IOC原理
- Es 总结
- 浅谈C中的malloc和free释放
- C++ Primer
- best-time-to-buy-and-sell-stock
- JQuery动态显示和隐藏div
- ngrok工具,将本地web服务暴露给互联网