一、数据库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提供了接口但是没有实现,数据库供应商也没有实现。
八 数据源
数据源是一种提高数据库连接新能的手段,数据源会负责维持一个数据连接池。当程序创建数据源时,系统会一次性创建多个数据库连接,并把这些数据库连接保持在数据库连接池中。
网友评论