JDBC

一、数据库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)