zoukankan      html  css  js  c++  java
  • 数据库连接

    连接数据库模板(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(" 更新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();
    }
    }
    }
    放不下的放不下,得不到的得不到

  • 相关阅读:
    深入理解 C/C++ sizeof() 运算符
    Luogu2040 | 打开所有的灯 (广搜+状压)
    Intel 8086 标志寄存器及JCC指令表
    Intel 8086 常用汇编指令表
    PTA L2-029 | 特立独行的幸福 (打表+递归)
    C++中为什么要用指针,而不直接使用对象?
    c#中基本类型占用字节数
    c++TXT文件读入
    较为初始的学生成绩管理系统
    C++中各种数据成员及成员函数的定义及使用
  • 原文地址:https://www.cnblogs.com/Keven02/p/6081639.html
Copyright © 2011-2022 走看看