• 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等对数据库的连接和操作语句进行管理。

    5、参考

    MySQL体系架构

    关于学习到的一些记录与知识总结
  • 相关阅读:
    JS图片不间断滚动代码(向上,向下,向左,向右)
    存储过程int型转字符型
    DataList编辑、更新、取消、删除、分页
    js设置焦点
    iFrame只要竖滚动条,不要横滚动条
    C#中通过值和引用传递参数
    关于C#值类型,引用类型,值传递,引用传递
    提醒自我
    c#读取html文件内容替换之后再写入
    sql中替换字符串
  • 原文地址:https://www.cnblogs.com/Zxq-zn/p/15203953.html
Copyright © 2020-2023  润新知