JDBC学习之获得连接

JDBC学习之取得连接

一、JDBC

 

 JDBC(Java Database Connectivity)是SUN公司为了简化和统一对数据库的操作而制定的一种规范,提供了一套完整的与具体数据库无关操作数据库的接口,允许用户操作底层数据库。

 

二、JDBC架构

 

JDBC学习之获得连接

三、Java应用通过JDBC连接数据库(以Mysql为例)

 

         1、首先要将JDBC驱动程序加载到内存中

 

                  Java api中提供了一个DriverManager类可以加载驱动程序。

                  通过DriverManager.registerDriver(Driver driver)即可加载驱动,

   但该方法不建议使用,其原因如下:

 

                          <1>、该方式加载驱动会导致驱动被注册两次,内存中会产生两个

                                         Driver对象

   <2>、程序依赖于具体数据库的api,替换底层数据库较麻烦

 

                    另一种方式是通过Class.forName("com.mysql.jdbc.Driver"),该种

              方式只在内存中产生一个驱动对象,而传入的参数也仅依赖一个字符串

                     程序的灵活性更高。

 

       2、取得一个数据库的连接对象(Connection)

 

                 通过DriverManager.getConnection(String url,String

            username,String password)方法可获得一个数据库连接对象.

 

  url--------->>数据库URL连接地址(url用于标识数据库的位置,即程

                                                  序要连接的数据库,url的写法:

  jdbc:mysql:[]//localhost:3306/mydb?

                                  paramName=paramValue)

 

<1>、jdbc:----->协议

 

                                        <2>、mysql:[] ---->自协议

 

<3>、localhost:3306---->主机:端口号

 

<4>、mydb---->数据库

 

  <5>、可将username和password添加到url地址中,然后调

                                    用DriverManager.getConnection(String url)方法

                                    取得一个Connection对象,此时的url写法为:

 

                                                      jdbc:mysql://localhost:3306/mydb?

      username="admin"&password="123"

     

 

                  username------>>数据库用户名

 

                 password--------->>数据库连接密码

 

       3、取得一个数据库操作对象(Statement)

 

                  通过Connection对象的实例调用createStatement()取得一个数据库

                  操作对象。

 

          4、通过Statement接口中提供的方法向数据库发送Sql语句

 

                   executeQuery(String sql)方法用于向数据库发送DQL语句

 

                   executeUpdate(String sql)方法用于向数据库发送DML语句

 

            5、释放数据库资源

 

              完成各种操作后要将数据库资源释放,即Connection、Statement、

      ResultSet等关闭

 

        通过Java程序连接mysql数据库,取得一个数据库连接对象:

 

 

package com.itheima.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;

/**
 * 此类用于取得一个数据库连接
 * 
 * @author dongjiejun
 * 
 */
public class JDBCDemo01 {
	/**
	 * 该变量表示数据库驱动
	 */
	private static final String DBDRIVER = "com.mysql.jdbc.Driver";

	/**
	 * 该变量表示数据库的URL地址
	 */
	private static final String DBURL = "jdbc:mysql://localhost:3306/mydb";

	/**
	 * 该变量表示数据库的用户名
	 */
	private static final String DBUSER = "root";

	/**
	 * 该变量表示数据库的连接密码
	 */
	private static final String DBPASS = "admin";

	public static void main(String[] args) throws Exception {
		// 加载数据库驱动程序
		Class.forName(DBDRIVER);

		// 取得数据库连接
		Connection conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);

		System.out.println(conn);
		if (conn != null) {
			conn.close();
		}
	}
}
 

    输出结果:com.mysql.jdbc.Connection@10b9d04