JDBC例子之Oracle篇

来源:互联网 发布:淘宝美颜切图怎么使用 编辑:程序博客网 时间:2024/06/15 09:45
package util;import java.io.Serializable;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.util.List;import java.util.ArrayList;import java.util.Map;import java.util.HashMap;/** * @author Administrator * param1:driver type:String * param2:url type:String * param3:user type:String * param4:pw type:String * param5:con type:Connection * param6:pstmt type:PreparedStatememt * param7:rs type:ResultSet * param8:sql type:String * 步骤一: * 设置常量 * 二: * 加载驱动,得到与数据库的连接对象 * 三: * 声明sql语句,得到语句对象 * 四: * 执行sql语句 * 五: * 返回执行结果 * 六: * 处理返回结果 * while(rs.next()){ * String user = rs.getString(1); * String pw = rs.getString(2); * } * 七: * 关闭对象,依次为rs,pstmt,con *  */public class DBUtil implements Serializable {/** *  */private static final long serialVersionUID = 1L;private static String DRIVER = "oracle.jdbc.dirver.OracleDirver";private static String URL = "jdbc:oracle:thin:@localhost:1521:MyDataBase";private static String USER = "scott";private static String PASSWORD = "tiger";    Connection con = null;PreparedStatement pstmt = null;ResultSet rs = null;public void setDriver(String driver){DBUtil.DRIVER = driver;}public void setURL(String url){DBUtil.URL = url;}public void setUser(String user){DBUtil.USER = user;}public void setPassword(String password){DBUtil.PASSWORD = password;}static{try {Class.forName(DRIVER);} catch (ClassNotFoundException e) {e.printStackTrace();}}private Connection getConnection(){try {con = DriverManager.getConnection(URL,USER,PASSWORD);} catch (SQLException e){e.printStackTrace();}return con;}//获取语句对象private PreparedStatement getPrepareStatement(String sql){try {pstmt = getConnection().prepareStatement(sql);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return pstmt;}//给pstmt的sql语句设置参数private void setParams(String sql,Object...params){pstmt = getPrepareStatement(sql) ;for(int i = 0; i<params.length; i++){try {pstmt.setObject(i+1,params[i]);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}//执行数据查询操作时,将返回的结果封装到List对象中public List<Map<String,String>> getList(String sql,Object...params){List<Map<String,String>> list = new ArrayList<Map<String,String>>();try{setParams(sql,params);rs = pstmt.executeQuery();ResultSetMetaData rsmd = rs.getMetaData();while(rs.next()){Map<String,String> m = new HashMap<String,String>();for(int i = 0;i<rsmd.getColumnCount(); i++){String colName = rsmd.getColumnName(i+1);m.put(colName,rs.getString(colName));}list.add(m);}}catch(SQLException e){e.printStackTrace();}finally{close();}return list;}//执行数据库查询操作时,将返回的结果封装到List对象public Map<String,String> getMap(String sql,Object...params){List<Map<String,String>> list = getList(sql,params);if(list.isEmpty()){return null;}else{return (Map<String,String>)list.get(0);}}public int update(String sql,Object...params){int recNo = 0;try{setParams(sql,params);recNo = pstmt.executeUpdate();}catch(SQLException e){e.printStackTrace();}finally{close();}return recNo;}private void close(){try{if(rs!=null){rs.close();}if(pstmt!=null){pstmt.close();}if(con!=null){con.close();}}catch(SQLException e){e.printStackTrace();}}}

原创粉丝点击