详解JDBC的概念及获取数据库连接的5种方式

2023-05-16 0 733

目录

一、JDBC概念

Java DataBase Connectivity(Java数据库连接技术它是将Java与SQL结合且独立于特定的数据库系统的应用程序编程接口(API-它是一种可用于执行SQL语句的JavaAPI,即由一组用Java语言编写的类与接口所组成)

JDBC的设计目的:

它是一种规范,设计出来的主要目的是为了让各个数据库开发商为Java程序员提供标准的数据访问类和接口,使得独立于DBMS的Java应用程序的开发成为可能(数据库改变,驱动程序跟着改变,但是应用程序不变) Java设计规范接口,各大数据库产商遵守规范实现,Java程序员不需要考虑实现细节,只需要调用API即可

JDBC工作的基本流程:

一个基本的JDBC工作流程,分为以下几步:

1、加载特定数据库驱动器实现类,并注册驱动器(Driver会注册到DriverManager中)

2、根据特定的URL,返回可以接受此URL的数据库驱动对象Driver

3、使用数据库驱动 Driver 创建数据库连接Connection会话

4、使用 Connection对象创建 用于操作sql的Statement对象

5、statement对象 .执行 sql语句,返回结果ResultSet 对象

6、处理ResultSet中的结果

7、关闭连接,释放资源

二、JDBC获取数据库连接的5种方式

方式一

public class ConnectionTest {
    @Test
    public void testConnection1() throws SQLException {
        //获取Driver实现类对象
        Driver driver = new com.mysql.jdbc.Driver();
        //jdbc:mysql: 协议
        //localhost ip地址
        //3306 MySQL数据库默认端口号
        //test 需要连接的数据库名称
        String url = \"jdbc:mysql://localhost:3306/test\";
        Properties info = new Properties();
        //设置连接的用户名和名称,user和password是固定的写法
        info.setProperty(\"user\",\"root\");
        info.setProperty(\"passwor\",\"root\");
 
        Connection connect = driver.connect(url, info);
 
        System.out.println(connect);
    }
}

方式二

public class ConnectionTest {
    @Test
    public void testConnection2() throws Exception {
        //1.使用反射获取Driver实现类对象
        Class<?> clazz = Class.forName(\"com.mysql.jdbc.Driver\");
        Driver driver = (Driver) clazz.newInstance();
        //2.提供需要连接的数据库
        String url = \"jdbc:mysql://localhost:3306/test\";
        //3.提供连接需要的用户和密码
        Properties info = new Properties();
        info.setProperty(\"user\",\"root\");
        info.setProperty(\"password\",\"lxq\");
        //获取链接
        Connection connect = driver.connect(url, info);
 
        System.out.println(connect);
    }
}

方式二是方式一的迭代,与方式一相比没有出现第三方的API,有较好的移植性

方式三

public class ConnectionTest {
    @Test
    public void testConnection3() throws Exception {
        //1.使用反射获取Driver实现类对象
        Class<?> clazz = Class.forName(\"com.mysql.jdbc.Driver\");
        Driver driver = (Driver) clazz.newInstance();
 
        //2.提供需要连接的数据库
        String url = \"jdbc:mysql://localhost:3306/test\";
        //3.提供连接需要的用户和密码
        String user = \"root\";
        String passwor = \"root\";
        //4.注册驱动
        DriverManager.registerDriver(driver);
        //5.获取连接
        Connection connection = DriverManager.getConnection(url, user, passwor);
 
        System.out.println(connection);
    }
}

使用DriverManager(驱动管理器)替换Driver,DriverManager是jdk提供的一个类,用来完成获取连接的操作

方式四

public class ConnectionTest {
    @Test
    public void testConnection4() throws Exception {
        //1.提供连接所需信息
        String url = \"jdbc:mysql://localhost:3306/test\";
        String user = \"root\";
        String passwor = \"root\";
        //2.使用反射加载驱动
        Class.forName(\"com.mysql.jdbc.Driver\");
        //3.获取连接
        Connection connection = DriverManager.getConnection(url, user, passwor);
 
        System.out.println(connection);
    }
}

与方式三相比,方式四省略了如下代码:

Driver driver = (Driver) clazz.newInstance();
DriverManager.registerDriver(driver);

理由是,在com.mysql.jdbc.Driver类中有如下所示的静态代码块,使用Class.forName()加载这个驱动时就会执行这个静态代码块,实现了注册驱动

static {
    try {
        DriverManager.registerDriver(new Driver());
    } catch (SQLException var1) {
        throw new RuntimeException(\"Can\'t register driver!\");
    }
}

方式五

public class ConnectionTest {
    @Test
    public void testConnection5() throws Exception {
        //1.获取连接所需信息
        InputStream is = ConnectionTest.class.getClassLoader().getResourceAsStream(\"jdbc.properties\");
 
        Properties info = new Properties();
        info.load(is);
        String url = info.getProperty(\"url\");
        String user = info.getProperty(\"user\");
        String password = info.getProperty(\"passwor\");
        String driverClass = info.getProperty(\"driverClass\");
        //2.使用反射加载驱动
        Class.forName(driverClass);
        //5.获取连接
        Connection connection = DriverManager.getConnection(url, user, passwor);
 
        System.out.println(connection);
    }
}

其中配置文件jdbc.properties在src目录下:

url=jdbc:mysql://localhost:3306/test
user=root
passwor=root;
driverClass=com.mysql.jdbc.Driver

使用配置文件的好处:

1、实现代码和数据的分离,如果需要修改配置信息,直接在配置文件中进行修改,不需要深入代码

2、如果修改配置信息,省去了重新编译的过程=

资源下载此资源下载价格为1小猪币,终身VIP免费,请先
由于本站资源来源于互联网,以研究交流为目的,所有仅供大家参考、学习,不存在任何商业目的与商业用途,如资源存在BUG以及其他任何问题,请自行解决,本站不提供技术服务! 由于资源为虚拟可复制性,下载后不予退积分和退款,谢谢您的支持!如遇到失效或错误的下载链接请联系客服QQ:442469558

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 Java教程 详解JDBC的概念及获取数据库连接的5种方式 https://www.20zxx.cn/705669/xuexijiaocheng/javajc.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务