IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 简单了解mysql和我的第一个jdbc程序 -> 正文阅读

[大数据]简单了解mysql和我的第一个jdbc程序

一.什么是数据库

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行增删改查等操作。
之前我们在操作数据是存放在内存里的,但是在内存中无法永久保存,于是我们将数据存放入磁盘当中以文件的形式管理,但是数据的形式多种多样,在存储和处理数据方面比较繁琐,于是数据库的优点就体现出来了。

二.什么是mysql

数据库分为分为关系型数据库(SQL)和非关系型数据库(NOSQL),而mysql属于关系型数据库。
在mysql中,要通过SQL语句去操作数据库,SQL语言也是单独的一门语言,只不过其是用来操作数据库的。

1.SQL语句分类

SQL语句分为:

  • DQL:数据查询语言
  • DML: 数据定义语言(对表中的数据进行操作)
  • DDL:数据定义语言(对表结构进行操作)
  • TCL:事务控制语言
  • DCL:数据控制语言

后面主要简单说一说DQL和DML。

和java一样,在SQL语句中也是有着数据类型的,现在我们讲一讲一些常用的数据类型:

2.常用基本数据类型

  • int (整型数据类型)
  • double(浮点型数据类型)
  • char(字符串固定大小)
  • varchar(可变字符串,类似java中的String)
  • blob(存储二进制(字节)的大对象数据,可以存储tup,视频等)
  • text(clob:用来存储大型文本数据)
  • -data (YYYY-MM-DD 日期格式)
  • datatime (YYYY-MM-DD HH:mm:ss 最常用的时间格式)

三.SQL语句

注:在SQL语句中不区分大小写,每一句以分号结尾,所有符号使用英文格式

1.DQL语句(查询语句)

DQL是数据查询语句,关键词为select
简单查询

-- 查看当前MySQL的版本
select version();    
                
-- 查看当前使用的数据库
select databases();                    

-- 查看指定表的字段(如果要查询多个字段用逗号隔开)
select age from student;              

-- 查看表中的所有数据(或者将*转化为所有的字段,使用*效率低)
select * from student;                

-- 给列取别名(也可以把‘as’用空格替换)
select `name` as studentName from student;   

条件查询

select `字段名1`,`字段名2,···`from `表名` where 判断条件; 

2.DML语句

插入数据

insert into `表名`(`字段1`,`字段2`,`字段3`,···) values ('值1','值2','值3');
-- 注意 :
-- 字段或值之间用英文逗号隔开 .
-- ' 字段1,字段2...' 该部分可省略 , 但添加的值务必与表结构,数据列,顺序相对应,且数量一致 .
-- 可同时插入多条数据 , values 后用英文逗号隔开 .

删除数据

delete from `表名` where 判断条件;
-- 注:where后面为判断条件,如果不加where子句,则会删除所有数据。

修改数据·

update `表名` set `字段名1`=1 , `字段名2`=2 ,··· where 判断条件;
-- 注:where后面为判断条件,如果不加where子句,则会修改所有数据。

where字句:

可以简单的理解为 : 有条件地从表中筛选数据,然后在进行前面的增删查改操作。

3.一些简单的DDL语句

SHOW DATABASES                       -- 查看所有数据库
DROP DATABASE `数据库名`             -- 删除数据库
USE `数据库名`                       -- 使用数据库
SHOW TABLES                          -- 展示所有表

四.我的第一个JDBC程序

JDBC代表Java数据库连接(Java Database Connectivity),它是用于Java编程语言和数据库之间的数据库无关连接的标准Java API,换句话说:JDBC是用于在Java语言编程中与数据库连接的API,其内部封装好了如何操作数据库的方法,开发者只需要将SQL语句用字符串的形式作为参数传入即可。
(这里我使用的是驱动jar包是8.0以上的)
首先我们创一个数据库,并且在这个数据库下创建一个数据表,填入一些数据信息:
例:
数据库信息
代码示例:(数据库名为studmessage)

import java.sql.*;

public class Main {
    public static void main(String[] args) {
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;
        try {
            //获取类的加载器(加载驱动)
            Class.forName("com.mysql.cj.jdbc.Driver");
            //url和用户信息
            String url = "jdbc:mysql://localhost:3306/studmessage?useUnicode=true&characterEncoding=utf8&useSSL=true";
            String name = "root";
            String password = "123456";
            /**
             * URL参数详解:
             * localhost:3306 :本地地址与mysql端口号
             * studmessage: 数据库名(写自己的数据库名)
             * ? : 连接参数
             * useUnicode=true : 使用Unicode码
             * characterEncoding=utf8 :使用UTF-8编码集
             * useSSL=true 使用安全的连接
             */

            //返回数据库对象,将url和用户信息传入getConnection的方法之中
            connection = DriverManager.getConnection(url, name, password);

            //返回操作数据库的对象
            statement = connection.createStatement();

            //将sql语句以字符串的形式保存
            String sql = "select * from student";

            //再将sql语句以参数的形式传入executeQuery
            //得到一个结果集(ResultSet的对象)
            resultSet = statement.executeQuery(sql);

            while (resultSet.next()) {
                System.out.println("id = " + resultSet.getObject("id"));
                System.out.println("name = " + resultSet.getObject("name"));
                System.out.println("sex = " + resultSet.getObject("sex"));
                System.out.println("dateOfBirth = " + resultSet.getObject("dateOfBirth"));
                System.out.println("dateOfAdmission = " + resultSet.getObject("dateOfAdmission"));
                System.out.println("college = " + resultSet.getObject("college"));
                System.out.println("major = " + resultSet.getObject("major"));
                System.out.println("nativePlace = " + resultSet.getObject("nativePlace"));
                System.out.println("nation = " + resultSet.getObject("nation"));
                System.out.println("***********************************************");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        //资源关闭
        if (resultSet != null) {
            try {
                resultSet.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
}

示例输出:

id = 1
name = 张三
sex = 男
dateOfBirth = 2002-09-20
dateOfAdmission = 2021-11-09
college = 电气与信息工程学院
major = 软件工程
nativePlace = 云南昆明
nation = 汉族

代码中的一些方法介绍:
executeQuery(string sql) :

将sql语句以参数的形式传入,得到一个查询出来的结果集(ResultSet的对象)。

executeQuery(string sql):

将sql语句以参数的形式传入,返回一个int值,该值表示数据库中收影响的数据条数

next()

ResultSet(结果集) 指针的初始位置位于第一条数据之前,每使用一次next()指针就会移动到下一行数据,有数据则返回true,否则返回false。

getObject(String columnLabel)

columnLabel : 数据库里面的字段名
返回此时指针所在那一行数据对应字段名的数据。

注意:在资源关闭时应该按照需关闭资源的产生的先后顺序反过来关闭。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-10 12:28:04  更:2021-11-10 12:28:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:51:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码