JDBC 笔记(一)jdbc: 概述、获取数据库连接的5中方式

1、JDBC 的概述

1.1 jdbc 是什么

JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,(java.sql,javax.sql)使用这个类库可以以一种标准的方法、方便地访问数据库资源

  • JDBC为访问不同的数据库提供了一种统一的途径,为开发者屏蔽了一些细节问题。
  • JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。

1.2 jdbc 与 数据库的连接方式:

                  

规范化的jdbc 连接数据库方式:

              

1.3 JDBC 体系结构

JDBC接口(API)包括两个层次:

  •  面向应用的API:Java API,抽象接口,供应用程序开发人员使用(连接数据库,执行SQL语句,获得结果)。
  •  面向数据库的API:Java Driver API,供开发商开发数据库驱动程序用。

JDBC是sun公司提供一套用于数据库操作的接口,java程序员只需要面向这套接口编程即可。不同的数据库厂商,需要针对这套接口,提供不同实现。不同的实现的集合,即为不同数据库的驱动。————面向接口编程

1.4 JDBC API

JDBC API 是一系列的接口,它使得应用程序能够进行数据库联接,执行SQL语句,并且得到返回结果。

        

2、获取数据库连接

2.1 连接参数与协议

(1)可以调用 DriverManager 类的 getConnection() 方法建立到数据库的连接

(2)User,password可以用“属性名=属性值”方式告诉数据库;

(3)JDBC URL 用于标识一个被注册的驱动程序,驱动程序管理器通过这个 URL 选择正确的驱动程序,从而建立到数据库的连接。

(4)JDBC URL的标准由三部分组成,各部分间用冒号分隔。

  • jdbc:子协议:子名称
  • 协议:JDBC URL中的协议总是jdbc
  • 子协议:子协议用于标识一个数据库驱动程序
  • 子名称:一种标识数据库的方法。子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息。包含主机名(对应服务端的ip地址),端口号,数据库名

2.2 几种常用数据库的JDBC URL

              

        

3、JDBC连接数据库的5中方式

注意:

  1. 安装数据库 - 服务必须开启
  2. 需要导入数据库的驱动

连接数据库的五种方式

代码:

3.1 方式1 :

        /*
	 * 数据库的连接:
	 * 1.必须保证数据库是安装好的,服务是启动的
	 * 2.必须将驱动添加到项目中
	 * 3.必须保证数据库的账号和密码是对的
	 * 4.必须保证数据库的版本和驱动的一样。
	 */
	/*
	 * 连接方式一  :通过多态的方式获取连接驱动
	 */
	@Test
	public void test() throws Exception{
		//多态 : 左边是接口的类型,右边是接口的实现
		Driver driver = new com.mysql.jdbc.Driver();
		//数据库连接的url
		String url = "jdbc:mysql://localhost:3306/test";
		//设置数据库的账号和密码
		Properties info = new Properties();
		info.setProperty("user", "root");
		info.setProperty("password", "root");
		//数据库的连接
		Connection connect = driver.connect(url, info);
		
		System.out.println(connect);
	}

3.2 方式2   :通过反射获取对象

        /*
	 * 连接方式二:通过反射获取对象
	 * 体会面向接口的编程思想
	 */
	@Test
	public void test2() throws Exception{
		Class clazz = Class.forName("com.mysql.jdbc.Driver");
		Object obj = clazz.newInstance();
		//多态 : 左边是接口的类型,右边是接口的实现
		Driver driver = (Driver) obj;
		//数据库连接的url
		String url = "jdbc:mysql://localhost:3306/test";
		//设置数据库的账号和密码
		Properties info = new Properties();
		info.setProperty("user", "root");
		info.setProperty("password", "root");
		//数据库的连接
		Connection connect = driver.connect(url, info);
		
		System.out.println(connect);
	}

3.3 方式3 : 通过DriverMananger获取数据库的连接

        /*
	 * 连接方式三:通过DriverMananger获取数据库的连接
	 * 
	 * 使用DriverMananger有两个操作
	 * 1.注册驱动
	 * 2.获取连接
	 * 
	 * 
	 */
	@Test
	public void test3() throws Exception{
		Class clazz = Class.forName("com.mysql.jdbc.Driver");
		Object obj = clazz.newInstance();
		//多态 : 左边是接口的类型,右边是接口的实现
		Driver driver = (Driver) obj;
		//数据库连接的url
		String url = "jdbc:mysql://localhost:3306/test";
		String user = "root";
		String password = "root";
		/*
		 * mysql可以不用注册,其它的数据库必须进行注册
		 * 这一步不要省。
		 */
		//注册驱动
		DriverManager.registerDriver(driver);
		//数据库的连接
		Connection connection = DriverManager.getConnection(url, user, password);
		
		System.out.println(connection);
	}

3.4 方式4 : mysql驱动默认会进行驱动的注册

        /*
	 * 连接方式四:mysql驱动默认会进行驱动的注册
	 * 
	 */
	@Test
	public void test4() throws Exception{
		
		//数据库连接的url
		String url = "jdbc:mysql://localhost:3306/test";
		String user = "root";
		String password = "root";
		/*
		 * mysql可以不用注册,其它的数据库必须进行注册
		 * 这一步不要省。
		 */
		Class clazz = Class.forName("com.mysql.jdbc.Driver");
		//数据库的连接
		Connection connection = DriverManager.getConnection(url, user, password);
		
		System.out.println(connection);
	}

3.5 方式5 : 使用配置文件获取数据库的连接

        /*
	 * 方式五:使用配置文件获取数据库的连接
	 */
	@Test
	public void test5() throws Exception{
		//读取配置文件中的内容
		/*
		 * 实际上是从bin目录下读取的配置文件
		 */
		InputStream is = this.getClass().getClassLoader()
				.getResourceAsStream("sqlDriver.properties");
		Properties ps = new Properties();
		ps.load(is);
		String user = ps.getProperty("user");
		String password = ps.getProperty("password");
		String driverClass = ps.getProperty("driverClass");
		String url = ps.getProperty("url");
		is.close();
		
//		创建Driver对象
		Class clazz = Class.forName(driverClass);
		Object obj = clazz.newInstance();
		Driver driver = (Driver) obj;
		
		//注册驱动
		DriverManager.registerDriver(driver);
		
		//数据库的连接
		Connection connection = DriverManager.getConnection(url, user, password);
		
		System.out.println(connection);
	}
发布了222 篇原创文章 · 获赞 60 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_42405670/article/details/103926686