JdbcUtil类,jdbcl连接Oracle数据库,封装增删改查方法

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**

  • 使用jdbc对于增删改方法的封装

  • 对于增删改方法,仍有大部分的冗余代码,但在这些冗余代码中又有一些是不同的

  • 例如sql语句,以及传入的参数,所以可把相同的代码封装,不同的代码抽取

  • 这只是代码的简化,并不是程序的优化

  • @param sql 对于sql语句的抽取

  • @param obj 可变长参数

  • 可变长参数必须是最后一个形参,也只能有一个这样的形参

  • 在该方法内部,将obj当成一个数组使用。

  • @throws SQLException

*/

public static void update(String sql,Object…obj) throws SQLException{

Connection conn = null;

PreparedStatement ps = null;

try{

//调用本类中的获取连接方法

conn = getConnection();

ps = conn.prepareStatement(sql);

//再判断传入的参数是否为空

if (obj != null) {

//如果不为空则挨个赋值

for (int i = 0; i < obj.length; i++) {

ps.setObject(i+1, obj[i]);

}

}

ps.executeUpdate();

//这里不用catch异常是因为要在dao中去处理

}finally{

//这里的conn连接不要关,在services层中去关闭!在services中处理事务!

toClose(null, ps, null);

}

}

/*

  • 反射:

  • 什么是类对象和类的对象?

  • Student s = new Student();

s是类的对象,是某一个类创建出来的对象,这个类是Student

//1.在运行期加载一个类到虚拟机中<

  • 12
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抱歉,作为语言模型,我无法提供完整的代码实现。但是,我可以给出一个jdbcutil的模板,您可以根据需要进行修改和完善。 ```java import java.sql.*; public class JdbcUtil { private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String URL = "jdbc:mysql://localhost:3306/test"; private static final String USERNAME = "root"; private static final String PASSWORD = "password"; private Connection conn; private PreparedStatement pstmt; private ResultSet rs; public JdbcUtil() { try { Class.forName(DRIVER); } catch (ClassNotFoundException e) { e.printStackTrace(); } } // 获取数据库连接 public Connection getConnection() { try { conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); } catch (SQLException e) { e.printStackTrace(); } return conn; } // 关闭数据库连接 public void closeConnection() { try { if (rs != null) rs.close(); if (pstmt != null) pstmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } // 增加操作 public boolean add(String sql, Object... params) { conn = getConnection(); try { pstmt = conn.prepareStatement(sql); for (int i = 0; i < params.length; i++) { pstmt.setObject(i + 1, params[i]); } int count = pstmt.executeUpdate(); return count > 0; } catch (SQLException e) { e.printStackTrace(); return false; } finally { closeConnection(); } } // 删除操作 public boolean delete(String sql, Object... params) { conn = getConnection(); try { pstmt = conn.prepareStatement(sql); for (int i = 0; i < params.length; i++) { pstmt.setObject(i + 1, params[i]); } int count = pstmt.executeUpdate(); return count > 0; } catch (SQLException e) { e.printStackTrace(); return false; } finally { closeConnection(); } } // 修改操作 public boolean update(String sql, Object... params) { conn = getConnection(); try { pstmt = conn.prepareStatement(sql); for (int i = 0; i < params.length; i++) { pstmt.setObject(i + 1, params[i]); } int count = pstmt.executeUpdate(); return count > 0; } catch (SQLException e) { e.printStackTrace(); return false; } finally { closeConnection(); } } // 查询操作 public ResultSet query(String sql, Object... params) { conn = getConnection(); try { pstmt = conn.prepareStatement(sql); for (int i = 0; i < params.length; i++) { pstmt.setObject(i + 1, params[i]); } rs = pstmt.executeQuery(); return rs; } catch (SQLException e) { e.printStackTrace(); return null; } } } ``` 使用示例: ```java JdbcUtil jdbcUtil = new JdbcUtil(); String sql = "INSERT INTO user(name, age) VALUES(?, ?)"; Object[] params = {"张三", 20}; boolean result = jdbcUtil.add(sql, params); if (result) { System.out.println("添加成功"); } else { System.out.println("添加失败"); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值