- . 创建简单t_user测试表
create table t_user(
f_id int,
f_name varchar2(30),
f_age int,
f_job varchar2(30)
);
- 建立数据库数据操作(DML)的工具类
public class MJdbcTemplate {
/**
* 执行数据库的查询操作
* @param sql
* @param params
*/
public List<Map<String,Object>> queryForList(String sql, Object... params) {
Connection conn = null;
PreparedStatement pst = null;
ResultSet rs=null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String password = "pan";
conn = DriverManager.getConnection(url, user, password);
pst = conn.prepareStatement(sql);
if(params!=null){
for (int i = 0; i < params.length; i++) {
pst.setObject(i + 1, params[i]);
}
}
rs = pst.executeQuery();
ResultSetMetaData metaData = rs.getMetaData();
int columncount=metaData.getColumnCount();
List<Map<String,Object>> result=new ArrayList<Map<String,Object>>();
while (rs.next()){
Map<String,Object> map=new HashMap<String,Object>();
for(int i=1;i<=columncount;i++){
String label=metaData.getColumnLabel(i);
Object object=rs.getObject(label);
map.put(label, object);
}
result.add(map);
}
return result;
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
if(rs !=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (pst != null) {
try {
pst.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
/**
* 执行数据的更新(insert|update|delete)操作
* @param sql
* @param params
* @return 返回受影响的行数
*/
public int executeUpdate(String sql, Object ... params) {
Connection conn = null;
PreparedStatement stm = null;
try {
Class.forName("oracle.jdbc.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String password = "scott";
conn = DriverManager.getConnection(url, user, password);
stm = conn.prepareStatement(sql);
if (params != null) {
for (int i = 0; i < params.length; i++) {
stm.setObject(i + 1, params[i]);
}
}
return stm.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
if (stm != null) {
try {
stm.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
- 测试代码
public static void main(String[] args){
MJdbcTemplate template=new MJdbcTemplate();
String sql="select f_id,f_age from t_user where f_id = ?";
List<Map<String,Object>> queryForList = template.queryForList(sql, 11);
for (Map<String, Object> map : queryForList) {
Set<String> keySet = map.keySet();
for (String key : keySet) {
System.out.print(key+":"+map.get(key)+" ");
}
System.out.println("");
}
}