广告
返回顶部
首页 > 资讯 > 后端开发 > Python >JDBC核心技术详解
  • 768
分享到

JDBC核心技术详解

2024-04-02 19:04:59 768人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

一、JDBC概述 1、数据的持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到

一、JDBC概述

1、数据的持久化

持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以"固化”,而持久化的实现过程大多通过各种关系数据库来完成。

持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。

在这里插入图片描述

2、Java 中的数据存储技术 在Java中,数据库存取技术可分为如下几类:

ØJDBC直接访问数据库
ØJDO技术
Ø第三方O/R工具,如Hibernate, mybatis 等JDBC是java访问数据库的基石,JDO, Hibernate等只是更好
的封装了JDBC

3、JDBC基础

在这里插入图片描述

连接数据库:

在这里插入图片描述
在这里插入图片描述

4、JDBC体系结构

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

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

Ø 面向数据库的API:Java Driver API,供开发商开发数据库驱动程序用。

在这里插入图片描述

5、JDBC API

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

在这里插入图片描述

6、JDBC程序访问数据库步骤

在这里插入图片描述
在这里插入图片描述

二、获取数据库连接

1、Driver 接口

java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。这个接口是提
供给数据库厂商使用的,不同数据库厂商提供不同的实现

在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理
器类(java.sql.DriverManager)去调用这些Driver实现
Øoracle的驱动:oracle.jdbc.driver.OracleDriver
ØMysql的驱动: com.mysql.jdbc.Driver

2、加载与注册 JDBC 驱动

在这里插入图片描述

3、建立连接(Connection)

在这里插入图片描述

4、几种常用数据库的JDBC URL

在这里插入图片描述

连接mysql代码实例:


import java.io.InputStream;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

import org.junit.Test;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Driver;

public class testconnction01 {
 
	
    
    @Test
    //方式一
	public void testConnection011() throws SQLException {
		Driver driver = new com.mysql.jdbc.Driver();
		String url = "jdbc:mysql://localhost:3306/test";
		Properties info = new Properties();
		info.setProperty("user", "root");
		info.setProperty("passWord", "root");
		Connection collection = (Connection) driver.connect(url, info);
		System.out.println(collection);
	}
    
    @Test
    //方式二,对方式一的迭代,使得程序具有更好的可移植性
   	public void testConnection02() throws Exception {
   		//获取Driver实现类对象;使用反射
   		Class clazz= Class.forName("com.mysql.jdbc.Driver");
   		Driver driver=(Driver) clazz.newInstance();
   		//提供要连接的数据库
   		String url = "jdbc:mysql://localhost:3306/test";
   		//提供连接需要的用户名和密码
   		Properties info = new Properties();
   		info.setProperty("user", "root");
   		info.setProperty("password", "root");
   		//获取连接
   		Connection collection = (Connection) driver.connect(url, info);
   		System.out.println(collection);
   	}
    
    @Test
    //方式三,使用DriverManager替换Driver
   	public void testConnection03() throws Exception {
    	Class clazz= Class.forName("com.mysql.jdbc.Driver");
   		Driver driver=(Driver) clazz.newInstance();
   		
   		//提供另外三个连接的基本信息;
   		String url ="jdbc:mysql://localhost:3306/test";
   		String user ="root";
   		String password ="root";
   		
    	//注册驱动
    	DriverManager.reGISterDriver(driver);
    	
    	//获取连接
    	Connection connection= (Connection) DriverManager.getConnection(url,user,password);
   		System.out.println(connection);
   	}
    
    @Test
    //方式四,可以只是加载驱动,不用是示的注册驱动过了。
   	public void testConnection04() throws Exception {
   
   		//提供另外三个连接的基本信息;
   		String url ="jdbc:mysql://localhost:3306/test";
   		String user ="root";
   		String password ="root";
   		
   		Class.forName("com.mysql.jdbc.Driver");
   		
//   		Class clazz= Class.forName("com.mysql.jdbc.Driver");
//   		Driver driver=(Driver) clazz.newInstance();
//   		
//    	//注册驱动
//    	DriverManager.registerDriver(driver);
//    	
    	//获取连接
    	Connection connection= (Connection) DriverManager.getConnection(url,user,password);
   		System.out.println(connection);
   	}
    
    @Test
    //方式五,(final版):将数据库连接需要的4个基本信息声明在配置文件中,通过读取配置文件的方式,获取连接
    //实现了数据和代码的分离(解耦)
   	public void testConnection05() throws Exception {
   
   	//读取配置文件的4个基本信息
    InputStream is = testconnction01.class.getClassLoader().getResourceAsStream("jdbc.properties");
    
      Properties p =new Properties();
      p.load(is);
      
      String user = p.getProperty("user");
      String password = p.getProperty("password");
      String url = p.getProperty("url");
      String driverClass =p.getProperty("driverClass");
      
      Class.forName(driverClass);
      
        //获取连接
  	    Connection connection= (Connection) DriverManager.getConnection(url,user,password);
 		System.out.println(connection);
   	}
}

5、使用Statement操作数据表的弊端 a、需要拼写SQL语句

在这里插入图片描述

6、Statement操作会导致SQL注入攻击

在这里插入图片描述

数据库连接被用于向数据库服务器发送命令和SQL语句,并接受数据库服务器返回的结果。其实一个数据库连接就是一个Socket连接。

在java.sql包中有3个接口分别定义了对数据库的调用的不同方式:

Statement :用于执行静态SQL语句并返回它所生成结果的对象。PrepatedIatement : SQL语句被预编译并存储在此对象中,可以使用此对象多次高效地执行该语句。CallableStatement :用于执行SQL存储过程

-在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

到此这篇关于JDBC核心技术详解的文章就介绍到这了,更多相关JDBC核心技术内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JDBC核心技术详解

本文链接: https://www.lsjlt.com/news/125434.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JDBC核心技术详解
    一、JDBC概述 1、数据的持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到...
    99+
    2022-11-12
  • JDBC 技术详解1
    jdbc是数据库中十分重要的一项技术,是我们在做项目最常用的一类接口实现类, 这里就个朋友们简单详细的聊一下。 首先我们应该知道什么是jdbc JDBC(JavaDataBaseConnectivity)j...
    99+
    2022-10-18
  • SpringMVC核心技术
    目录请求重定向和转发请求转发请求重定向异常处理SpringMVC拦截器拦截器过滤器的区别SpringMVC执行流程理解SpringMVC执行流程分析总结请求重定向和转发 当处理器对请...
    99+
    2022-11-12
  • 阿里云ECS核心技术解析
    阿里云ECS(Elastic ComputeService)是阿里云提供的一种弹性计算服务,它可以帮助用户快速构建和管理虚拟服务器,提供高性能、高可靠性的计算资源。本文将介绍阿里云ECS的核心技术,包括计算、存储和网络等方面的原理和特点。 ...
    99+
    2023-12-28
    阿里 核心技术 ECS
  • 如何快速理解MySQL核心技术?
    如何快速理解MySQL核心技术?MySQL是一种常用的关系型数据库管理系统,广泛应用于各种应用程序和网站开发中。理解MySQL的核心技术对于数据库开发和管理非常关键。本文将介绍一些快速理解MySQL核心技术的方法和建议。首先,了解MySQL...
    99+
    2023-10-22
    MySQL 数据库 核心技术
  • vue有哪些核心技术
    这篇文章给大家分享的是有关vue有哪些核心技术的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 vue有两大核心:1、数据驱动,也就是数据的双向绑定,让...
    99+
    2022-10-19
  • Java核心技术之反射
    目录一、Class类与Java反射1、访问构造方法2、访问成员变量3、访问方法二、使用Annotation功能1、定义Annotation类型2、访问Annotation信息总结一、...
    99+
    2022-11-12
  • Java核心技术有哪些
    本篇内容介绍了“Java核心技术有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  >>>***位用0填充,...
    99+
    2023-06-17
  • java核心技术读书笔记
    ...
    99+
    2023-06-03
  • Java的核心技术有哪些
    本篇内容主要讲解“Java的核心技术有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java的核心技术有哪些”吧!1. JVM相关对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解...
    99+
    2023-06-15
  • JavaEE的核心技术有哪些
    本篇内容介绍了“JavaEE的核心技术有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  JavaEE平台由一整套服务、应用程序接口和协...
    99+
    2023-06-02
  • 核心技术:J2ME中RMS的使用解析(转)
    核心技术:J2ME中RMS的使用解析(转)[@more@]在J2ME中,RMS作为唯一的永久性存储工具,其重要性是不言而喻的。但是很多刚刚开始学习J2ME的新人总是抱怨在这方面的资料很少,或者是针对性不强。因此,我想把自己在这方面的一些学习...
    99+
    2023-06-03
  • 有哪些Ajax核心技术代码
    本篇内容主要讲解“有哪些Ajax核心技术代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些Ajax核心技术代码”吧!复制代码 代码如下:<scrip...
    99+
    2022-10-19
  • 数据库零基础入门教程-JDBC核心技术精讲视频教程
    ...
    99+
    2020-01-10
    数据库零基础入门教程-JDBC核心技术精讲视频教程
  • python自动化测试selenium核心技术三种等待方式详解
    目录1 使用python自带模块time的sleep方式     2 隐式等待(implicitly_wait)3 显示等待(Web...
    99+
    2022-11-12
  • SpringBoot Application核心注解详解
    目录@SpringBootApplication@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan@Spri...
    99+
    2022-11-13
    SpringBoot Application SpringBoot Application核心注解
  • ChatGPT PHP技术解析:构建智能聊天机器人的核心技术
    ChatGPT PHP技术解析:构建智能聊天机器人的核心技术,需要具体代码示例导语:随着人工智能技术的快速发展,智能聊天机器人在各个领域中发挥着重要作用。而ChatGPT作为一款出色的聊天机器人模型,被广泛应用于多种语言平台中。本文将重点介...
    99+
    2023-10-24
    PHP 技术解析 智能聊天机器人
  • J2EE的13种核心技术简介(1)
    J2EE的13种核心技术简介(1)[@more@]J2EE的13种核心技术简介(1)Java最初是在浏览器和客户端机器中粉墨登场的。当时,很多人质疑它是否适合做服务器端的开发。现在,随着对Java2平台企业版(J2EE)第三方支持的增多,J...
    99+
    2023-06-03
  • WEB核心【会话技术】第十五章
    目录 💂 个人主页: 爱吃豆的土豆🤟 版权: 本文由【爱吃豆的土豆】原创、在CSDN首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 ...
    99+
    2023-09-20
    java 服务器 前端
  • JavaWeb核心技术中Session与Cookie浅析
    目录会话Cookie曲奇饼干cookieAPI编码问题删除cookie网页中查看cookieSession会话SessionAPISession与Cookie会话 会话:用户打开浏览...
    99+
    2023-02-22
    JavaWeb Session与Cookie JavaWeb Session JavaWeb Cookie
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作