java jdbc 详解_JDBC概述及详解各个对象

JDBC(Java DataBase Connectivity)详解

一.概念:

JDBC是一种可执行SQL语句的JavaAPI,Java数据库链接,Java语言操做数据库mysql

二.本质:

JDBC是一种可用于执行SQL语句的Java API,由一些Java语言编写的类和页面组成。各个数据库厂商能够使用这套接口编程,真正执行的是驱动jar包中的实现类。web

三.步骤:

导入驱动jar包

复制jar包到项目的libs目录下

右键–>add as library

2.注册驱动

3 获取数据库链接对象connection

4.定义sql语句

5.获取执行sql语句的对象Statemen

6.执行sql,接受返回结果

7.处理结果

8.释放资源

6375bc2a322067958afcd722f3125740.png

详解各个对象

1.DriverManager:驱动管理对象

方法:static Connection getConnection()

参数:URL:指定链接路径 user:用户名 password:密码

语法:jdbc:mysql://ip地址(域名):端口号/数据库名称

例子:jdbc:mysql://localhost:3306

细节:若是链接的是本机的服务器,则可省略数据库的ip地址和端口。

2.Connection:数据库链接对象

功能:获取执行sql的对象

createStatement()

JDBC控制事务

1.事务:一个包含了多个步骤的业务操做,若是这个业务操做被事务管理,则这个步骤要么同时成功,要么同时失败。

2.操做:

(1)开启事务setAutocommit(blloean autocommit):调用该方法设置参数为false,即开启事务。

(2)提交事务commmit()

(3) 回滚事务rollback()

3.使用connection对象来管理事务sql

3.Statement:执行sql的对象

执行sql的方法(要注意其不一样的返回值类型)

(1)boolean execute(String sql):能够执行任意的sql

(2)int executeUpdate(String sql):

*返回值为影响的行数,能够经过影响行数来判断DML语句是否执行成功,返回值>0则执行成功

4.PrepareStatement:执行SQL的对象

发现SQL注入问题:在拼接SQL时,有一些SQL的特殊关键字参与字符串的拼接,会形成安全性问题

解决方法:PrepareStatement继承于prepareStatement

预编译的SQL:参数使用占位符?数据库

步骤:

1.导入驱动jar包

2.注册驱动

3.获取数据库对象Connection

4.定义SQL

5.获取执行SQL的对象

6.给?赋值

- 方法:setXxx()

- 参数一:?的位置编号,从1开始(第?个?)

- 参数二:?的内容,根据内容肯定所使用的方法类型,如若?内是int型,则采用的方法是getInt。

7.执行SQL,接收返回结果,不须要sql

8.处理结果

9,释放资源

二者关系:PreparedStatement接口继承自Statement,继承了其全部功能,另外还添加了一整套方法,用于发送设置给数据库以取代IN参数占位符。

Statement

PrepareStatement

通用查询

参数化查询

先初始化SQL语句,再提交到数据库中预处理

从零开始执行SQL

定义sql语句

包含的SQL具备一个或多个IN参数,留?做为占位符

执行SQL方法时须要传入SQL语句作参数

执行sql方法无需传参

相同点:二者均由Connection类对象建立 ,执行步骤大自相同。编程

注意:应该先编译SQL语句,再传递占位符表明的参数,顺序颠倒则报错安全

79b51c3c2c62645a9182dfff70c84254.png

b238a0ef0813230d95c0e179b53198e6.png

5.ResultSet:结果集对象。封装查询结果

next():游标向下移动一行

getXxx():获取数据

*Xxx:表明数据类型

*参数:如getInt()

1.int:表明列标号,从1开始

2.String:表明列名称

使用步骤:

1.游标向下移动一行

2.判断是否有数据(可t循环来判断)

3.获取数据

1357956924d3dc12678f7d52d46b4d34.png

如上图,ResultSet经过控制循环来增删改查服务器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526683.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java非递归_Java非递归文件系统走路

我需要创建一个使用非递归遍历文件系统的应用程序,并打印出一定深度的文件.是)我有的:public void putFileToQueue() throws IOException, InterruptedException {File root new File(rootPath).getAbsoluteFile();checkFile(root, depth);Queue queue new ArrayD…

private访问权限java_Java中的访问权限控制

Java提供了public, private, protected 三个访问权限修饰词,提供了以下四种访问权限控制机制:1、包访问权限;2、Public访问权限;3、Private访问权限;4、Protected访问权限;1、包访问权限包访问权限是Java为…

java查看蓝牙mac地址_Java如何获取主机的MAC地址?

以前,为了获取MAC地址,我们需要使用本机代码作为解决方案。在JDK 1.6中,java.net.NetworkInterface类中添加了一个新方法,该方法为getHardwareAddress()。package org.nhooo.example.network;import java.net.InetAddress;import …

java空心字木塔_我国七个千年古塔:第四个空心没有塔顶,最后一个是木塔无钉无铆...

1、崇圣寺三塔,云南大理,公元824—839年崇圣寺三塔是一个三塔三阁组成的建筑群,最大的主塔又名千寻塔。是中国现存层数最多的古佛塔,拥有16层。崇圣寺三塔历经30多次地震不倒,极其顽强。2、大雁塔,陕西西安…

java8 ie_Java8语法糖之Lambda表达式_Hudie.的博客-CSDN博客

原文作者:编程一只蝶原文标题:Java8语法糖之Lambda表达式发布时间:2021-02-16 13:08:40一、Lambda表达式简介Lambda表达式,是Java8的一个新特性,也是Java8中最值得学习的新特性之一。(另一个新特性是流式编程。)Lambda…

python中的event_Python event

最新项目游戏感用于SteelSeries GameSense 3.8.x的Python库安装这个包有两个不同的版本。一个支持普通的同步函数调用,另一个支持python的异步功能。要安装同步版本,请运 ...2021-03-02已阅读: n次此模块验证事件模块中的电话号码,就像base_p…

hadoop 运行java类_hadoop运行java类

使用hadoop运行自己写的java类报错:/home/hadoop/bin/hadoop MaxTemperature /home/hadoop/input/sample.txt outputException in thread "main" java.lang.NoClassDefFoundError: MaxTemperatureCaused by: java.lang.ClassNotFoundException: MaxTemper…

centos的mysql怎么删用户_linux/centos给Mysql创建用户、授权、查看、删除、修改密码、撤...

linux/centos给Mysql创建用户、授权、查看、删除、修改密码、撤linux/centos给Mysql创建用户、授权、查看、删除、修改密码、撤销权限linux/centos给Mysql创建用户、授权、查看、删除、修改密码、撤销权限root权限高,安全性考虑,一般只允许本地(本机)访问…

采取 过滤 php_这3种php高级过滤了解一下,很实用!

在php中有很多的过滤,可以对输入的字符串进行过滤,同时也可以对邮件地址进行过滤,接下来我要讲的是php中的3种高级过滤,在开发中很实用。第一种:过滤数值范围在php经常要接收各种数据,其中数值是非常普遍的…

java打乱一组正序数字,Leetcode︱4.Median of Two Sorted Arrays寻找两个正序数组的中位数.java...

题目给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。示例 :输入:nums1 [1,3], nums2 [2]输出:2.00000解释:合并数组 [1,2,3] ,中位数 2说明:nums1.leng…

php中的oop思想,避免OOP的形式,POP的思想_PHP

避免OOP的形式,POP的思想_PHP避免OOP的形式,POP的思想好久没发技术性文章了,今天在21PHP里看到有位兄弟发了这贴子,转了过来.对加强OOP的学习有些用----------------------------------------------------------避免OOP的形式,POP的思想随着PHP对OOP(面向对象编程)支持的增强以…

吃PHP小孩智力好,这7种鱼千万不能给孩子吃,会影响孩子的智力!

所以,给宝宝添加鱼类时一定要注意,有7种鱼含有大量金属元素,是千万不能给宝宝吃的!1罗非鱼罗非鱼深青色的外表有几分像鲫鱼。由于罗非鱼的成长周期较长,它们体内汞的含量也就相比其他鱼偏高,小朋友吃罗非鱼…

java监控rabbitMq服务状态,spring cloud 的监控turbine-rabbitmq的示例

前提是你已经有了注册中心,然后搭建一个基础spring cloud 服务,并配置注册服务等等前提环境搭建接下来描述的服务提供者和服务调用者的配置都是一样的,来自《spring cloud 与 docker微服务架构实战》的读后的个人总结.pom文件中需要引入spring-cloud-starter-hystrix/spring-cl…

支付宝php40247,支付宝APP支付 显示 系统繁忙 请稍后再试 ALI40247

PHP服务端生成地址传给IOS端调用 一直显示系统繁忙 请稍后再试 ALI40247 密钥也正常 也按照官方说明来走。官方的PHP端SDK是错误的 根本不加密biz_content 字段随后百度找不到相关的资料 只有人说换成 1.0版本 也就是 移动支付移动支付相关文档 https://doc.open.alipay.com…

java jlabel构造方法,浅谈标签和JLabel类构造方法 原创

搜索热词标签有 JLabel 类定义,它的父类为 JComponet 类。标签可以显示一行只读文本、一个图像或带图像的文本。它并不能产生任何类型的事件,只能简单地展示图片和文本,但是可以使用标签的特性指定标签上文本的对齐方式。JLabel类提供了多种构…

php改变iframe的src,js动态改变iframe的src属性

今天在Chrome下显示如下的iframe,src设置为空,但打开页面时iframe一直处于刷新状态,看了下面的博文,觉得是不是默认不显示时src应该写成about:blank,明天回去测试下,回来更新结果写一个,src地址…

java弹球轨迹运动解说,动态弹球的实现 加入了多线程技术-javaSE游戏准备工作

动态弹球的实现 加入了多线程技术--javaSE游戏准备工作任务描述:实现了动态弹球的功能,对于有弹球功能的SE游戏奠定了基础。package 运用线程技术的小球;import java.awt.*;import java.awt.event.*;import java.awt.geom.*;//不清楚这个有什么用import java.util.*…

Java语言矩形与立方体的继承,沈阳师范大学大一下册C++语言PTA题目集以及答案(编程题篇)...

沈阳师范大学大一下册C语言PTA题目集以及答案(编程题篇)7-1 测试c (20分)倒序输出从控制台输入的n个整数输入格式:第一行输入一个数n,代表行数依次输入n个整数输出格式:将n个整数倒序输出输入样例:31 2 3输出样例:321#includeint main(){int n,i;std::cin>>i;…

php启动 大量sess文件,关于PHP中Session文件过多的问题

PHP的默认机制:每一次php请求,会有1/100的概率(默认值)触发“session回收”。如果“session回收”发生,那就会检查/tmp/sess_*的文件,如果最后的修改时间到现在超过了1440秒(gc_maxlifetime的值),就将其删除&#xff0…

MATLAB求图片两圆圆心,求助:如何求此图中两圆的圆心距?

对于你给出的图片,我根据之前提到的思路编写了以下程序。感觉还蛮准的。这个程序只能用于两圆相交的情况。当小圆在大圆内部时,需要在其中加以判定。仅供参考。clear;clcc imread(1.jpg);cc c;tic[m n] size(c);for i1:mindex find(~c(i,:));if leng…