欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

连接MySQL数据库

程序员文章站 2022-03-29 17:19:09
查询MySQL数据库的内容1、首先在MySQL里面建立一个库和表,插入数据。建库!接着下一步 建表语句如图所示,数据也插入里面了。2、打开idea,新建一个Javaproject,将jar包导入src中 点击图中选项在src里面建立一个tool工具包,然后在里面建立一个util 工具类:package cn.hp;import cn.hp.model.Student;import java.sql.*;import java.util.ArrayList;public class...

查询MySQL数据库的内容

1、首先在MySQL里面建立一个库和表,插入数据。

连接MySQL数据库建库!
连接MySQL数据库
接着下一步 建表语句
连接MySQL数据库如图所示,数据也插入里面了。
2、打开idea,新建一个Javaproject,
将jar包导入src中 点击图中选项
连接MySQL数据库

在src里面建立一个tool工具包,然后在里面建立一个util 工具类:

在package cn.hp;

import cn.hp.model.Student;

import java.sql.*;
import java.util.ArrayList;

public class Test01 {

    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        // jdbc操作
//        test1(1,"1' or '1'='1");
        test2();
    }

    public static void test1(int id , String sname) throws ClassNotFoundException, SQLException {
//      1、加载驱动  选择当前使用的数据库   选择了mysql
            Class.forName("com.mysql.jdbc.Driver");
//      2、创建一个连接    设计模式的理念  1、提升了安全性   2、运行时的性能    3、代码的优美   4、代码的可拓展(方便升级改造)
//        一个方法 5000行代码
        Connection connectionName = DriverManager.getConnection("jdbc:mysql://localhost:3306/student?characterEncoding=utf8&useSSL=true","root","root");
//      3、新建一个 查询页面 用来编写sql的    sql语句编辑器
//
        Statement statement = connectionName.createStatement();
//      4、编写sql语句
//      二进制数据   21:  101010  >> 1  --> 42
        String sql = "select * from student where id = " +id +" and sname = '"+sname+"' ";
//      5、执行sql,使用statement  获取 ResultSet 结果集 ( 表类型 行 列 )
//          查询的结果集 : 4种 单行单列  --> 基本数据类型接收
//                            单行多列  --> 使用对象进行接收
//                            多行单列  --> 使用集合(基本数据类型)进行接收
//                            多行多列  -->  使用集合(对象)进行接收

        ResultSet resultSet = statement.executeQuery(sql);
//        存在一个游标 ,这个表示当前正在读取第几行的数据  默认在 字段上 不在记录上,
//          想让游标到记录上,需要使用next()将游标下移
//        System.out.println(resultSet.isBeforeFirst() +" " + resultSet.getRow());
//        代表第0行的数据  字段名称 列的数量
//        ResultSetMetaData metaData = resultSet.getMetaData();
//        for (int i = 1 ; i <= metaData.getColumnCount() ; i ++){
//            System.out.print(metaData.getColumnName(i));
//            System.out.println(metaData.getColumnLabel(i));
//        }

        ArrayList list = new ArrayList();
        while (resultSet.next()){
//            保存数据库中的多行多列 数据
//            每走一次循环,创建一个对象, 使用对象 保存当前行的数据
            Student student = new Student(
//              从数结果集的表中 使用int类型的 表示获取当前行的第1列  使用string类型的参数 表示获取当前字段的列
            resultSet.getInt(1),
            resultSet.getString(2),
            resultSet.getString(3),
            resultSet.getString("ssex")
            );
            list.add(student);
//            System.out.println( "当前下标位置" + resultSet.getRow()
//                    +"   当前是否第一行" +resultSet.isFirst() + "   "
//                    + resultSet.isLast() + "   " +resultSet.isAfterLast());
        }
        System.out.println(list);
//        resultSet.previous();
//        System.out.println(resultSet.isAfterLast() + "  "+ resultSet.getRow());
//        int i = resultSet.getInt(1);
//        System.out.println(i);
//        使用Java中的容器( 基本数据类型、数组(长度固定)、集合(长度可变)、对象 ) 保存 数据库查询的数据

        // 关闭资源数据   关闭的是对象, 只关注自己创建的对象 ;
        resultSet.close();
        statement.close();
        connectionName.close();
    }

//    预编译 编译器
    public static void test2() throws ClassNotFoundException, SQLException {
//        1、加载驱动  选择当前使用的数据库   选择了mysql
        Class.forName("com.mysql.jdbc.Driver");
//      2、创建一个连接    设计模式的理念  1、提升了安全性   2、运行时的性能    3、代码的优美   4、代码的可拓展(方便升级改造)
//        一个方法 5000行代码
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/student?useSSL=false&characterEncoding=utf8","root","root");
//      3、新建一个 查询页面 用来编写sql的    sql语句预编辑器 PreparedStatement
//        先将sql与使用正确的方式 拼接完成  速度和 statement 比 会慢很多 但是 安全性能高 能够防止sql注入
//        把sql语句中的条件 使用 ? 代替
//        把条件内容 当成 参数 交给 预编译器 让他自己拼接
        String sql = "select * from student where id = ? and sname = ?";
        Object [] strs = {1,"赵雷"};
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setObject(1,strs[0]);
        preparedStatement.setObject(2,strs[1]);
//        直接调用方法 表示 执行已经拼接好的sql语句
        ResultSet resultSet = preparedStatement.executeQuery();
        ArrayList list = new ArrayList();
        while (resultSet.next()){
//            保存数据库中的多行多列 数据
//            每走一次循环,创建一个对象, 使用对象 保存当前行的数据
            Student student = new Student(
//              从数结果集的表中 使用int类型的 表示获取当前行的第1列  使用string类型的参数 表示获取当前字段的列
                    resultSet.getInt(1),
                    resultSet.getString(2),
                    resultSet.getString(3),
                    resultSet.getString("ssex")
            );
            list.add(student);
//            System.out.println( "当前下标位置" + resultSet.getRow()
//                    +"   当前是否第一行" +resultSet.isFirst() + "   "
//                    + resultSet.isLast() + "   " +resultSet.isAfterLast());
        }
        System.out.println(list);
//        resultSet.previous();
//        System.out.println(resultSet.isAfterLast() + "  "+ resultSet.getRow());
//        int i = resultSet.getInt(1);
//        System.out.println(i);
//        使用Java中的容器( 基本数据类型、数组(长度固定)、集合(长度可变)、对象 ) 保存 数据库查询的数据

        // 关闭资源数据   关闭的是对象, 只关注自己创建的对象 ;
        resultSet.close();
        preparedStatement.close();
        connection.close();
    }
}

本文地址:https://blog.csdn.net/yz2419774634/article/details/112542760

相关标签: mysql java