JDBC入门案例及相关API概述

1 JDBC概念

问题:JDBC的本质是什么,解决了什么问题?
在这里插入图片描述

2.API讲解

<1> DriverManager的作用

问题:DriverManager有什么作用?

作用一:注册驱动

DriverManager.registerDriver(new Driver()),但是我们不使用,我们使用Class.forName(“com.mysql.jdbc.Driver”)。

作用二:获取连接

​ Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/db14”, “root”, “root”);

参数1:连接的URL地址,如果是本机并且端口号是3306,那么localhost:3306可以省略不写,也就是jdbc:mysql:///db14。

参数2:用户名

参数3:密码

<2> Connection的作用

问题:Connection对象有什么作用?

作用一:创建执行SQL语句的执行者对象

​ Statement对象:Statement statement = conn.createStatement();

​ PreparedStatement预编译对象:PreparedStatement pstmt=conn.prepareStatement("")

作用二:事务管理
conn.setAutoCommit(false);  //设置自动提交为false就表示开启事务
conn.commit(); //提交事务
conn.rollback();//回滚事务

<3> Statement的作用

问题:Statement对象有什么作用?

作用:执行SQL语句

执行DQL语句(查询):ResultSet executeQuery(SQL);

​ 参数:传递要执行的查询语句

​ 返回值:封装查询结果的结果集对象。

执行DML语句(增删改):int executeUpdate(SQL);

​ 参数:要执行的增删改语句

​ 返回值:影响的行数,可以通过影响的行数判断是否执行成功。

<4> ResultSet的作用

问题:ResultSet对象有什么作用?

作用一:判断是否有下一行数据:boolean next()

作用二:获取该行的数据: Xxx getXxx(“列名”);

​ Xxx表示不同的数据类型,例如:int getInt(“sid”); String getString(“name”)

3.JDBC入门案例

jdbc表:
在这里插入图片描述

<1>入门案例步骤

【前提】:导入mysql的驱动jar包
【第一步】:注册驱动,告诉程序使用哪种数据库
【第二步】:获取连接,需要传递url、用户名、密码参数
【第三步】:获取执行SQL的对象,负责CRUD
【第四步】:执行查询操作,获取结果
【第五步】:处理结果
【第六步】:释放资源

<2>代码实现

public class JdbcDemo1 {public static void main(String[] args) throws ClassNotFoundException, SQLException {//【前提】:导入mysql的驱动jar包//1.注册驱动,告诉程序使用哪种数据//不需要我们自己调用registerDriver方法注册驱动//Driver中有静态代码块,只要我们加载它,就能注册驱动Class.forName("com.mysql.jdbc.Driver");//mysql5之后在配置文件中配置,可省略不写//2.获取连接,需要传递url、用户名、密码参数//连接本机localhost:3306可以不写Connection conn = DriverManager.getConnection("jdbc:mysql:///jdbc", "root", "123456");// Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc", "root", "123456");//3.获取执行SQL的对象,负责CRUD[增查改删]Statement statement = conn.createStatement();//4.执行sql语句,并返回结果ResultSet rs = statement.executeQuery("select * from student;");//5.处理结果while(rs.next()){//如果返回true表示有下一行元素//获取并打印int sid = rs.getInt("sid");String name = rs.getString("name");//不区分大小写int age = rs.getInt("age");String birthday = rs.getString("birthday");//Date birthday1 = rs.getDate("birthday"); //两种获取方法都行System.out.println(sid +"\t"+name+"\t"+age +"\t"+birthday);}//6.释放资源rs.close();statement.close();conn.close();}
}

注:URL参数jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf8&usesSL=true
mysql5.0之后可省略不写
useUnicode:支持中文编码
characterEncoding=utf8:字符集设为utf8
utf8&usesSL=true:使用安全的连接(防止乱七八糟的错误)

mysql的驱动jar包资源下载

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

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

相关文章

Spring Boot国际化支持

转载自 Spring Boot国际化支持本章将讲解如何在Spring Boot和Thymeleaf中做页面模板国际化的支持&#xff0c;根据系统语言环境或者session中的语言来自动读取不同环境中的文字。 国际化自动配置 Spring Boot中已经对国际化这一块做了自动配置。 国际化自动配置类&#xff1a;o…

http响应状态码列表

1&#xff09;响应状态码用于表示服务器对请求的各种不同处理结果和状态&#xff1b; 2&#xff09;响应状态码分为5类&#xff1a;类1&#xff09;100~199&#xff1a;表示成功接收请求&#xff0c;要求客户端继续提交下一次请求才能完成整个处理过程&#xff1b;类2&#xff…

Spring Boot整合Thymeleaf模板引擎

转载自 Spring Boot整合Thymeleaf模板引擎什么是Thymeleaf Thymeleaf是一款用于渲染XML、XHTML、HTML5内容的模板引擎。类似Velocity&#xff0c;FreeMaker模板引擎&#xff0c;它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。 Thymeleaf也是Spring Boot首…

JDBC的SQL注入漏洞

1.概念&#xff1a; 利用sql语句的漏洞来对系统进行攻击&#xff0c;导致数据泄露 2.案例演示 数据库登录表&#xff1a; 模拟登录代码【输入正确的用户名和密码才能打印出用户信息】 public class SQL注入 {public static void main(String[] args) {login( " or 1…

JVM运行时区域详解

转载自 JVM运行时区域详解我们知道的JVM内存区域有&#xff1a;堆和栈&#xff0c;这是一种泛的分法&#xff0c;也是按运行时区域的一种分法&#xff0c;堆是所有线程共享的一块区域&#xff0c;而栈是线程隔离的&#xff0c;每个线程互不共享。 线程不共享区域 每个线程的数据…

JDBC事务管理

1 事务概念 一组SQL操作要么同时成功要么同时失败。 2 JDBC事务操作的API 管理事务的功能类:Connection conn.setAutoCommit(false); //设置自动提交为false就表示开启事务 conn.commit(); //提交事务 conn.rollback();//回滚事务3.代码举例 需求&#xff1a;批量添加员工…

吃透这套架构演化图,从零搭建Web网站也不难

转载自 吃透这套架构演化图&#xff0c;从零搭建Web网站也不难 前言工作也有几多年了&#xff0c;无论是身边遇到的还是耳间闻到的&#xff0c;多多少少也积攒了自己的一些经验和思考&#xff0c;当然&#xff0c;博主并没有太多接触高大上的分布式架构实践&#xff0c;相对比较…

书写JDBC工具类

1 将哪些操作抽取到工具类中 为什么要抽取工具类&#xff1f; 我们在执行CRUD的过程中&#xff0c;有太多的重复代码需要写&#xff0c;例如&#xff1a;注册驱动、获取连接、释放资源【可以优化dao层的代码】 1 加载properties配置文件&#xff0c;获取连接数据库的相关参数&…

完整的MIME类型列表

转自&#xff1a; https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types 这是一份比较全面的MIME类型列表&#xff0c;关联了文档的类别&#xff0c;以它们常见的扩展名排序。两种主要的MIME类型在默认类型中扮演了重要的…

大众点评Java开发实时应用监控平台-CAT

转载自 【推荐】大众点评Java开发实时应用监控平台-CATCAT介绍 CAT是基于Java开发的实时应用监控平台&#xff0c;包括实时应用监控&#xff0c;业务监控。 CAT作为大众点评网基础监控组件&#xff0c;它已经在中间件框架&#xff08;MVC框架&#xff0c;RPC框架&#xff0c;数…

第三方连接池

1 连接池的概念和作用 问题&#xff1a;连接池的本质是什么&#xff1f;有什么作用&#xff1f; 概念&#xff1a;连接池的本质就是一个容器&#xff0c;该容器中会初始化一些Connection对象&#xff0c;我们程序只需要从连接池中获取连接&#xff0c;使用完毕之后归还连接即…

think-in-java(9)接口

【9】接口 【9.1】抽象类和抽象方法1&#xff09;抽象方法&#xff1a;仅有方法声明而没有方法体&#xff1b;由abstract 修饰的方法&#xff1b;2&#xff09;抽象类&#xff1a;如果一个类包含一个或多个抽象方法&#xff0c; 则该类声明为抽象类&#xff0c;由 abstract修饰…

Spring Boot日志集成

转载自 Spring Boot日志集成Spring Boot日志框架 Spring Boot支持Java Util Logging,Log4j2,Lockback作为日志框架&#xff0c;如果你使用starters启动器&#xff0c;Spring Boot将使用Logback作为默认日志框架。无论使用哪种日志框架&#xff0c;Spring Boot都支持配置将日志输…

三大设计模式

1. 装饰者设计模式 <1>解决的问题&#xff1a;在不改变原有类方法源代码的情况下给方法进行增强&#xff0c;在实现的方法中调用原有对象的对应方法&#xff0c;也可对原有方法进行增强。 <2>要求&#xff1a;要实现接口的所有方法。 <3>弊端&#xff1a;…

硬盘与存储设备

转自鸟哥&#xff1a; http://cn.linux.vbird.org/linux_basic/0105computers_2.php#pc_hd 【1】基本概念 实际的数据都是写在具有磁性物质的磁碟盘上头&#xff0c;而读写主要是透过在机械手臂上的读取头(head)来达成。 实际运作时&#xff0c; 主轴马达让磁碟盘转动&#x…

17张图揭密支付宝系统架构

转载自 17张图揭密支付宝系统架构 支付宝的系统架构图&#xff0c;仅供参考。不管是不是支付行业&#xff0c;都值得我们参考&#xff0c;学习。

Linux系统分区和挂载浅谈

转自&#xff1a; https://blog.csdn.net/cc_net/article/details/2894510好久没有写BLOG了,之前出差了2个月,都没怎么看书,也没有太多时间写。回来后一个月人也有点放松。现在开始还是得继续努力啊。不废话了&#xff0c;下面就介绍下Linux系统的分区和挂载 一 Linux的安装 L…

jmap, jhat, jvisualvm:java堆内存对象分析利器

转载自 jmap, jhat, jvisualvm&#xff1a;java堆内存对象分析利器jmap -help查看命令用法。jmap -heap <pid> 查看堆使用情况。jmap -dump导出堆对象文件进行内存分析。jhat -J-Xmx512m -port 8888 1136.txt命令生成分析报告&#xff0c;可通过http访问。访问http://loc…

ajax异步请求

1 什么是异步请求&#xff1f; 在页面不重新加载的情况下&#xff0c;发送请求局部更新页面内容。2 jquery实现异步请求&#xff1f; $.ajax({url:"访问路径",data:"请求参数", //请求参数格式:"namevalue&namevalue&..." 或者 {name:…

Buffers与cached啥区别

转自&#xff1a; https://www.cnblogs.com/argb/p/3448744.html A buffer is something that has yet to be “written” to disk.A cache is something that has been “read” from the disk and stored for later use对于应用程序来说&#xff0c;buffers/cached 是等于可用…