zoukankan      html  css  js  c++  java
  • MySQL Day5

    MySQL 学习

    目录


    MySQL可以使用jdbc进行编程。

    进行jdbc编程的时候,需要另外下载组件Connector/J,如果你是在MySQL官网下载的数据库的话,现在8.0版本,有一个MySQL Install,在其中你可以选择相对应的connector从而利用以外的语言进行访问数据库。

    在idea中,需要在该项目的Project Structure中的Modules添加Connector/J相对应的包,否则不能够访问。

    我的机器上安装的是MySQL 8.0的版本,所以与以往可能有大部分不一样

    接下来,我们创建一个test.java,开始今天的jdbc对数据库的访问


    Class.forName()

    • Class.forName()

    首先得明白Class这个类

    Class

    是Java中的反射中心,可以通过其中的forName()方法从而获取类Class对象的引用。

    Class.forName()方法主要功能是返回一个类,作用是要求 JVM 查找并加载指定的类,也就是说, JVM 会执行该类的静态代码段也即static修饰的部分。而在加载数据库驱动的时候,只能使用Class.forName()方法去加载该驱动

    在MySQL8.0中,该驱动在"com.mysql.cj.jdbc.Driver"中,需要注册该驱动

    使用语句注册驱动 Class.forName("com.mysql.cj.jdbc.Driver")

    返回顶部

    数据库URL

    在连接数据库时,我们必须使用各种与数据库类型相关的参数,比如主机名、端口号和数据库名等

    比如jdbc:mysql://local:3306/test?useSSL=false&serverTimezone=UTC,可以分成四个部分

    • jdbc:mysql://
    • local:3306/
    • test?
    • useSSL=false&serverTimezone=UTC

    我不知道这样分得对不对,反正我这样分了我能理解.....

    第一部分是JDBC的特定的语法,其本体是这样的jdbc:subprotocol:other stuffsubprotocol用于选择连接到数据库的具体程序。other stuff参数的格式随所使用的subprotocol不同而不同,大可以访问数据库供应商提供的相对一个的文档。

    数据库的url明白之后,接下来就是注册驱动器类了

    返回顶部

    注册驱动器类

    通过DriverManager注册驱动器类

    • 在Java程序中加载驱动器类

    Class.forName("com.mysql.cj.jdbc.Driver");

    • 设置jdbc.drivers属性

    连接到数据库

    • Connection与特定的数据库进行连接,连接上下文的SQL语句并返回结果
    • Statement与数据库进行连接之后,用该连接发送SQL语句
    • ResultSet使用SQL语句之后查询的东西,返回结果集到ResultSet中,

    由于ResultSet中不支持滚动去读,只能使用其中的方法next()去一行一行地进行读取

    然后接下来就可以使用jdbc和数据库进行连接了,可以使用了。

    返回顶部

    下面是一个例子:

    import java.sql.*;
    
    public class TestForMySQL {
        final static String JDBC_Driver="com.mysql.cj.jdbc.Driver";
    
        final static String url= "jdbc:mysql:"+/*jdbc:指定特定的数据库*/
                "//localhost:3306/"/**/
                +"test"/*数据库名称*/
                +"?useSSL=false&serverTimezone=UTC";/*固定格式*/
    
        final static String user="root";
        final static String passwd="12345678";
    
        public static void main(String[]args){
            Connection connection=null;
            Statement statement=null;
    
            try{
                Class.forName(JDBC_Driver);//注册驱动
                connection= DriverManager.getConnection(url,user,passwd);//连接端口,加上用户名密码
                statement=connection.createStatement();
    
                String sqlUse="show databases";
    
                String sqlCmd="SELECT * FROM words WHERE id>=1 and id<100";//sql语句
    
                ResultSet resultSet=statement.executeQuery(sqlCmd);//使用语句进行查询
    
                while(resultSet.next()) {
                    int id = resultSet.getInt("id");
                    String word = resultSet.getString("word");
                    String explains = resultSet.getString("explains");
    
                    System.out.println(id + " " + word + " " + explains);
                }
                //关闭流
                statement.close();
                resultSet.close();
                connection.close();
    
            }catch (Exception e){
                e.printStackTrace();
            }
            finally {
                try {
                    if (statement != null)
                        statement.close();
                }catch (SQLException e) {
                    e.printStackTrace();
                }
                try{
                    if(connection!=null)
                        connection.close();
                }catch (SQLException e){
                    e.printStackTrace();
                }
            }
            System.out.println("结束");
    
    
        }
    }
    
    

    返回顶部


    Day5 Over

    这是小睿的博客,如果需要转载,请标注出处啦~ヾ(≧▽≦*)o谢谢。
  • 相关阅读:
    一道压强题
    考试习惯的审题+习题+电脑存放目录记录
    产品需求分类及KANO模型需求排序学习
    马斯洛需求层次理论及其新拓展学习笔记
    12-JQuery学习之bind绑定事件
    11-JQuery学习之ready预加载事件
    09-JQuery学习之删除元素
    10-JQuery学习之遍历元素
    08-JQuery学习之创建元素和添加元素
    06-JQuery学习之操作元素的样式
  • 原文地址:https://www.cnblogs.com/Yunrui-blogs/p/12432572.html
Copyright © 2011-2022 走看看