DBC

JDBC就是一套接口,真正执行的是jar包里得实现类,通过泛型对象来执行实现类里的方法。

步骤:

###1.导入驱动jar包到工程中
###2.编写代码注册驱动,我们要让程序知道用的是哪个驱动包
###3.获取数据库连接对象 :Connection,这个对象就是本地java代码和数据库直接的对象
###4.定义sql,将来通过一些方式把sql发送到数据库,从而达到操作sql的要求
###5.获取执行sql语句的对象:Statement
###6.执行sql,方法调用返回一个返回值,接受返回的结果
###7.处理结果
###8.释放资源

代码:

package cn.itcast.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/*
* JDBC
* */
public class JdbcDemo1 {
public static void main(String[] args) throws Exception {
//1,导入驱动jar包
// 1)复制mysql-connector-java-8.0.18到项目的libs目录下(mysql-connector-java-8.0.18要与mysql版本匹配,这里我用的mysql也是8.0.18版本)
// 2)右键libs选择添加为库(add as library),这一步才是真正的把jar包加入
Class.forName("com.mysql.cj.jdbc.Driver");//这是mysql8.0的更改内容,之前的mysql版本使用的是"com.mysql.jdbc.Drivar"。
// 3)获取数据库连接对象Connection类的conn
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/db3", "root", "123456");
// 4)定义sql语句
String sql = "update emp set salary = 8500 where id = 1001";
// 5)获取执行sql的对象Statement类的stmt
Statement stmt = conn.createStatement();
// 6)执行sql,executeUpdate是修改语句
int count = stmt.executeUpdate(sql);
// 7)处理结果,打印接受返回的count值
System.out.println(count);
// 8)释放资源
stmt.close();
conn.close();
}
}

效果:

运行前:

运行后:

详解JDBC各个对象

1.DriverManager:驱动管理对象

    *功能:

1.注册驱动——



写代码使用:Class.forName("com.mysql.cj.jdbc.Driver");

那么这两个有啥关系呢?

我们把com.mysql.cj.jdbc.Driver类文件加载进内存,但是我们没有调用这个类,意味着这个类里的代码会随着类的加载而自动执行,也就是存在静态代码块来存放这些自动执行的代码。

通过查看源码发现:在com.mysql.cj.jdbc.Driver类中存在静态代码块:



代码显示它在注册驱动,而且真正注册驱动的是DriverManager,我们通过com.mysql.cj.jdbc.Driver类执行了DriverManager,这样比较简单。

从sql5开始,Class.forName("com.mysql.cj.jdbc.Driver");//sql8.0的新写法 这句话其实不需要写,因为



在这里相当于已经写了com.mysql.cj.jdbc.Driver这句话。

2.获取数据库连接——



这是一个静态的方法,可以通过类名直接调用。

参数:

url——指定连接的路径,IP端口与数据库的名称jdbc:mysql://ip地址(域名):端口号/数据库名称

如果连接的本机的mysql服务器,默认端口是3306,那么url可以简写为jdbc:mysql://数据库名称

user——用户名

password——密码

2.Connection:数据库连接对象

    Statement stmt = conn.createStatement();这个Statement 类的stmt 可以用来执行方法,int count = stmt.executeUpdate(sql);
###1.功能:
###1.获取执行sql的对象 ![](https://img2018.cnblogs.com/blog/1772487/201910/1772487-20191023161131213-281658183.png)
![](https://img2018.cnblogs.com/blog/1772487/201910/1772487-20191023161214542-464087519.png)
###2.管理事务 开启事务:
![](https://img2018.cnblogs.com/blog/1772487/201910/1772487-20191023161400794-181892992.png)
调用该方法设置参数为false,即开启事务
提交事务:
![](https://img2018.cnblogs.com/blog/1772487/201910/1772487-20191023161547203-906933181.png)
回滚事务:
![](https://img2018.cnblogs.com/blog/1772487/201910/1772487-20191023161617501-1136743706.png)

3.执行sql的对象

1.执行sql

1.

可以执行任意的sql,了解下,用的不多。

2.

执行的是DML语句(DML是增删改表中数据的语句),DDL语句(create,alter,drop)语句。int类型的返回值是影响的行数。

3.

执行的是DQL语句(查询语句),返回的是一个ResultSet类的结果集对象

4.ResultSet:结果集对象——封装结果集的对象

1.

next()方法,游标向下一行

默认游标:不能取数据

游标向下一行:可以把每一列的内容取出

获取数据的方法,一次获取(游标指向的某行中)某一列的数据。



getxx(),xx代表数据类型

2.

5.PreparedStatment:执行sql的对象

Java之JDBC操作数据库的更多相关文章

  1. Java使用Jdbc操作MySql数据库(一)

    这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...

  2. Java笔记(第七篇 JDBC操作数据库)

    JDBC是连接数据库和java程序的桥梁,通过JDBC API可以方便地实现对各种主流数据库的操作.学习java语言,必须学习JDBC技术,因为JDBC技术实在java语言中被广泛使用的一种操作数据库 ...

  3. Java基础之原生JDBC操作数据库

    前言 日常开发中,我们都习惯了使用ORM框架来帮我们操作数据库,本文复习.记录Java如何使用原生JDBC操作数据库 代码编写 封装几个简单方法 find查询方法 findOne查询方法 update ...

  4. Java的JDBC操作

    Java的JDBC操作 [TOC] 1.JDBC入门 1.1.什么是JDBC JDBC从物理结构上来说就是java语言访问数据库的一套接口集合,本质上是java语言根数据库之间的协议.JDBC提供一组 ...

  5. 用于JDBC操作数据库的公共类

    /* * @(#)CommonSql.java 2011-9-5 * * Copyright 2011 Bianjing,All rights reserved. */ import java.sql ...

  6. JDBC操作数据库的学习(2)

    在上一篇博客<JDBC操作数据库的学习(1)>中通过对例1,我们已经学习了一个Java应用如何在程序中通过JDBC操作数据库的步骤流程,当然我们也说过这样的例子是无法在实际开发中使用的,本 ...

  7. JDBC操作数据库的学习(1)

    单单对数据库的操作,比如说MySQL,我们可以在命令行窗口中执行,但是一般是应用程序要操作数据库,因此我们应该在程序中的代码上体现对数据库的操作,那么使用程序应用如何操作数据库呢?那就要使用到数据库的 ...

  8. JDBC操作数据库的三种方式比较

    JDBC(java Database Connectivity)java数据库连接,是一种用于执行上sql语句的javaAPI,可以为多种关系型数据库提供统一访问接口.我们项目中经常用到的MySQL. ...

  9. Spark Streaming通过JDBC操作数据库

    本文记录了学习使用Spark Streaming通过JDBC操作数据库的过程,源数据从Kafka中读取. Kafka从0.10版本提供了一种新的消费者API,和0.8不同,因此Spark Stream ...

随机推荐

  1. docker cassandra集群搭建

    1.使用daocloud的镜像,创建docker集群 启用一个node docker run -d --name cassandra -p 9042:9042 daocloud.io/library/ ...

  2. pycharm配色

    setting-appearanse-theme-IntelliJ setting-Editer-color scheme-Default setting-Editer-color scheme-py ...

  3. Delphi DBGrid 实现复选框

    1 在数据库对应的表中加入  bit 列验证是否被选中 然后dbgrid第一列的filedname是bit列 在DBgrid的onDrawColumnCell事件中写: procedure DBGri ...

  4. 确保数据零丢失!阿里云数据库RDS for MySQL 三节点企业版正式商用

    2019年10月23号,阿里云数据库RDS for MySQL 三节点企业版正式商用,RDS for MySQL三节点企业版基于Paxos协议实现数据库复制,每个事务日志确保至少同步两个节点,实现任意 ...

  5. hdu1574 I Hate It (线段树,查询区间最大值)

    Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟 ...

  6. Android中软键盘弹出时关于布局的问题

     当在Android的layout设计里面如果输入框过多,则在输入弹出软键盘的时候,下面的输入框会有一部分被软件盘挡住,从而不能获取焦点输入. 解决办法: 方法一:在你的activity中的oncre ...

  7. php对象方法链式调用编程

    E:\html\tproject\framework\modules\common\classes\Common\CURL.php <?php /** * 同步发起请求 * 针对http协议的8 ...

  8. 使用struts2未登录,不能操作

    1.定义拦截器类: 注意登录的action,登录成功在session存入标记(login) import com.opensymphony.xwork2.ActionContext; import c ...

  9. eclipse debug (调试)基础

    进入debug模式: 1.设置断点 2.启动servers端的debug模式 3.运行程序,在后台遇到断点时,进入debug调试状态 ============================= 作用域 ...

  10. 小程序 页面传值 json 被截断

    因此解决这个报错的方法是将要传输的数据用 encodeURIComponent()函数(可把字符串作为 URI 组件进行编码) 先进行编码, 传输过去后再通过decodeURIComponent()函 ...