iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >JDBC简介
  • 525
分享到

JDBC简介

javajarmysql数据库 2023-08-20 07:08:41 525人浏览 独家记忆
摘要

文章目录 一、JDBC简介二、JDBC执行步骤三、执行步骤中类的简介1、DriverManager类2.Connection类3、ResultSet类 一、JDBC简介 什么是jdbc JDBC全称:java databas

一、JDBC简介

什么是jdbc
JDBC全称:java database connectivity,简称jdbc, 翻译就是 Java 数据库连接。

jdbc有什么作用:
是一种标准Java应用编程接口( JAVA api),用来连接 Java 编程语言和广泛的数据库。可以通过jdbc代码实现对数据库的操作。包括DDL,DML,DQL等。

二、JDBC执行步骤

1.导入驱动jar包
链接:https://pan.baidu.com/s/1mP3Nb4wKd1VrBrGmbD3QDg
提取码:t0kh
导入jar包步骤

  • 1.在你的WEB-INF目录下创建一个lib包,专门放置jar包
  • 2.将jar包复制到lib路径下
  • 3.右键单击,选择add as library
  • 4.将level改成module library 点击OK

如果你的lib路径下的jar包有以下小箭头,就添加成功了
在这里插入图片描述
2.注册驱动

Class.forName("com.Mysql.jdbc.Driver");

3.获取连接

Connection connection = DriverManager.getConnection(url, username, passWord);

4.定义SQL语句

String sql = "sql语句";

5.获取执行SQl对象

Statement statement = connection.createStatement();

6.执行sql语句

statement.executeUpdate(sql);

7.处理结果

8.释放资源

statement.close();connection.close();
package com.example.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;public class jdbcdemo {    public static void main(String[] args) throws Exception {//        1.注册驱动        Class.forName("com.mysql.jdbc.Driver");//        2.获取连接        String url = "jdbc:mysql://127.0.0.1:3306/dbcsdn";        String username = "root";        String password = "1234";        Connection connection = DriverManager.getConnection(url, username, password);//        3.定义sql语句,这里以创建一个work_user表为例        String sql1 = "use dbcsdn";        String sql2 = "create table work_user(" +                "id int(5) primary key auto_increment," +                "username varchar(20) unique," +                "password varchar(20))";//        4.获取sql对象        Statement statement = connection.createStatement();//        5.执行sql        int l1 = statement.executeUpdate(sql1);        int l2 = statement.executeUpdate(sql2);//        6.处理结果        System.out.println("sql1受影响条数"+l1);        System.out.println("sql2受影响条数"+l2);//        7.释放资源        statement.close();        connection.close();    }}

三、执行步骤中类的简介

1、DriverManager类

DriverManager类下面提供的全是静态方法,只需要用类名点方法就可以调用,不需要实例化。它的作用主要有两个:
1.注册驱动: reGISterDriver()

Class.forName("com.mysql.jdbc.Driver");

其中的Driver类里面有一个静态代码块,有一句DriverManager. registerDriver()完成驱动的注册
在这里插入图片描述

获取连接:getConnection(url, username, password);
这个方法可以通过mysql的URL地址、数据库用户名、密码获取连接。传入的参数就是对应的URL地址:形如jdbc.mysql://ip地址:端口号/数据库名称。如果是本机连接,IP地址可以写成127.0.0.1或者localhost。如果端口号是默认的3306,可以写成缩写格式:jdbc.mysql:///数据库名

Connection connection = DriverManager.getConnection(url, username, password);

2.Connection类

connection类主要有两个作用:一是可以获取执行sql的对象,二是管理事务的功能。我们都知道数据库里面的数据局一旦改变就是永久的,所以需要一个管理事务功能验证sql语句的正确性。在mysql中事务管理通过begin开启事务,rollback回滚事务,commit提交事务。在jdbc里面通过connection类的特定方法也可以实现这三个功能。

  1. 获取执行sql的对象用到的方法。
    第一个就是普通执行sql对象:connection.createStatement()方法,返回一个Statement对象。

    Statement statement = connection.createStatement();

statement类下面有两个对数据进行操作的方法,分别是excuteUpdate(),excuteQuery()。excuteUpdate()这个方法主要是实现DML(操作数据),DDL(操作数据库,操作表)的代码。执行成功之后会返回一个值,这个值就是受影响的行数。但是DDL中就算执行成功之后有可能是0,因为创建一个新的表这样的sql代码受影响行数是0。excuteQuery()主要是实现DQL(查询语句),这个方法会返回一个resultSet对象,这个对象主要用于接受查询到的内容。

演示excuteUpdate()方法。

package com.example.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;public class jdbcdemo {    public static void main(String[] args) throws Exception {        String url = "jdbc:mysql://127.0.0.1:3306/dbcsdn";        String username = "root";        String password = "1234";        Connection connection = DriverManager.getConnection(url, username, password);        String sql = "insert  into work_user values " +                "(1,'name1','password1')," +                "(2,'name2','password2');";        Statement statement = connection.createStatement();        int i = statement.executeUpdate(sql);        System.out.println("受影响的行数是:"+i+"行");        statement.close();        connection.close();    }}

第二个是防止sql注入的prepareStatement()方法,其中传入sql语句,可以防止sql注入,最终返回一个PrepareStatement对象。

jdbc事务管理用法举例

package com.example.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class jdbcdemo {    public static void main(String[] args) throws Exception {        String url = "jdbc:mysql://127.0.0.1:3306/dbcsdn";        String username = "root";        String password = "1234";        Connection connection = DriverManager.getConnection(url, username, password);        String sql1 = "insert  into work_user values " +                "(5,'name5','password5')," +                "(6,'name6','password6');";        String sql2 = "update work_user set username = 'name002' where id = 2;";        Statement statement = connection.createStatement();        try {            // 开启事务            connection.setAutoCommit(false);            int l1 = statement.executeUpdate(sql1);            System.out.println("sql1受影响的行数是:"+l1+"行");            int l2 = statement.executeUpdate(sql2);            System.out.println("sql2受影响行数是:"+ l2+ "行");            // 提交事务            connection.commit();        } catch (Exception e) {            //回滚事务            connection.rollback();            e.printStackTrace();        }        statement.close();        connection.close();    }}

3、ResultSet类

作用:对DQL查询语句进行封装,返回一个resultset对象,并且可以通过特定方法获取查询结果。

  1. 对DQL查询语句封装

    ResultSet resultSet = statement.executeQuery(sql);
  2. 通过特定方法获取查询结果

next()方法。返回Boolean类型,主要用于判断当前行是否有有效数据,若有就返回true,否则返回false。

getXXX()方法。通过resultSet获取数据,对应数据类型定义对应方法。传参可以为字段名,也可以是列对应的编号。

package com.example.jdbc;import java.sql.*;public class jdbcdemo {    public static void main(String[] args) throws Exception {        String url = "jdbc:mysql://127.0.0.1:3306/dbcsdn";        String username = "root";        String password = "1234";        Connection connection = DriverManager.getConnection(url, username, password);        String sql = "select * from work_user";        Statement statement = connection.createStatement();        ResultSet resultSet = statement.executeQuery(sql);        while (resultSet.next()){            int id = resultSet.getInt("id");            String name = resultSet.getString("username");            String psd = resultSet.getString("password");            System.out.print("id:"+id+"\t");            System.out.print("username:"+name+"\t");            System.out.println("password:"+psd);            System.out.println("---------------");        }        resultSet.close();        statement.close();        connection.close();    }}

来源地址:https://blog.csdn.net/chenxingxingxing/article/details/123462544

您可能感兴趣的文档:

--结束END--

本文标题: JDBC简介

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

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

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

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

下载Word文档
猜你喜欢
  • JDBC简介
    文章目录 一、JDBC简介二、JDBC执行步骤三、执行步骤中类的简介1、DriverManager类2.Connection类3、ResultSet类 一、JDBC简介 什么是jdbc JDBC全称:java databas...
    99+
    2023-08-20
    java jar mysql 数据库
  • Spring JDBC 框架简介
    目录JDBC 框架概述JdbcTemplate 类配置数据源数据访问对象(DAO)执行 SQL 语句执行 DDL 语句Spring JDBC 框架例子JDBC 框架概述 在使用普通的...
    99+
    2024-04-02
  • DataSource与数据库连接池简介(JDBC简介)
    目录起源为何放弃DriverManager连接池数据源实现核心架构DataSourceAPI小结应用数据库连接池示例总结DataSource是作为DriverManager的替代品而...
    99+
    2022-11-13
    数据库连接池Data Source JDBC数据库连接池Data Source
  • JDBC简介_动力节点Java学院整理
    前言:什么是JDBC维基百科的简介:  Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。J...
    99+
    2023-05-31
    jdbc 简介 ava
  • MyBatis怎么简化的JDBC
    这篇文章主要介绍了MyBatis怎么简化的JDBC的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MyBatis怎么简化的JDBC文章都会有所收获,下面我们一起来看看吧。MyBatis 作用MyBatis 是一个...
    99+
    2023-07-05
  • Python~~简介介绍
    Python (英国发音:/paθn/ 美国发音:/paθɑn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于...
    99+
    2024-04-02
  • Django简介
    MVC与MTV模型MVCWeb服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户...
    99+
    2023-01-30
    简介 Django
  • IPv6简介
    IPv6仅仅只是“长”吗?IPv6的地址长什么样?平时我们是怎么使用IPv6的呢?编写网络程序的时候要怎么处理IPv6?且待本篇一一道来。 为什么需要IPv6 全球的IP地址由一个名字叫IANA(Internet Assigned Num...
    99+
    2023-01-31
    简介
  • java3d简介
    Java3D用其自己定义的场景图和观察模式等技术构造了3D的上层结构,实现了在Java平台使用三维技术。本文在原理上着重介绍Java3D特有的两个重要概念:场景图(Scene Graph)、观察模式(View Model)。在接口使用上的...
    99+
    2023-01-31
    简介 java3d
  • Python——简介
    1、Python社区 Pypi:https://pypi.org/GitHub:https://github.com/StackOverFolw:https://stackoverflow.com/开源中国:https://www.osc...
    99+
    2023-01-31
    简介 Python
  • VMotion简介
    源起:...
    99+
    2023-06-04
  • JavaScript 简介
    JavaScript 是世界上最流行的脚本语言。 JavaScript 是属于 web 的语言,它适用于 PC、笔记本电脑、平板电脑和移动电话。 JavaScript 被设计为向 HTML 页面增加交互性。 许多 HTML 开发者都不是程序...
    99+
    2023-06-03
  • MySQL简介
    MySQL介绍:简介、特点与应用示例 概述:MySQL是当前最常用的关系型数据库管理系统之一。作为一个开源的数据库管理系统,MySQL具有许多优点,如高性能、可靠性强以及易于使用等。本...
    99+
    2024-02-22
    mysql sql 数据库
  • Python-简介
      @ Python的由来    Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Pyt...
    99+
    2023-01-30
    简介 Python
  • Python 简介
    Python介绍与特点(自学python知识整理) Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计: Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于P...
    99+
    2023-01-31
    简介 Python
  • OpenCV简介
    OpenCV简介 OpenCV(开源计算机视觉库:http://opencv.org)是一个开源库,包含数百种计算机视觉算法。OpenCV 具有模块化结构,主要包括下列模块: 核心功能(core) - 定义基本数据结构的紧凑模块,包括密集多...
    99+
    2023-08-30
    opencv 人工智能 计算机视觉
  • argparse简介
    一、argparse简介 argparse 模块是 Python 内置的用于命令项选项与参数解析的模块,argparse 模块可以让人轻松编写用户友好的命令行接口,能够帮助程序员为模型定义参数。 ar...
    99+
    2023-09-01
    python
  • PowerShell简介
    PowerShell 简介:PowerShell 是一种命令行 shell 和脚本语言一体化工具。 它被设计为任务引擎,使用 cmdlet 来包装用户需要执行的任务。 在 PowerShell 中,...
    99+
    2023-09-07
    linux 运维 服务器
  • Ajax简介
    一、Ajax简介 Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指⼀种创建交互式⽹⻚应⽤的⽹⻚开发技术。 Ajax 是⼀种⽤于创建快速动态⽹⻚的技术。 Aja...
    99+
    2023-09-02
    ajax javascript 服务器
  • DevOps简介
    DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。     DevOps的概念 DevOps一词的来自于Development和Ope...
    99+
    2023-01-30
    简介 DevOps
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作