zoukankan      html  css  js  c++  java
  • Java-JDBC(1)

    一,

    1.jdbc概述:jdbc是一种用来执行sql语句的java api,可以为多种关系数据库提供同意访问,是由一组用Java代码写的类和接口组成,是java访问数据库的标准规范

    2.jdbc原理:Java提供访问数据库孤帆称为jdbc,而生产厂商提供方规范的实现类成为驱动

    jdbc是接口,驱动是接口的实现,没有驱动将无法完成数据库连接,从而不能操作数据库

    3.jdbc开发步骤:

    (1),注册驱动:告知jvm使用的是哪一个数据库的驱动

    (2),获得链接:使用JDBC中的类,完成对MySQL数据库的连接

    (3),获得语句执行平台:通过连接对象获取对SQL语句的执行者对象

    (4),执行sql语句:使用执行者对象,向数据库执行SQL语句,获得到数据库的执行后的结果

    (5),处理结果

    (6),释放资源

    4.导入驱动jar包

    创建lib目录,用于存放当前项目需要的所有jar包,选择jar包,右键执行build path / Add to Build Path

    5.注册驱动:

    代码:Class.forName("com.mysql.jdbc.Driver");

    jdbc规范定义驱动接口:java.sql.Driver,mysql驱动包提供了实现类:com.mysql.jdbc.Driver DriverManager工具类,提供注册驱动的方法registerDriver(),方法的参数是java.sql.Driver,所以可以通过下面的代码进行注册:

    DriverManager.registerDriver(new com.mysql.jdbc.Driver());

    但是由于上面的代码存在:硬编码,后期不宜与程序扩展维护和驱动被注册两次的不足,所以不推荐使用

    通常开发使用Class.forName()加载一个使用字符串描述的驱动类,如果使用Class.forName()将类加载到内存,该类的静态代码将自动执行,通过查询com.mysql.jdbc.Driver源码,我们发现Driver类主动将自己注册

    public class Driver extends NonRegisteringDriver implements java.sql.Driver {
        static {
            try {
                java.sql.DriverManager.registerDriver(new Driver());
            } catch (SQLException E) {
                throw new RuntimeException("Can't register driver!");
            }
        }
    ……
    }

    6.获得连接:

    Connection con = DriverManager.getConnection(“jdbc:mysql://localhost:3306/mydb”,”root”,”root”);

    获取连接需要方法 DriverManager.getConnection(url,username,password),三个参数分别表示,url 需要连接数据库的位置(网址) user用户名  password 密码

    url比较复杂,下面是mysqlurl

    jdbc:mysql://localhost:3306/mydb
    JDBC规定url的格式由三部分组成,每个部分中间使用冒号分隔。
       第一部分是jdbc,这是固定的;
       第二部分是数据库名称,那么连接mysql数据库,第二部分当然是mysql了;
       第三部分是由数据库厂商规定的,我们需要了解每个数据库厂商的要求,mysql的第三部分
    分别由数据库服务器的IP地址(localhost)、端口号(
    3306),以及DATABASE名称(mydb)组成。

    7.获得语句执行平台:

    String sql = "某SQL语句";
    获取Statement语句执行平台:Statement stmt = con.createStatement();

    常用方法:

    1.int executeUpdate(String sql); --执行insert update delete语句.
    2.ResultSet executeQuery(String sql); --执行select语句.
    3.boolean execute(String sql); --执行select返回true 执行其他的语句返回false.

    8.处理结果集(执行insert,update,delete无需处理)

    ResultSet实际上就是一张二维的表格,我们可以调用其boolean next()方法指向某行记录,当第一次调用next()方法时,便指向第一行记录的位置,这时就可以使用ResultSet提供的getXXX(int col)方法(与索引从0开始不同个,列从1开始)来获取指定列的数据:

    rs.next();//指向第一行
    rs.getInt(1);//获取第一行第一列的数据

    常用方法:

    1.Object getObject(int index) / Object getObject(String name) 获得任意对象
    2.String getString(int index) / Object getObject(String name) 获得字符串
    3.int getInt(int index) / Object getObject(String name) 获得整形
    4.double getDouble(int index) / Object getObject(String name) 获得双精度浮点型

    9.释放资源:

    rs.close();
    stmt.close();
    con.close();
  • 相关阅读:
    货币系统
    纸牌
    活动
    KKT-黑白球
    POJ2676-Sudoku
    POJ1717-Dominoes
    POJ1088-滑雪
    POJ1862-Stripies
    POJ2531-Network Saboteur
    2019.12.13 数的划分
  • 原文地址:https://www.cnblogs.com/mr171733/p/9968261.html
Copyright © 2011-2022 走看看