连接数据库模板(Oracle、MySql)
抬头看见月光,却记不起来时的路 一、链接数据库步骤 1、加载驱动程序Oracle代码块:Clas.forname("oracle.jdbc.driver.OracleDriver");//加载驱动包
说明:Class.forName()为反声明
MySql代码块:
Clas.forname("com.mysql.jdbc.Driver");
2、创建指定的数据库的URL
Oracle代码块String url = "jdbc:oracle:thin:@localhost:1521/ORCL";
MySql代码块
String url = "jdbc:mysql://localhost:3306/student"
3、建立数据库连接
代码块:DriverManager.getConnection(url,"userId","password");
标准模板(Oracle):
package Jdbc;
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.ArrayList; import java.util.HashMap; import java.util.Map;public class jdbc {
private Connection conn = null;//创建数据库链接 private PreparedStatement pre= null;//创建预编译语句对象,可进行批处理 ResultSet result = null;//创建结果集对象 //连接数据库的URL private String url = "jdbc:oracle:thin:@localhost:1521/ORCL"; private String user = "userId"; private String password = "password"; /加载驱动,写在静态代码中,只加载一次/ static{ try{ Class.forName("oracle.jdbc.driver.OracleDriver"); System.out.println("---Oracle驱动加载成功---"); }catch(ClassNotFoundException e){ System.out.println("----Oracle驱动加载失败---"); e.printStackTrace(); } } /获得数据库连接/ public Connection getConn(){ try{ conn = DriverManager.getConnection(url,user,password); System.out.println("---连接成功---"); }catch(SQLException e){ e.printStackTrace(); } return conn; } /更新操作/ public boolean executeSQL(String sql){ System.out.println("执行SQL为:"+sql ); try { conn = getConn(); pre = conn.prepareStatement(sql); if(pre.executeUpdate(sql) > 0){ return true; }else{ System.out.println("\n更新SQL执行结果为0!"); return false; } } catch (SQLException e) { e.printStackTrace(); return false; } finally{ release(); } } /查询操作/ public ArrayList<Map<String, Object>> query(String sql) { System.out.println("执行SQL : "+sql); ArrayList<Map<String, Object>> rsList = null; try { rsList = new ArrayList<Map<String, Object>>(); pre = getConn().prepareStatement(sql); result = pre.executeQuery();//不需要写参数 //取出查询sql所有的列名 ResultSetMetaData rsmd = result.getMetaData(); while (result.next()) { Map<String, Object> rsMap = new HashMap<String, Object>(); for (int i = 1; i <= rsmd.getColumnCount(); i++) { //获取每一列的列名 String columnName = rsmd.getColumnName(i); //获取每一列的列值 //rs.getstring(String columnLabel) 通过列名获取列值 String columnValue = result.getString(columnName); rsMap.put(columnName, columnValue); } rsList.add(rsMap); //将存储好信息的map存储到list中 } } catch (Exception e) { e.printStackTrace(); } finally { release(); } return rsList; } /释放资源/ public void release(){ try{ if(result != null) result.close(); if(pre !=null) pre.close(); if(conn != null) conn.close(); System.out.println("数据库连接已关闭!"); }catch(Exception e){ e.printStackTrace(); } } } 放不下的放不下,得不到的得不到