当前位置: 首页 > article >正文

第12关:博客系统之删除评论

任务描述
本关任务:本关实现删除博客评论的功能。

相关数据说明
MySQL 数据库 mydb;

博客评论表 t_comment;

列名    类型    非空    注释
commentId    int    √    评论 ID 主键 自增
commentContent    varchar    √    博客标题
blogId    varchar    √    博客 ID
createTime    varchar    √    评论时间
userId    varchar    √    评论人 ID,也就是用户 ID
MySQL 连接配置:

Driver:com.mysql.jdbc.Driver;

URL:jdbc:mysql://localhost:3306/mydb?characterEncoding=UTF-8;

user:root;

password:123123。

编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 中实现删除博客评论的功能,具体要求如下:

用户查看评论后,可以删除自己的评论或者博客创建者可以删除自己博客内的评论;

用户进入删除评论模块时,输出:“请输入你要删除的评论ID”,然后获取用用户输入的评论 ID;

再调用 BlogDao 类的 findUserById(int blogId) 方法,查询博客的创建者 ID;

接着调用 CommentDao 的 deleteComment(int commentId,int userId,int createUserId) 方法,依次将评论 ID、用户 ID、创建者 ID 传入该方法中,实现评论的删除;

deleteComment() 方法实现删除评论的功能,只有评论者和博客创建者有权限删除该评论,如果成功删除,输出:“评论删除成功!”,如果删除失败,则输出:“评论删除失败!”。

测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
可在右侧“测试结果”区查看具体的测试集详情。

测试输入:

1
sunfeng
123456789
2
3
2
2
1
2
5
3
预期输出:

**********欢迎进入博客系统**********
**********1. 登录**********
**********2. 注册**********
**********3. 退出系统**********
请输入你要进行的操作:
请输入你的用户名
请输入你的密码
1. 创建博客
2. 查看博客
3. 删除博客
4. 修改博客
5. 返回上一级菜单
6. 查询自己的评论
请输入你要进行的操作:
查询所有博客请按1,查询自己的博客请按2,查询指定博客请按3,返回请按其它键
请输入你要查询的博客ID
blogId    blogTitle    blogContent    typeName    userName
2    Java简介    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。    Java    yechen
发布评论请按1,查询所有评论请按2,请按其它键
博客的评论如下:
blogId    blogTitle    blogContent    commentContent    userName
2    Java简介    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。    Java好难啊    sunfeng
2    Java简介    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。    Java啊啊啊    yechen
是否删除评论:是请按1,否请按其它键
请输入你要删除的评论ID
评论删除失败!
1. 创建博客
2. 查看博客
3. 删除博客
4. 修改博客
5. 返回上一级菜单
6. 查询自己的评论
请输入你要进行的操作:
**********欢迎进入博客系统**********
**********1. 登录**********
**********2. 注册**********
**********3. 退出系统**********
请输入你要进行的操作:
退出系统!

step12/com/menu/Menu.java

package com.menu;
import com.dao.BlogDao;
import com.dao.BlogTypeDao;
import com.dao.CommentDao;
import com.dao.UserDao;
import com.pojo.Blog;
import com.pojo.BlogType;
import com.pojo.Comment;
import com.pojo.User;

import java.util.Date;
import java.util.Scanner;
public class Menu {
    public static void main(String[] args) {
        UserDao userDao = new UserDao();
        boolean flag = true;
        User user;
        Blog blog;
        Comment comment;
        BlogType blogType;
        BlogDao blogDao = new BlogDao();
        CommentDao commentDao = new CommentDao();
        BlogTypeDao blogTypeDao = new BlogTypeDao();
        Scanner sc = new Scanner(System.in);
        do {
            System.out.println("**********欢迎进入博客系统**********");
            System.out.println("**********1. 登录**********");
            System.out.println("**********2. 注册**********");
            System.out.println("**********3. 退出系统**********");
            System.out.println("请输入你要进行的操作:");
            int x = sc.nextInt();
            String userName;
            String passWord;
            String phone;
            switch (x) {
                case 1:
                    // 获取键盘输入的用户信息
                    System.out.println("请输入你的用户名");
                    userName = sc.next();
                    System.out.println("请输入你的密码");
                    passWord = sc.next();
                    user = userDao.login(userName,passWord);
                    if (user != null) {
                        boolean flag1 = true;
                        do{
                            System.out.println("1. 创建博客");
                            System.out.println("2. 查看博客");
                            System.out.println("3. 删除博客");
                            System.out.println("4. 修改博客");
                            System.out.println("5. 返回上一级菜单");
                            System.out.println("6. 查询自己的评论");
                            System.out.println("请输入你要进行的操作:");
                            int y = sc.nextInt();
                            int blogId = 0;
                            String blogTitle;
                            String blogContent;
                            String typeName;
                            switch (y){
                                case 1:
                                    // 获取键盘输入的用户信息
                                    System.out.println("请输入你要创建的博客标题");
                                    blogTitle = sc.next();
                                    System.out.println("请输入你要创建的博客内容");
                                    blogContent = sc.next();
                                    System.out.println("请输入你的博客类型");
                                    typeName = sc.next();
                                    // 查询博客类型是否存在
                                    blogType = blogTypeDao.findBlogType(typeName);
                                    if (blogType != null){
                                        // 将博客信息放入博客对象中
                                       blog = new Blog();
                                       blog.setBlogTitle(blogTitle);
                                       blog.setBlogContent(blogContent);
                                       blog.setUser(user);
                                       blog.setBlogType(blogType);
                                       // 验证博客是否创建成功
                                        boolean b = blogDao.addBlog(blog);
                                        if (b){
                                            System.out.println("博客创建成功!");
                                        }else{
                                            System.out.println("博客创建失败!");
                                        }
                                    }else {
                                        System.out.println("博客类型不存在!");
                                    }
                                    break;
                                case 2:
                                    System.out.println("查询所有博客请按1,查询自己的博客请按2,查询指定博客请按3,返回请按其它键");
                                    String find = sc.next();
                                    // 查询所有的博客
                                    if ("1".equals(find)){
                                        blogDao.findAllBlogs();
                                    // 查询自己的博客
                                    }else if ("2".equals(find)){
                                        blogDao.findMyBlogs(user);
                                    }else if ("3".equals(find)){
                                        // 获取键盘输入的博客 ID
                                        System.out.println("请输入你要查询的博客ID");
                                        blogId = sc.nextInt();
                                        // 查询博客
                                        blogDao.findBlogById(blogId);
                                    }else if ("4".equals(find)){
                                        // 获取键盘输入的博客标题
                                        System.out.println("请输入你要查询的博客标题");
                                        blogTitle = sc.next();
                                        // 查询博客
                                        blogDao.findBlogByTitle(blogTitle);
                                    }else {
                                        break;
                                    }
                                    // 获取用户是否想要发布评论
                                    System.out.println("发布评论请按1,查询所有评论请按2,请按其它键");
                                    String c = sc.next();
                                    if ("1".equals(c)){
                                        // 获取用户评论的博客
                                        if (blogId == 0){
                                            System.out.println("请输入你要评论的博客ID");
                                            blogId = sc.nextInt();
                                        }
                                        // 查询博客是否存在
                                        if (blogDao.checkBlogById(blogId)){
                                            // 获取用户评论的内容
                                            System.out.println("请输入你要评论的内容");
                                            String commentContent  = sc.next();
                                            Date date = new Date();
                                            blog = new Blog();
                                            blog.setBlogId(blogId);
                                            comment = new Comment();
                                            comment.setCommentContent(commentContent);
                                            comment.setBlog(blog);
                                            comment.setUser(user);
                                            comment.setDate(date);
                                            // 将评论内容添加
                                            commentDao.addComment(comment);
                                            // 评论添加成功后进入查询该博客所有评论模块
                                            c = "2";
                                        }else {
                                            System.out.println("博客不存在");
                                        }
                                    }
                                    if ("2".equals(c)){
                                        // 判读博客 ID 是否为 0
                                        if (blogId == 0){
                                            System.out.println("请输入你要查看评论的博客ID");
                                            blogId = sc.nextInt();
                                        }
                                        // 查询该博客所有评论
                                        commentDao.findCommentById(blogId);
                                        // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
                                        /********** Begin **********/
                                        System.out.println("是否删除评论:是请按1,否请按其它键");
                                        String s = sc.next();
                                        if ("1".equals(s)){
                                            // 获取用户要删除的评论
                                            System.out.println("请输入你要删除的评论ID");
                                            int commentId = sc.nextInt();
                                            // 根据博客 ID 获取博客的创建者 ID
                                            int createUserID = blogDao.findUserById(blogId);
                                            if (createUserID != 0){
                                                // 删除评论
                                                commentDao.deleteComment(commentId,user.getUserId(),createUserID);
                                            }

                                             

                                        }

                                        /********** End **********/
                                    }
                                    break;
                                case 3:
                                    System.out.println("请输入你要删除的博客ID");
                                    blogId = sc.nextInt();
                                    // 删除博客
                                    blogDao.deleteBlog(blogId, user);
                                    break;
                                case 4:
                                    // 获取用户键盘输入信息
                                    System.out.println("请输入你要修改的博客ID");
                                    blogId = sc.nextInt();
                                    System.out.println("请输入修改后的博客标题");
                                    blogTitle = sc.next();
                                    System.out.println("请输入修改后的博客内容");
                                    blogContent = sc.next();
                                    System.out.println("请输入修改后的博客类型");
                                    typeName = sc.next();
                                    // 查询博客类型是否存在
                                    blogType = blogTypeDao.findBlogType(typeName);
                                    if (blogType != null){
                                        // 将博客信息存入博客对象中
                                        blog = new Blog();
                                        blog.setBlogId(blogId);
                                        blog.setBlogTitle(blogTitle);
                                        blog.setBlogContent(blogContent);
                                        blog.setUser(user);
                                        blog.setBlogType(blogType);
                                        // 修改博客
                                        blogDao.updateBlog(blog);
                                    }else {
                                        System.out.println("博客类型不存在!");
                                    }
                                    break;
                                case 5:
                                    flag1 = false;
                                    break;
                                case 6:
                                    // 调用 findMyComments 方法查询自己发布的评论
                                    commentDao.findMyComments(user);


                                    break;
                                default:
                                    System.out.println("你的输入有误,请重新输入!");
                                    break;
                            }
                        }while (flag1);
                    }else{
                        System.out.println("用户名或密码不正确!");
                    }
                    break;
                case 2:
                    user = new User();
                    // 获取键盘输入的用户信息
                    System.out.println("请输入你要注册的用户名");
                    userName = sc.next();
                    System.out.println("请输入你要注册的密码");
                    passWord = sc.next();
                    System.out.println("请输入你要注册的手机号");
                    phone = sc.next();
                    // 将用户信息存入用户对象中
                    user.setUserName(userName);
                    user.setPassWord(passWord);
                    user.setPhone(phone);
                    // 调用 register 方法,将用户信息传入其中,判断注册是否成功
                    boolean result = userDao.register(user);
                    if (result) {
                        System.out.println("注册成功!");
                    }else{
                        System.out.println("注册失败!");
                    }
                    break;
                case 3:
                    // 设置状态为 false,退出系统
                    flag = false;
                    System.out.println("退出系统!");
                    break;
                default:
                    System.out.println("你的输入有误,请重新输入!");
                    break;
            }
        } while (flag);
    }
}

 

step12/com/dao/BlogDao.java

package com.dao;

import com.pojo.Blog;
import com.pojo.BlogType;
import com.pojo.User;
import com.util.DBConnection;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class BlogDao {
    static Connection conn = null; // 连接对象
    static PreparedStatement ps = null; // 预编译
    static ResultSet rs = null; // 结果集

    public boolean addBlog(Blog blog) {
        boolean result = false;
        // 插入博客数据到博客表中
        try {
            conn = DBConnection.getConnection();
            String sql = "insert into t_blog (blogTitle,blogContent,userId,typeId) values (?,?,?,?)";
            ps = conn.prepareStatement(sql);
            ps.setString(1, blog.getBlogTitle());
            ps.setString(2, blog.getBlogContent());
            ps.setInt(3, blog.getUser().getUserId());
            ps.setInt(4, blog.getBlogType().getTypeId());
            int i = ps.executeUpdate();
            // 判断是否添加成功
            if (i == 1) {
                result = true;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * 功能:查询所有博客
     */
    public void findAllBlogs() {
        // 通过三表关联查询,查询所有的博客
        try {
            conn = DBConnection.getConnection();
            String sql = "select t.blogId blogId,t.blogTitle blogTitle,t.blogContent blogContent,t.typeName,t_user.userName userName from(select t_blog.*,blog_type.typeName from t_blog left join blog_type on t_blog.typeId = blog_type.typeId) t left join t_user on t.userId = t_user.userId;";
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            // 输出查询结果
            System.out.println("blogId\tblogTitle\tblogContent\ttypeName\tuserName");
            while (rs.next()){
                int blogId = rs.getInt("blogId");
                String blogTitle = rs.getString("blogTitle");
                String blogContent = rs.getString("blogContent");
                String typeName = rs.getString("typeName");
                String userName = rs.getString("userName");
                System.out.println(blogId+"\t"+blogTitle+"\t"+blogContent+"\t"+typeName+"\t"+userName);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    /**
     * 功能 查询自己创建的博客
     * 参数 user
     */
    public void findMyBlogs(User user) {
        // 通过三表关联查询,查询自己创建的博客
        try {
            conn = DBConnection.getConnection();
            String sql = "select blog.*,blog_type.typeName from (select * from t_blog where userId = ?)blog left join blog_type on blog.typeId = blog_type.typeId";
            ps = conn.prepareStatement(sql);
            ps.setInt(1,user.getUserId());
            rs = ps.executeQuery();
            // 输出查询结果
            System.out.println("我创建的博客如下:");
            System.out.println("blogId\tblogTitle\tblogContent\ttypeName");
            while (rs.next()){
                int blogId = rs.getInt("blogId");
                String blogTitle = rs.getString("blogTitle");
                String blogContent = rs.getString("blogContent");
                String typeName = rs.getString("typeName");
                System.out.println(blogId+"\t"+blogTitle+"\t"+blogContent+"\t"+typeName);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    /**
     * 功能 根据指定博客 ID 删除自己所创建的博客
     * 参数 blogId
     * 参数 user
     */
    public void deleteBlog(int blogId, User user) {
        // 根据用户 ID 和 博客 ID 删除对应的博客信息
        try {
            conn = DBConnection.getConnection();
            String sql = "delete from t_blog where userId = ? and blogId = ?";
            ps = conn.prepareStatement(sql);
            ps.setInt(1, user.getUserId());
            ps.setInt(2, blogId);
            int i = ps.executeUpdate();
            // 判断是否删除成功
            if (i == 1) {
                System.out.println("博客删除成功!");
            }else {
                System.out.println("博客删除失败!");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    /**
     * 查询博客是否存在
     */


    /**
     * 功能 根据博客 ID 修改自己创建的博客
     * 参数 blog
     */
    public void updateBlog(Blog blog) {
        try {
            conn = DBConnection.getConnection();
            String sql = "update t_blog set blogTitle = ?,blogContent = ?,typeId = ? where userId = ? and blogId = ?";
            ps = conn.prepareStatement(sql);
            ps.setString(1,blog.getBlogTitle());
            ps.setString(2,blog.getBlogContent());
            ps.setInt(3, blog.getBlogType().getTypeId());
            ps.setInt(4, blog.getUser().getUserId());
            ps.setInt(5, blog.getBlogId());
            int i = ps.executeUpdate();
            // 判断是否删除成功
            if (i == 1) {
                System.out.println("博客修改成功!");
            }else {
                System.out.println("博客修改失败!");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    /**
     * 功能 根据博客 ID 查询指定博客
     * 参数 blogId
     */
    public void findBlogById(int blogId) {
        // 根据博客 ID 查询指定博客
        try {
            conn = DBConnection.getConnection();
            String sql = "select t.blogTitle blogTitle,t.blogContent blogContent,t.typeName,t_user.userName userName from(select blog.*,blog_type.typeName from (select * from t_blog where blogId = ?)blog left join blog_type on blog.typeId = blog_type.typeId) t left join t_user on t.userId = t_user.userId;";
            ps = conn.prepareStatement(sql);
            ps.setInt(1,blogId);
            rs = ps.executeQuery();
            // 输出查询结果
            System.out.println("blogId\tblogTitle\tblogContent\ttypeName\tuserName");
            while (rs.next()){
                String blogTitle = rs.getString("blogTitle");
                String blogContent = rs.getString("blogContent");
                String typeName = rs.getString("typeName");
                String userName = rs.getString("userName");
                System.out.println(blogId+"\t"+blogTitle+"\t"+blogContent+"\t"+typeName+"\t"+userName);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

    /**
     * 功能 根据博客标题模糊查询博客
     * 参数 blogTitle
     */
    public void findBlogByTitle(String blogTitle) {
        // 根据博客标题模糊查询博客
        try {
            conn = DBConnection.getConnection();
            String sql = "select t.blogId blogId,t.blogTitle blogTitle,t.blogContent blogContent,t.typeName,t_user.userName userName from(select blog.*,blog_type.typeName from (select * from t_blog where blogTitle like ?)blog left join blog_type on blog.typeId = blog_type.typeId) t left join t_user on t.userId = t_user.userId;";
            ps = conn.prepareStatement(sql);
            ps.setString(1,"%"+blogTitle+"%");
            rs = ps.executeQuery();
            // 输出查询结果
            System.out.println("blogId\tblogTitle\tblogContent\ttypeName\tuserName");
            while (rs.next()){
                int blogId = rs.getInt("blogId");
                String b = rs.getString("blogTitle");
                String blogContent = rs.getString("blogContent");
                String typeName = rs.getString("typeName");
                String userName = rs.getString("userName");
                System.out.println(blogId+"\t"+b+"\t"+blogContent+"\t"+typeName+"\t"+userName);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

    public boolean checkBlogById(int blogId) {
        boolean result = false;
        // 根据博客 ID 查询指定博客
        try {
            conn = DBConnection.getConnection();
            String sql = "select * from t_blog where blogId = ?";
            ps = conn.prepareStatement(sql);
            ps.setInt(1,blogId);
            rs = ps.executeQuery();
            // 输出查询结果
            if (rs.next()){
                result = true;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return result;
    }


    // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
    /********** Begin **********/
    /**
     * 功能 根据博客 ID 查询创建者 ID
     * 参数 blogId
     * 返回值 创建者 ID
     */
    public int findUserById(int blogId) {
        // 根据博客 ID 查询创建者 ID
        try {
            conn = DBConnection.getConnection();
            String sql = "select * from t_blog where blogId = ?";
            ps = conn.prepareStatement(sql);
            ps.setInt(1,blogId);
            rs = ps.executeQuery();
            // 输出查询结果
            if (rs.next()){
                return rs.getInt("userId");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }



        return 0;
    }
    /********** End **********/
}

step12/com/dao/CommentDao.java 

package com.dao;

import com.pojo.Comment;
import com.pojo.User;
import com.util.DBConnection;

import java.sql.*;

public class CommentDao {
    static Connection conn = null; // 连接对象
    static PreparedStatement ps = null; // 预编译
    static ResultSet rs = null; // 结果集



    /**
     * 功能 添加评论
     * 参数 comment
     */
    public void addComment(Comment comment) {
        try {
            conn = DBConnection.getConnection();
            String sql = "insert into t_comment (commentContent,blogId,createTime,userId) values (?,?,?,?)";
            ps = conn.prepareStatement(sql);
            ps.setString(1, comment.getCommentContent());
            ps.setInt(2, comment.getBlog().getBlogId());
            ps.setTimestamp(3, new Timestamp(comment.getDate().getTime()));
            ps.setInt(4, comment.getUser().getUserId());
            int i = ps.executeUpdate();
            // 判断是否添加成功
            if (i == 1) {
                System.out.println("评论发布成功!");
            }else {
                System.out.println("评论发布失败!");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    /**
     * 功能 查询自己发步的评论
     * @param user
     */
    public void findMyComments(User user) {
        // 通过三表关联查询,查询自己发步的评论
        try {
            conn = DBConnection.getConnection();
            String sql = "select t_blog.blogId blogId,t_blog.blogTitle blogTitle,t_blog.blogContent blogContent,comment.commentContent from (select * from t_comment where userId = ?)comment left join t_blog on comment.blogId = t_blog.blogId";
            ps = conn.prepareStatement(sql);
            ps.setInt(1,user.getUserId());
            rs = ps.executeQuery();
            // 输出查询结果
            System.out.println("我发布的评论如下:");
            System.out.println("blogId\tblogTitle\tblogContent\tcommentContent");
            while (rs.next()){
                int blogId = rs.getInt("blogId");
                String blogTitle = rs.getString("blogTitle");
                String blogContent = rs.getString("blogContent");
                String commentContent = rs.getString("commentContent");
                System.out.println(blogId+"\t"+blogTitle+"\t"+blogContent+"\t"+commentContent);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }


    /**
     * 功能 查询博客的所有评论
     * 参数 blogId
     */
    public void findCommentById(int blogId) {
        // 根据 ID 查询博客的所有评论
        try {
            conn = DBConnection.getConnection();
            String sql = "select t.blogId blogId,t.blogTitle blogTitle,t.blogContent blogContent,t.commentContent,t_user.userName from (select t_blog.blogId blogId,t_blog.blogTitle blogTitle,t_blog.blogContent blogContent,comment.commentContent,comment.userId userId from (select * from t_comment where blogId = ?)comment left join t_blog on comment.blogId = t_blog.blogId)t left join t_user on t.userId = t_user.userId\n";
            ps = conn.prepareStatement(sql);
            ps.setInt(1,blogId);
            rs = ps.executeQuery();
            // 输出查询结果
            System.out.println("博客的评论如下:");
            System.out.println("blogId\tblogTitle\tblogContent\tcommentContent\tuserName");
            while (rs.next()){
                String blogTitle = rs.getString("blogTitle");
                String blogContent = rs.getString("blogContent");
                String commentContent = rs.getString("commentContent");
                String userName = rs.getString("userName");
                System.out.println(blogId+"\t"+blogTitle+"\t"+blogContent+"\t"+commentContent+"\t"+userName);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }
    // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
    /********** Begin **********/
    /**
     * 功能 删除评论
     * @param commentId
     * @param userId
     * @param createUserId
     */
    public void deleteComment(int commentId,int userId,int createUserId) {
        try {
            // 删除评论
            String sql = "delete from t_comment  where commentId= ? and (userId = ? or ? = ?);";
            ps = conn.prepareStatement(sql);
            ps.setInt(1, commentId);
            ps.setInt(2, userId);
            ps.setInt(3, createUserId);
            ps.setInt(4, userId);
            int i = ps.executeUpdate();
            // 判断是否删除成功
            if (i == 1) {
                System.out.println("评论删除成功!");
            }else {
                System.out.println("评论删除失败!");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }


    }


    /********** End **********/
}

 

 


http://www.kler.cn/a/464378.html

相关文章:

  • 【Yarn】通过JMX采集yarn相关指标的Flink任务核心逻辑
  • Keepalived + LVS 搭建高可用负载均衡及支持 Websocket 长连接
  • 消息中间件类型都有哪些
  • Python爬虫 - 豆瓣图书数据爬取、处理与存储
  • Jellyfin播放卡顿,占CPU的解决方法
  • I2C(一):存储器模式:stm32作为主机对AT24C02写读数据
  • 汇编语言:从键盘输入数字字符,(计算阶乘),以无符号十进制形式输出(分支、循环程序)
  • Wend看源码-Java.util 工具类学习(上)
  • CertiK《Hack3d:2024年度安全报告》(附报告全文链接)
  • 【Java 学习】Comparable接口 和 Comparator接口,掌控排序逻辑解析,深入 Comparable 和 Comparator 的优雅切换
  • linux进阶
  • Kafka优势剖析-分布式架构
  • 迅为RK3568开发板编译Android12源码包-设置屏幕配置
  • [人工智能] 结合最新技术:Transformer、CLIP与边缘计算在提高人脸识别准确率中的应用
  • halcon中的BLOB与灰度直方图的分析与理解
  • 华为iotda sdk发送消息无法更新quickstartpython问题解决
  • 丢弃法hhhh
  • python中subprocess指定用户与传递环境变量
  • 【重庆】《政务数字化应用费用测算规范》(T/CDCIDA 001—2023)-省市费用标准解读系列36
  • 单片机的存储器类型
  • DC-DC 降压转换器设计提示和技巧
  • Echart实现3D饼图示例
  • 【DSP/matlab】fftshift 是什么意思?在信号处理中有什么作用?
  • C#编写的盘符图标修改器 - 开源研究系列文章
  • STM32CUBEIDE FreeRTOS操作教程(十二):std dynamic memory 标准动态内存
  • 电子应用设计方案82:智能 AI 椅子系统设计