MySql系列 (一): MySql基础
2021/9/20 19:28:56
本文主要是介绍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等对数据库的连接和操作语句进行管理。
这篇关于MySql系列 (一): MySql基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-25MySQL报错Duplicate entry '0' for key 'PRIMARY'
- 2024-05-29阿里 Canal 实时同步 MySQL 增量数据至 ClickHouse 数据库
- 2024-05-24在Linux下管理MySQL的大小写敏感性
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享