MySql系列 (一): MySql基础
时间:2021-09-20
本文章向大家介绍MySql系列 (一): MySql基础,主要包括MySql系列 (一): MySql基础使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1、数据库划分
数据库一般分为两种:关系型数据库和非关系型数据库。
关系型数据库:将复杂的数据规定成一系列二维表的形式,对关系型数据库的操作一般是对一个或多个有关联的表进行数据项的存储查询。
Mysql、Oracle就是常见的关系型数据库。
非关系型数据库:以键值对、文档、搜索引擎的形式存储数据,事特定结构存储的数据集合。
Redis是典型的键值对形式、MongDB是文档形式、ES是搜索引擎形式的非关系型数据库。
2、MySql架构
MySql的层次结构大体可以分成四个层次:
(图片来源于网络)
连接层:负责客户端的连接,授权认证、安全处理、连接池等在这一层做相应处理。
服务层:处理sql语句的解析与优化,及缓存和内置函数处理。
存储引擎层:负责MySql数据的存储和提取,连通文件系统为服务层提供数据的存取服务。
文件系统:MySql数据真正存放的地方,MySql数据文件存储在同级data目录下。
3、Java连接MySql
原理是加载java的MySql驱动与数据库建立连接,一般步骤就是:连接数据库 -> 执行查询 -> 返回结果。
代码示例
\\简单java连接mysql例子:
public class MySqlDemo {
private static final String USER = "root";
private static final String PASSWORD = "root";
private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
private static final String DB_URL = "jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
public static void main(String[] args) {
Connection conn = null;
Statement stm = null;
try{
// 注册 JDBC 驱动
Class.forName(JDBC_DRIVER);
// 打开链接
System.out.println("连接数据库...");
conn = DriverManager.getConnection(DB_URL,USER,PASSWORD);
// 执行查询
System.out.println(" 实例化Statement对象...");
stm = conn.createStatement();
String sql;
sql = "SELECT id, name, age FROM user";
ResultSet rs = stm.executeQuery(sql);
while(rs.next()){
// 通过字段检索
int id = rs.getInt("id");
String name = rs.getString("name");
String age = rs.getString("age");
System.out.println(String.format("id=%s,name=%s,age=%s",id,name,age));
}
// 完成后关闭
rs.close();
stm.close();
conn.close();
}catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
// 处理 Class.forName 错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stm!=null){
stm.close();
}
}catch(SQLException se2){
}// 什么都不做
try{
if(conn!=null){
conn.close();
}
}catch(SQLException se){
se.printStackTrace();
}
}
System.out.println("end!");
}
}
4、项目中使用MySql
Mysql在java项目的使用,一般都是将连接属性写在配置文件,同时配合一个持久层的框架MyBatis、Spring Data等对数据库的连接和操作语句进行管理。
关于学习到的一些记录与知识总结
原文地址:https://www.cnblogs.com/Zxq-zn/p/15203953.html
- .Net 转战 Android 4.4 日常笔记(5)--新软件Android Studio 0.5.8安装与配置及问题解决
- 第2章 对象激活上下文-对象激活
- .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
- .Net 转战 Android 4.4 日常笔记(3)--目录结构分析
- .Net 转战 Android 4.4 日常笔记(2)--HelloWorld入门程序
- 读书笔记(二)对象激活和上下文
- 程序员的噩梦有哪些?除了改需求,还有这些…
- UC Berkeley提出新型分布式执行框架Ray:有望取代Spark
- 卡奇话爬虫使用方法以及下载地址
- flash读取XML 背景自动适应大小
- 记录一个发邮件的cs文件
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(56)-插件---单文件上传与easyui使用fancybox
- xml-rpc(2)-first demo_v2
- xml-rpc(1)-first demo
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- R语言中的模拟过程和离散化:泊松过程和维纳过程
- R语言Lee-Carter模型对年死亡率建模预测预期寿命
- R语言有极值(EVT)依赖结构的马尔可夫链(MC)对洪水极值分析
- RxSwift 封装 CoreBluetooth(一) 配置
- Golang 操作Excel文件
- 腾讯云TKE-搭建prometheus监控(一)
- Android开发中ProgressDialog简单用法示例
- Android实现拍照及图片裁剪(6.0以上权限处理及7.0以上文件管理)
- Android仿微信调用第三方地图应用导航(高德、百度、腾讯)
- Android数据共享 sharedPreferences 的使用方法
- Android NavigationBar问题处理的方法
- mac系统下载、安装、使用Java8教程
- React Native学习之Android的返回键BackAndroid详解
- Android动态添加view的方法示例
- Android开发之瀑布流控件的实现与使用方法示例