JDBC

作者: 啥也不说了 | 来源:发表于2017-05-18 14:50 被阅读25次

    一、数据库URL

    数据url模式为:jdbc:subprotocol:other stuff
    其中子协议用于连接到数据库的具体驱动程序;其他信息和数据库相关。例如
    jdbc:mysql://localhost:3306/coreJava

    二、驱动程序

    通过使用驱动程序,就可以开发符合Java规范的代码;驱动由数据库厂商提供,他们就可以根据自己的厂商进行有话

    三、注册驱动器类

    某些jdbc的jar文件会自动注册驱动器类,可以通过加压jia包,查看是否包含META-INF/services/java.sql.Driver文件既可以自动注册。Mysql是自动注册的。
    如果不支持,则需要找到数据库厂商提供的jdbc驱动器类名称,通过DriverManager用两种方法来注册驱动器类。
    -1 Class.forName("org.mysql.Driver")
    -2 使用命令行来注册 java -Djdbc.drivers=org.mysql.Driver

    四、连接到数据库

    String url = "jdbc:mysql://localhost:3306/test";
    String userName="root";
    String password = "111111";
    Connection conn = DriverManager.getConnection(url,username,password);
    

    驱动管理器遍历所有注册过的驱动程序,以便找到一个能够使用数据库Url中指定协议的驱动程序。

    五 执行sql语句

    执行sql语句之前,需要先创建一个statement对象。
    Statement stat = conn.createStatement();
    stat.executeUpdate(command);

    六、管理连接、语句和结果集

    每个Connection对象都可以创建一个或多个Statement对象。同一个Statement对象可以用于多个不相关的命令和查询。但是一个Statement对象最多只能有一个打开的结果集。
    至少有一种常用的数据库(Sql server)的驱动程序只允许同时存在一个活动的Statement对象。可以通过

    DatabaseMetaData databaseMetaData = connection.getMetaData();
                //有些数据库只允许同时存在一个活动的statement对象,例如sql server。返回0表示没有限制或者限制不知道
                int maxConnections = databaseMetaData.getMaxStatements();
    

    来查询。
    使用完ResultSet、Statement、Connection之后应该立马关闭,因为占用了交大的数据结构和数据库的资源。

    七、预备语句

    当数据库执行一个查询时,他总是先通过计算确定查询策略,以便高效的执行查询操作。通过事先准备,并多次重用它,我们就可以确保查询所需的准备步骤只被执行一次。

    实际应用中的连接管理

    在企业环境中,集中管理用户名、密码、数据库名和jdbc url。所以使用下面的代码来创建数据库连接

    Context jndiContext = new InitialContext();
    DataSource source = (DateaSource jndiContext.lookup("文件路径");
    Connection conn = source.getConnection();
    

    数据源就是一个能够提供简单的数据连接和更多高级服务的接口。
    数据库连接池,jdbc提供了接口但是没有实现,数据库供应商也没有实现。

    八 数据源

    数据源是一种提高数据库连接新能的手段,数据源会负责维持一个数据连接池。当程序创建数据源时,系统会一次性创建多个数据库连接,并把这些数据库连接保持在数据库连接池中。

    相关文章

      网友评论

          本文标题:JDBC

          本文链接:https://www.haomeiwen.com/subject/wvwlxxtx.html