JDBC工具类(DButil)
package lesson11;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class DBUtil { private Connection conn = null; private Statement st = null; private PreparedStatement ps = null; private ResultSet rs = null; private String url = "jdbc:mysql://localhost:3306/filmcenter_db"; private String useame = "root"; private String psw = "root";
//1.加载驱动static{ try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { System.out.println("加载驱动失败!!"); e.printStackTrace(); }}//2.获取连接public Connection getConn(){ try { conn = DriverManager.getConnection(url,useame,psw); } catch (SQLException e) { System.out.println("获取连接失败!!"); e.printStackTrace(); } retu conn;}//3.提供更新方法public int update(String sql, Object[] objs){ conn = getConn(); try { ps = conn.prepareStatement(sql); for(int i = 0 ; i < objs.length ; i ++){ ps.setObject(i + 1, objs[i]); } retu ps.executeUpdate(); } catch (SQLException e) { System.out.println("更新失败!!"); e.printStackTrace(); retu -1; }finally{ release(); }}//4.提供查询方法public List<Map<String,Object>> query(String sql, Object[] objs){ List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); try { ps = getConn().prepareStatement(sql); for(int i = 0 ; i < objs.length ; i ++){ ps.setObject(i + 1, objs[i]); } rs = ps.executeQuery(); ResultSetMetaData rsmd = rs.getMetaData(); while(rs.next()){ Map<String,Object> map = new HashMap<String,Object>(); for(int i = 0 ; i < rsmd.getColumnCount() ; i ++){ String key = rsmd.getColumnName(i + 1); Object value = rs.getObject(key); map.put(key, value); } list.add(map); } retu list; } catch (SQLException e) { System.out.println("查询操作失败!"); e.printStackTrace(); retu list; }finally{ release(); }}//5.批量更新public void batch(String[] sqls){ try { conn = getConn(); conn.setAutoCommit(false); st = conn.createStatement(); for(int i = 0; i < sqls.length ; i ++){ st.addBatch(sqls[i]); } st.executeBatch(); } catch (SQLException e) { e.printStackTrace(); try { conn.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } }finally{ try { conn.commit(); } catch (SQLException e) { e.printStackTrace(); } release(); }}//释放资源public void release(){ if(rs != null){ try { rs.close(); } catch (SQLException e) { System.out.println("关闭结果集对象出现异常!"); e.printStackTrace(); } } if(ps != null){ try { ps.close(); } catch (SQLException e) { System.out.println("关闭预处理语句对象出现异常!"); e.printStackTrace(); } } if(st != null){ try { st.close(); } catch (SQLException e) { System.out.println("关闭语句对象出现异常!"); e.printStackTrace(); } } if(conn != null){ try { conn.close(); } catch (SQLException e) { System.out.println("关闭连接对象出现异常!"); e.printStackTrace(); } }}
}
作者:大前端之旅
来源链接: https://jianguo.blog.csdn.net/article/details/106889464
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。