• JDBC编程步骤



                         
     

     

    提示:jdbc是为Hibernate做铺垫的;

     

    4 .JDBC编程步骤:

    注册加载JDBC驱动程序;

    注册加载驱动driver,也就是强制类加载:

    其注册加载JDBC驱动有三种方法:

    方法一:Class.forName(DriverName) 其中DriverName=Driver包名。Driver类名;

    Oracle的DriverName=oracle.jdbc.driver.OracleDriver“;

    MySql的DriverName=com.mysql.jdbc.Driver“;

    SQLServer的DriverName=com.microsoft.jdbc.sqlserver.SQLServerDriver“;

    方法二:Class.forName(DriverName).newInstance()

    方法三:直接创建一个驱动对象:new oracle.jdbc.driver.OracleDriver()

     

    建立与数据库的连接(connection);

    Connection con=DriverManager.getConnection(String URL, String username, String  password);

    Connection连接是通过DriverManager的静态方法getConnection..)来得到的,这个方法的实质是把参数传到实际的Driver中的connection()方法中来获得数据库连接的。

    数据库中的URL值是由连接数据库的协议和数据库的ip地址及端口号还有要连接的数据库的库名DatabaseName)即

    1 Oracle  URL格式为:

    jdbc:oraclethin(协议)@xxx。Xxx。xxxxxxxxxip地址及端口号):xxx(所使用的数据库名字)

    例:jdbc:oracle:thin:@localhost:1521:ambow

    2)MySql URL的写法:

    例:jdbc:mysql// localhost:3306 / 数据库名;

    3)SqlServer的写法:

    例:jdbc:microsoft:sqlserver://localhost:1433/数据库名

     

    java -Djdbc.drivers=驱动的完整类名

    使用虚拟机参数,加载驱动 -D表示为虚拟机参数赋值

    java -Djdbc.drivers=oracle.jdbc.driver.OracleDriver:com.mysql.jdbc.Driver

    创建一个statementpreparedStatement(发送sql请求);

    Statement stm=con.createStatement();

    PreparedStatement  pstm=con.prepareStatement(sql);

    执行sql语句;

    ResultSet rs=stm.executeQuery(sql);

    ResultSet rs=pstm.executeQuery();

    遍历获取处理结果集(只对查询语句select

    Whle(rs.next(){

    System.out.print(rs.getString("列名1") + " ");

    System.out.print(rs.getString("列名1") + " ");

    System.out.println(rs.getString("列名3"));

    }

    ResultSet中的next()方法:

    1. 判断是否存在下一条记录

    2. 将游标移向下一条记录

    Getxxx(字段名或字段序号)//注意:字段序号从1开始。

    l 关闭statement,resutltset,Connection语句;

    使用Connection对象获得一个StatementStatement中的executeQuery(String sql)方法可以使用select语句查询,并且返回一个结果集ResutltSet通过遍历这个结果集,可以获得select语句的查询结果,ResultSetnext()方法会操作一个游标从第一条记录的前边开始读取,直到最后一条记录。executeUpdate(String sql)方法用于执行DDLDML语句,可以updatedeleteinsert操作。

    注意:关闭操作必须执行,因为这些资源是不会自动释放的,必须要自己关闭。要按先ResultSet结果集,后statement或preparedStatement,最后Connection的顺序关闭资源,因为statement和ResultSet是需要连接时才可以使用的,所以在使用结束之后有可能其他的Statement还需要连接,所有不能先关闭Connection。

    其整个步骤代码如下:

    package com.ambow.day19.jdbc;
    
     
    
    import java.sql.Connection;
    
    import java.sql.DriverManager;
    
    import java.sql.ResultSet;
    
    import java.sql.SQLException;
    
    import java.sql.Statement;
    
     
    
    /*
    
     * JDBC编写五大步骤:
    
     * 说明:在main方法后不声明可能要抛出的异常,而在代码中用try....catch....来交给异常类来捕获处理。
    
     * 若是直接声明异常将由JVM来处理,这样,JVM资源将会被逐渐用完,这样JVM的运行速度会越来越慢。
    
     * 缺点:当我们将JDBC与数据库连接时都要重复写连接数据库和关闭数据库的代码,而这些代码是不需要改动的。
    
     * 这样比较麻烦。
    
     * 优化方法:将连接数据库连接和关闭数据库的代码封装到另一个类中;参见类JDBCTest2.java和JDBCConAndClo.java;
    
     */
    
    public class JDBCTest1 {
    
    public static void main(String args[]) {
    
    Connection con = null;
    
    Statement stm = null;
    
    ResultSet rs = null;
    
    String URL = "jdbc:oracle:thin:@localhost:1521:ambow";
    
    String user = "system";
    
    String password = "wqq123";
    
    try {
    
    // 1.注册并加载JDBC驱动程序:有三种方法:
    
    //方法一:
    
    Class.forName("oracle.jdbc.driver.OracleDriver");
    
     
    
    //方法二:
    
    //Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    
     
    
    //方法三:直接建一个驱动对象:
    
    //new oracle.jdbc.driver.OracleDriver();
    
     
    
    // 2.建立与数据库的连接:
    
    con = DriverManager.getConnection(URL, user, password);
    
     
    
    // 判断是否连接成功
    
    if (!con.isClosed()) {
    
    System.out.println("数据库连接成功。");
    
    } else {
    
    System.out.println("数据库连接失败。");
    
    }
    
    // 3.执行sql语句:
    
    String sql = "select * from s_dept";
    
    // 创建一个statement(发送sql)
    
    stm = con.createStatement();
    
    // 执行查询sql语句
    
    rs = stm.executeQuery(sql);
    
    // 4.获取sql结果集:
    
    while (rs.next()) {
    
    // 将数据库各个字段名类型转换为java中类型(getXXX方法)
    
    System.out.print(rs.getString("id") + " ");
    
    System.out.print(rs.getString("name") + " ");
    
    System.out.println(rs.getString("region_id"));
    
    }
    
     
    
    } catch (ClassNotFoundException e) {
    
    e.printStackTrace();
    
    } catch (SQLException e) {
    
    e.printStackTrace();
    
    }finally {
    
    // 5.关闭数据库(规则:顺着进,倒着关),释放资源:
    
    try {
    
    if (rs != null) {
    
    rs.close();
    
    rs = null;
    
    }
    
    if (stm != null) {
    
    stm.close();
    
    stm = null;
    
    }
    
    if (con != null) {
    
    con.close();
    
    con = null;
    
    }
    
    } catch (SQLException e) {
    
    e.printStackTrace();
    
    }
    
    }
    
    }
    
    }

    注意:但我们通常将对数据库的连接和关闭操作专门封装在另一个包中,在对数据库的操作中会直接调用这个封装类。

     

  • 相关阅读:
    jsp、js分页功能的简单总结
    jsp实现验证码
    JSP内置对象总结
    java集合类总结二
    工程一:记事本的实现
    学编程上这些网站就够了
    一位程序员和他的程序员老婆分手了,原因竟是…
    培训机构出来的程序员为何不受企业待见?
    在w3cschool学完html,css,javascript,jquery以后,还是不会做前端怎么办?
    我只是个写代码的(幽默一下)
  • 原文地址:https://www.cnblogs.com/duscl/p/4872556.html
Copyright © 2020-2023  润新知