zoukankan      html  css  js  c++  java
  • JDBC

    java 连接oracle 步骤

    1. 导入jdbc驱动jar(驱动包)
    2. 注册jdbc驱动
    -参数:"驱动程序类名"
    Class.forName("驱动程序类名")
    3. 获得Connection对象
    需要3个参数:url,username,password
    连接到数据库
    4. 创建statement(语句)对象
    --conn.createStatement()方法创建对象
    --用于执行SQL语句
    - execute(ddl)执行任何sql,常用执行ddl,dcl
    -executeUpdate(dml)执行DML语句,如 insert update delete
    -executeQuery(dql)执行DQL语句,如select
    5.处理SQL执行结果:
    -execute(ddl)如果没有异常则成功
    -executeUpdate(dml)返回数字,表示跟新“行”数量,抛出异常则失败
    -executeQuery(dql)返回resultset(结果集)对象,代表2维查询结果,
    使用遍历while(rs.next()){
    int id=rs.getInt("id");
    String name=rs.getString("name");
    System.out.println(id+","+name);
    }处理,如果查询失败抛出异常
    6. 关闭数据连接!
    - conn.close();


    public static void main(String[] args) throws Exception {
    Class.forName("oracle.jdbc.OracleDriver");
    //连接到数据库

    * 通过DriverManager获取数据库连接
    * 注意:
    * 导入的包都在java.sql.*
    *
    * DriverManager连接ORACLE时的路径格式
    * jdbc:oracle:thin:@<host>:<port>:<sid>
    *
    * Mysql的路径 端口号通常是:3306
    * jdbc:mysql://<host>:<port>/<dbname>
    */
    String url="jdbc:oracle:thin:@192.168.1.10:1521:xe";
    String user="system";
    String password="123";
    //System.out.println("OK");
    //连接到数据库,如果不成功出现异常
    Connection conn=DriverManager.getConnection(url, user, password);
    //输出conn引用对象的实际类型
    //证明:驱动程序提供了connection接口的实现类
    System.out.println(conn.getClass());
    //创建 "语句"对象
    Statement st=conn.createStatement();
    //执行SQL语句
    String ddl="create table dahua_demo"
    +"(id number(5),"
    +"name varchar2(100))";
    boolean b=st.execute(ddl);
    //返回结果: true 表示有结果集
    // false 表示没有结果集
    // 创建失败抛出异常
    System.out.println(b);
    Statement st=conn.createStatement();
    String dql="select * from dahua_demo ";
    String dml="insert into dahua_demo(id,name) values(1,'dahua') ";
    st.executeUpdate(dml);
    ResultSet rs=st.executeQuery(dql);

    while(rs.next()){
    int id=rs.getInt("id");
    String name=rs.getString("name");
    System.out.println(id+","+name);
    }
    conn.close();


    }

    //Properties就是为了读取.properties文件设计的API
    其底层就是文本文件IO;Properties本身实现了Map接口
    内部是散列表,限定了key和value都是String类型

    方法:load(流)将文件就读取为散列表, String getPropertykey()查询value

    Properties cfg=new Properties();

    //利用load方法读取文件
    InputStream in=Demo5.class.getClassLoader().
    getResourceAsStream("db.properties");
    cfg.load(in);
    System.out.println(cfg);
    System.out.println(cfg.size());
    封装连接方法
    public class DbUtils {

    //静态变量一份就够了
    static String driver;
    static String url;
    static String user;
    static String password;
    //读取文件中的数据库连接参数
    static{
    //初始化静态属性
    //利用properties读取配置文件
    //从配置文件中查找相应参数
    try {
    Properties cfg=new Properties();
    InputStream in=DbUtils.class.getClassLoader().
    getResourceAsStream("db.properties");

    cfg.load(in);
    System.out.println(cfg);
    //初始化参数
    driver=cfg.getProperty("jdbc.driver");
    url=cfg.getProperty("jdbc.url");
    user=cfg.getProperty("jdbc.user");
    password=cfg.getProperty("jdbc.password");


    } catch (IOException e) {

    e.printStackTrace();
    throw new RuntimeException(e);
    }
    }
    /**
    * 封装创建数据库连接的过程
    *
    * @return
    */

    public static Connection getConnection(){

    try {
    //注册
    Class.forName(driver);
    //创建连接
    Connection conn=DriverManager.getConnection(url, user,password);

    return conn;
    } catch (Exception e) {

    e.printStackTrace();
    throw new RuntimeException(e);
    }

    }

    }

    public class DbUtils {

    //静态变量一份就够了
    static String driver;
    static String url;
    static String user;
    static String password;
    //读取文件中的数据库连接参数
    static{
    //初始化静态属性
    //利用properties读取配置文件
    //从配置文件中查找相应参数
    try {
    Properties cfg=new Properties();
    InputStream in=DbUtils.class.getClassLoader().
    getResourceAsStream("db.properties");

    cfg.load(in);
    System.out.println(cfg);
    //初始化参数
    driver=cfg.getProperty("jdbc.driver");
    url=cfg.getProperty("jdbc.url");
    user=cfg.getProperty("jdbc.user");
    password=cfg.getProperty("jdbc.password");


    } catch (IOException e) {

    e.printStackTrace();
    throw new RuntimeException(e);
    }
    }
    /**
    * 封装创建数据库连接的过程
    *
    * @return
    */

    public static Connection getConnection(){

    try {
    //注册
    Class.forName(driver);
    //创建连接
    Connection conn=DriverManager.getConnection(url, user,password);

    return conn;
    } catch (Exception e) {

    e.printStackTrace();
    throw new RuntimeException(e);
    }

    }
    //关闭数据库连接方法 封装复杂的关闭过程
    public static void close(Connection conn){
    if(conn!=null){
    try {
    conn.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }

    }
    //正规格式
    public class Demo6 {

    public static void main(String[] args) {
    Connection conn=null;
    try {
    conn=DbUtils.getConnection();
    Statement st=conn.createStatement();
    String sql="select * from dahua_demo";
    ResultSet rs=st.executeQuery(sql);
    while(rs.next()){
    int id=rs.getInt("id");
    String name=rs.getString("name");
    System.out.println(id+","+name);
    }
    } catch (Exception e) {

    }finally {
    DbUtils.close(conn);
    }
    }

    }

    //连接池

  • 相关阅读:
    js静态成员和实例成员
    js构造函数
    js创建对象
    js演示面向对象
    JavaScript特点
    像素鸟游戏
    图片瀑布流
    微信聊天模拟
    飞机游戏动画特效
    SpringBoot 核心理论
  • 原文地址:https://www.cnblogs.com/Bighua123/p/7567354.html
Copyright © 2011-2022 走看看