设为首页 加入收藏

TOP

学习笔记——元数据、blob类型的元素(一)
2023-07-25 21:31:11 】 浏览:48
Tags:习笔记 元数据 blob 元素

2022-11-04

一、元数据

1、元数据的说明:

  元数据就是指描述数据的数据,例如:数据有多少列、数据的列名称等。

2、使用的代码:

1 ResultSetMetaData metaData = rs.getMetaData();
2 int columnCount = metaData.getColumnCount();

    说明:第1行中的rs表示结果集

二、sql的注入

说明:在sql语句中查询具有某个工号的员工的详细信息时,需要在sql语句中使用占位符。之后再使用“setObject”为里面的内容赋值。

public void test02() throws SQLException {
    Scanner input = new Scanner(System.in);
    System.out.println("请输入你要查询的员工的编号:");
    String id = input.nextLine();
    input.close();
    String url = "jdbc:mysql://localhost:3306/数据库名称?serverTimezone=UTC";
    Connection conn = DriverManager.getConnection(url, "数据库用户名", "数据库密码");

    String sql = "SELECT * FROM t_employee WHERE eid= ?";
    PreparedStatement pst = conn.prepareStatement(sql);
    pst.setObject(1,id);
    ResultSet rs = pst.executeQuery();
    ResultSetMetaData metaData = rs.getMetaData();
    int columnCount = metaData.getColumnCount();
    //遍历结果集
    while (rs.next()){
        for (int i = 1; i <= columnCount; i++) {
            System.out.print(rs.getObject(i)+"\t");
        }
        System.out.println();
    }
    rs.close();
    pst.close();
    conn.close();
}

 2022-11-05

二、blob数据类型

1、blob数据类型说明:

   blob数据类型是用来存放图片信息的。

2、使用实例:

  (1)在数据库中创建一个表,设置表中的字段有(username,password,photo),将其中的"photo"的类型设置为“blob”.在IDEA中创建java项目,设置一个模块,在该项目下添加资源。涉及到的资源有“MySQL与java向连接的接口”,为“mysql-connector-java-8.0.19.jar”。创建一个java类。

  (2)在创建的java类中,首先输入要在数据库中添加的信息。使用输入流(Scanner)。之后建立与数据库的连接,设置url。使用“驱动管理类(DriverManager)”的“getConnection”方法将路由、用户名、密码三个参数传入,使MySQL与java建立连接。

  (3)之后,设置对应的sql语句将键盘输入的数据存储到数据库中。传入的数据在sql语句中首先用占位符(?)来占位。之后将建立好的连接进行预编译(预编译的目的是降低DBMS运行的时间,即它不用编译了,直接执行sql语句即可)。之后设置占位符的参数,使用的是预编译对象的setObject函数。将传入的数据放置到数据库中,设置的是预编译对象的executeUpdate函数,它返回的是一个整数,用来表示受影响的行数。之后将流对象关闭(有预编译对象、连接对象)。

详细的代码如下:

package com.haha.problem;

import org.junit.Test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class Problem3 {
    @Test
    public void test03() throws SQLException, FileNotFoundException {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String username = input.next();

        System.out.println("请输入密码:");
        String password = input.next();

        System.out.println("请输入图片:");
        String path = input.next(); //先使用路径表示
        input.close();

        String url = "jdbc:mysql://localhost:3306/数据库名称?serverTimezone=UTC";
        Connection conn = DriverManager.getConnection(url, "数据库的用户名", "数据库密码");

        String sql = "INSERT INTO t_user VALUES (?,md5(?),?)";
        PreparedStatement pst = conn.prepareStatement(sql);
        //设置参数的内容
        pst.setObject(1,username);
        pst.setObject(2,password);
        pst.setObject(3,new FileInputStream(path));

        int len = pst.executeUpdate();
        System.out.println(len>0?"添加成功":"添加失败");
        pst.close();
        conn.close();
    }
}

    说明:上述的代码中使用了一个“test”,是一个“junit”测试工具。在sql语句添加数据中,第二个占位符使用的是“md5(?)”,这里表示将输入的数据(password)进行加密,设置为密文。

      之后在运行代码时,第三个这里输入的图片存放的路径。

    注意:如果存入的图片的大小太大的话,应该将在数据库中设置的“photo”的类型进行转换,可以设置为“mediumblob”或者是“longblob”。

      在服务器端和客户端中的blob是有大小限制的,默认的是max_allowed_pac

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇一天吃透JVM面试八股文 下一篇Spring Boot 中使用 Swagger

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目