JDBC学习笔记及连接数据库的实现过程
2016-12-25 11:21
781 查看
一、JDBC基础
1、持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程是通过各种关系数据库来完成。2、持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。
3、在Java中,数据库存取技术可分为如下几类:
//JDBC直接访问数据库
//JDO技术
//第三方O/R工具,如Hibernate, ibatis 等(这些的底层仍然是JDBC,更好的封装了JDBC)
说明:JDBC是java访问数据库的基石,JDO, Hibernate等只是更好的封装了JDBC。
4、JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源
5、JDBC是面向接口的编程,为访问不同的数据库提供了一种统一的途径,为开发者屏蔽了一些细节问题。
6、JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,从而简化和加快了开发过程。
7、JDBC接口(API)包括两个层次:
面向应用的API:Java API,抽象接口,供应用程序开发人员使用(连接数据库,执行SQL语句,获得结果)。
面向数据库的API:Java Driver API,供开发商开发数据库驱动程序用。
8、JDBC驱动程序:各个数据库厂商根据JDBC的规范制作的 JDBC 实现类的类库 ,JDBC驱动程序总共有四种类型:
第一类:JDBC-ODBC桥。
第二类:部分本地API部分Java的驱动程序。
第三类:JDBC网络纯Java驱动程序。
第四类:本地协议的纯 Java 驱动程序。
说明:第三、四两类都是纯Java的驱动程序,因此,对于Java开发者来说,它们在性能、可移植性、功能等方面都有优势。
9、Driver 接口
java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现
在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实现
10、可以调用 DriverManager 类的 getConnection() 方法建立到数据库的连接
11、JDBC URL 用于标识一个被注册的驱动程序,驱动程序管理器通过这个 URL 选择正确的驱动程序,从而建立到数据库的连接。
12、JDBC URL的标准由三部分组成,各部分间用冒号分隔。
jdbc:<子协议>:<子名称>
协议:JDBC URL中的协议总是jdbc
子协议:子协议用于标识一个数据库驱动程序
子名称:一种标识数据库的方法。子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息
url - the URL of the database to which to connect
info - a list of arbitrary string tag/value pairs as connection arguments. Normally at least a "user" and "password" property should be included.
二、JDBC连接数据库的实例:
1、Driver实现类方式
/** * Driver是每一个驱动实现的接口:数据库厂商必须提供的接口 * 能从其中获取数据库连接。 * 1、加入mysql驱动 * 1)解压mysql-connector-java-5.1.7.zip * 2)在当前项目下新建lib文件 * 3)将解压后的mysql-connector-java-5.1.7-bin.jar赋值到lib文件下 * 4)右键build-path,add to build path加入到类路径下 * @throws SQLException * */ @Test public void testDriver() throws SQLException { //1、创建一个Driver实现类的接口 Driver driver = new com.mysql.jdbc.Driver(); //2、准备连接数据库的基本信息:url,user,password //Url的格式:jdbc:<子协议>:<子名称> //jdbc是连接数据库的固定协议 //子协议:子协议用于标识一个数据库驱动程序(例如:mysql,microsoft:sqlserver,oracle) //子名称:一种标识数据库的方法 //后边的test是数据库的名称 String url = "jdbc:mysql://localhost:3306/test"; Properties info = new Properties(); info.put("user", "root"); info.put("password", "123"); System.out.println("111"); //3、调用Driver接口的connect(url,info)获取数据库连接 Connection connection = driver.connect(url, info); System.out.println(connection); }
2、Driver实现类读取配置文件的方式
/** * 通用方法,在不修改源程序的情况下,获取任何数据库的连接。 * 解决方案:把数据库驱动Driver实现类的全类名、url,user,passwor放入 * 配置文件中,通过修改配置文件的方式实现和具体的数据库解耦。 * @throws Exception * @throws IllegalAccessException * @throws InstantiationException * * */ public Connection getConnection() throws Exception{ String driverClass = null; String jdbcUrl = null; String user = null; String password = null; //读取类路径下的jdbc.properties文件 InputStream in = getClass().getClassLoader().getResourceAsStream("jdbc_chz/jdbc.properties"); Properties properties = new Properties(); properties.load(in); driverClass = properties.getProperty("driver"); jdbcUrl = properties.getProperty("jdbcUrl"); user = properties.getProperty("user"); password = properties.getProperty("password"); //通过反射Driver对象 Driver driver = (Driver) Class.forName(driverClass).newInstance(); Properties info = new Properties(); info.put("user", user); info.put("password", password); //通过Connection获取Driver的连接。 Connection connection = driver.connect(jdbcUrl, info); return connection; } @Test public void testGetConnection() throws Exception{ System.out.println(getConnection()); }
3、DriverManager类实现的一般方法
/** * DriverManager 是驱动的管理类一般实现方法 * 1)可以通过重载的getConnection()方法来获取数据库连接 * 2)可以同时管理多个驱动程序:若注册二轮多个数据库连接,则调用getConnection()方法时传入不同的参数,返回连接不同的数据库 * */ @Test public void testDriverManager1() throws Exception{ //1、准备连接数据库的字符串,驱动的全类名driverClass,url,user,password String driverClass = "com.mysql.jdbc.Driver"; String jdbcUrl = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123"; //2、加载数据库驱动程序(注册驱动) DriverManager.registerDriver((Driver) Class.forName(driverClass).newInstance()); Class.forName(driverClass); //3、通过国DriverManager的getConnection()方法获取数据库的连接 Connection connection = DriverManager.getConnection(jdbcUrl, user, password); System.out.println(connection); }
4、DriverManager类实现读取配置文件的方法
@Test public void testGetDriverManager2() throws Exception{ System.out.println(getConnection()); } public Connection testDriverManager2() throws Exception{ //1.准备连接数据库的字符串 //1.1创建Properties对象 Properties p = new Properties(); //1.2获取jdbc.properties对应的输入流 InputStream in = this.getClass().getClassLoader().getResourceAsStream("jdbc_chz/jdbc.properties"); //1.3加载输入流 p.load(in); //1.4具体定义user,password等字符串 String user = p.getProperty("user"); String password = p.getProperty("password"); String jdbcUrl = p.getProperty("jdbcUrl"); String driver = p.getProperty("driver"); //2.加载数据库驱动程序(对应的Driver实现类中有注册驱动的静态代码块) Class.forName(driver); //3.通过DriverManager的getConnection()方法获取数据库连接 return DriverManager.getConnection(jdbcUrl, user, password); }说明:建议还是选择DriverManager类实现读取配置文件的方式比较通用。
符:
1、需要的配置文件的jdbc.properteis文件的内容如下
driver=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/test user=root password=123
2、jdbc.properties文件的存放位置
3、mysql-connector-java-5.1.7-bin.jar
在使用mysql时,要添加mysql的一个.jar文件,先建立一个lib文件夹,然后将该.jar文件复制到lib文件夹下,如上图中“突出”表示的文件“mysql-connector-java-5.1.7-bin.jar"。相关文章推荐
- 【J2EE核心开发学习笔记 010】struts2的搭建及连接数据库实现用户注册与登录
- JDBC 学习笔记(四)—— JDBC 加载数据库驱动,获取数据库连接
- MySQL存储过程和触发器的实现--数据库学习笔记
- 学习笔记:jdbc连接、操作数据库SQL Server 2008 ——MyEclipse web示例
- java学习笔记之jdbc连接数据库
- 【数据库学习笔记】(2)JDBC加载并注册数据库驱动并连接数据库
- Java学习笔记——JDBC之与数据库MySQL的连接以及增删改查等操作
- 【Java学习-J.160430.0.15】笔记8-使用JDBC连接数据库
- JAVA 利用JDBC连接MYSQL数据库以及增删改查的实现【学习笔记】
- 学习笔记:jdbc连接、操作数据库SQL Server 2008
- 学习笔记_JDBC_1_Demo1_连接数据库的基本操作和步骤
- [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现
- JAVA学习笔记4——JDBC方式连接数据库
- 学习笔记_JDBC_1_Demo1_连接数据库的基本操作和步骤
- 学习笔记:jdbc连接、操作数据库SQL Server 2008(二)
- [学习笔记]JDBC连接数据库
- Java 实现连接sql server 2000(JDBC数据库访问例子)
- JDBC连接数据库过程
- C#学习笔记——(连接数据库)
- IBatis连接数据库学习笔记