• sql初——基础


    1.JDBC:

    • Java数据库连接(Java Database Connectivity,JDBC),是一种用于执行SQL语句的Java API,它由一组用Java编程语言编写的类和接口组成。
    • JDBC为数据库开发人员提供了一个标准的API,使他们能够用纯Java API来编写数据库应用程序。
    • 使用JDBC编写的程序能够自动地将SQL语句传送给相应的数据库管理系统。
    • JDBC扩展了Java的功能,由于Java语言本身的特点,使得JDBC具有简单、健壮、安全、可移植、获取方便等优势。

    2.JDBC API

    接口/类功能说明
    DriverManager 数据库驱动管理类,用于加载和卸载各种驱动程序,并建立于数据库的连接
    Connection 此接口用于连接数据库
    Statement 此接口用于执行SQL语句并将数据检索到ResultSet中
    ResultSet 结果集接口,提供检索SQL语句返回数据的各种方法
    PreparedStatement 此接口用于执行预编译的SQL语句
    CallableStatement 此接口用于执行SQL存储过程的语句

    3.JDBC结构

    1.JDBC API是Java开发工具包(JDK)的组成部份:

        JDBC驱动程序管理器

        JDBC驱动程序测试工具包

        JDBC-ODBC桥 

    2.JDBC驱动程序管理器是JDBC体系结构的支柱,其主要作用是把Java应用程序连接到正确的JDBC驱动程序上。

    3.JDBC驱动程序测试工具包为JDBC驱动程序的运行提供一定的可信度,只有通过JDBC驱动程序测试包的驱动程序才被认为是符合JDBC标准的。

    4.JDBC-ODBC桥使ODBC驱动程序可被用作JDBC驱动程序。其目标是为方便实现访问某些不常见的DBMS,它的实现为JDBC的快速发展提供了一条途径

    4.JDBC开发步骤

    使用JDBC访问数据库的基本步骤一般如下:

    • 加载JDBC驱动程序
    • 创建数据库连接
    • 创建Statement对象
    • 执行SQL语句
    • 处理返回结果
    • 关闭创建的对象

    5.有关next()

    ResultSet是您访问数据库返回的数据表,也就是结果集合,一开始是处于第一行之前,即beforeFirst,第一次使用next()就将指针指向返回结果集的第一行。每使用一次next(),指针就指向下一行,这时候你就可以使用rs.getObject()或者getInt()或者getString()之类的方法返回该行的某一个字段的值,也就是getObject()方法里面的参数可以传递索引(索引由1开始),即如果你的数据库第一列的数据叫id,那你可以用getObject("id")或者getObject(1)得到你的rs目前指着的那一条数据的该列的值。当next()成功的时候其实会返回一个布尔值true,当指针指到最后一行的后面时候,即afterLast()就返回布尔值false。 所以第一次调用next()的时候应该是指向第一行数据。next()在指针指向第一行之前到最后一行之间的返回true的,也就是当你的指针已经指向到最后一行的数据集了,再用一次next()是返回true的,但此时再用一次next()就是false,因为执政已经到最后一行的后面了(也就是afterLast).

    6.第一个程序代码:

    import java.sql.*;
    public class Four
    {
    private static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    private static String url="jdbc:sqlserver://888888-pc:1433;DatabaseName=StudentScore";
    private static String user="sa";
    private static String password="###";
    @SuppressWarnings("resource")
    public static void main(String[] args)
    {
    Connection conn=null;
    Statement stmt=null;
    ResultSet rs=null;
    try
    {
    Class.forName(driver);
    conn=DriverManager.getConnection(url,user,password);
    //stmt=conn.createStatement();

    /* stmt.executeUpdate("CREATE DATABASE HEO");//创建数据库
    stmt.close();
    conn.close();
    */
    url="jdbc:sqlserver://888888-pc:1433;DatabaseName=HELLO";
    conn=DriverManager.getConnection(url,user,password);
    stmt=conn.createStatement();//打开数据库
    DatabaseMetaData meta=conn.getMetaData();//判断表是否存在
    ResultSet set=meta.getTables(null, null, "test", null);
    if(!set.next())//不存在就创建表
    {
    stmt.executeUpdate("CREATE TABLE test (sNo CHAR(20) NOT NULL PRIMARY KEY,sName char(20),sex CHAR(2) NOT NULL)");
    }
    // stmt.executeUpdate("INSERT INTO test(sNo,sName,sex) VALUES('2018','hi','男')");
    //stmt.executeUpdate("INSERT INTO test(sNo,sName,sex) VALUES('2017','cs','女')");//插入数据
    rs=stmt.executeQuery("SELECT *from test WHERE sName='sc'");//进行挑选
    while(rs.next())
    {
    String no=rs.getString("sNo");
    String name=rs.getString("sName");
    String sex=rs.getString("sex");
    System.out.println(no+" "+name+" "+sex+" ");
    }
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    finally
    {
    try
    {
    if(rs!=null) rs.close();
    if(stmt!=null) stmt.close();
    if(conn!=null) conn.close();
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    }
    }
    }

  • 相关阅读:
    网络通信与面向对象:对象化抽象、机制抽象、组合
    类、闭包、monand
    类型是数据的抽象
    投资的本质在控制贪婪
    bootstrap模态框modal使用remote动态加载内容,第二次加载显示相同内容解决办法
    bootstrap模态框关闭后清除模态框的数据
    Ajax发送请求等待时弹出模态框等待提示
    php foreach跳出本次/当前循环与终止循环方法
    PHP二维数组(或任意维数组)转换成一维数组的方法汇总(实用)
    bootstrap模态框动态赋值, ajax异步请求数据后给id为queryInfo的模态框赋值并弹出模态框(JS)
  • 原文地址:https://www.cnblogs.com/mm20/p/7860511.html
Copyright © 2020-2023  润新知