第3关:博客系统之创建博客

打印 上一主题 下一主题

主题 810|帖子 810|积分 2430

任务形貌
本关任务:在之前的关卡中,我们乐成的注册了信息并登录了博客账号,如今我们需要实现发表博客的功能。
相关数据说明
MySQL 数据库 mydb;
用户表 t_user;
列名    类型    非空    注释
userId    int    √    用户 ID 主键 自增
userName    varchar    √    用户名
passWord    varchar    √    用户密码
phone    varchar    √    用户密码
博客表 t_blog;
列名    类型    非空    注释
blogId    int    √    博客 ID 主键 自增
blogTitle    varchar    √    博客标题
blogContent    varchar    √    博客内容
userId    varchar    √    创建人ID,也就是用户id
typeId    varchar    √    类型ID,也就是博客类型
博客类型表 blog_type;
列名    类型    非空    注释
typeId    int    √    类型ID 主键 自增
typeName    varchar    √    类型名称
MySQL 连接设置:
Driver:com.mysql.jdbc.Driver;
URL:jdbc:mysql://localhost:3306/mydb?characterEncoding=UTF-8;
user:root;
password:123123。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 中实现博客系统中发表博客的功能,详细要求如下:
在 com.pojo 包中有一个 Blog 类,该类有博客的属性和举动方法;
在 com.pojo 包中有一个 BlogType 类,该类有博客类型的属性和举动方法;
登录以后,实现菜单栏中创建博客的功能;
用户进入创建博客模块后,输出:“请输入你要创建的博客标题”、“请输入你要创建的博客内容”、“请输入你的博客类型”,然后获取键盘输入的信息,调用 BookTypeDao 类的 findBlogType(String blogType) 方法获取博客类型信息;
findBlogType(String blogType) 方法实现根据博客类型获取博客类型对象信息的功能,如果有该博客类型,则返回博客类型对象,如果不存在,则返回 null;
如果返回结果为 null,则输出“博客类型不存在!”;如果不为 null,将创建博客所需信息、用户对象和博客类型对象放入博客对象中,调用 BlogDao.addBlog(Blog blog) 方法判断博客是否创建乐成,如果返回 true,则输出:“博客创建乐成!”,否则输出:“博客创建失败”;
addBlog(Blog blog) 方法可以将博客信息插入用 t_blog 表中,如果创建乐成,则返回 true,否则返回 false。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
可在右侧“测试结果”区查看详细的测试集详情。
测试输入:
1
sunfeng
123456789
1
Java简介
Java是一门面向对象编程语言,不但吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java
5
3
预期输出:
**********接待进入博客系统**********
**********1. 登录**********
**********2. 注册**********
**********3. 退出系统**********
请输入你要进行的操作:
请输入你的用户名
请输入你的密码
1. 创建博客
2. 查看博客
3. 删除博客
4. 修改博客
5. 返回上一级菜单
请输入你要进行的操作:
请输入你要创建的博客标题
请输入你要创建的博客内容
Java是一门面向对象编程语言,不但吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
请输入你的博客类型
博客创建乐成!
1. 创建博客
2. 查看博客
3. 删除博客
4. 修改博客
5. 返回上一级菜单
请输入你要进行的操作:
**********接待进入博客系统**********
**********1. 登录**********
**********2. 注册**********
**********3. 退出系统**********
请输入你要进行的操作:
退出系统!
step3/com/menu/Menu.java
  1. package com.menu;
  2. import com.dao.BlogDao;
  3. import com.dao.BlogTypeDao;
  4. import com.dao.UserDao;
  5. import com.pojo.Blog;
  6. import com.pojo.BlogType;
  7. import com.pojo.User;
  8. import java.util.Scanner;
  9. public class Menu {
  10.     public static void main(String[] args) {
  11.         UserDao userDao = new UserDao();
  12.         boolean flag = true;
  13.         User user;
  14.         Blog blog;
  15.         BlogDao blogDao = new BlogDao();
  16.         BlogTypeDao blogTypeDao = new BlogTypeDao();
  17.         Scanner sc = new Scanner(System.in);
  18.         do {
  19.             System.out.println("**********欢迎进入博客系统**********");
  20.             System.out.println("**********1. 登录**********");
  21.             System.out.println("**********2. 注册**********");
  22.             System.out.println("**********3. 退出系统**********");
  23.             System.out.println("请输入你要进行的操作:");
  24.             int x = sc.nextInt();
  25.             String userName;
  26.             String passWord;
  27.             String phone;
  28.             switch (x) {
  29.                 case 1:
  30.                     // 获取键盘输入的用户信息
  31.                     System.out.println("请输入你的用户名");
  32.                     userName = sc.next();
  33.                     System.out.println("请输入你的密码");
  34.                     passWord = sc.next();
  35.                     user = userDao.login(userName,passWord);
  36.                     if (user != null) {
  37.                         boolean flag1 = true;
  38.                         do{
  39.                             System.out.println("1. 创建博客");
  40.                             System.out.println("2. 查看博客");
  41.                             System.out.println("3. 删除博客");
  42.                             System.out.println("4. 修改博客");
  43.                             System.out.println("5. 返回上一级菜单");
  44.                             System.out.println("请输入你要进行的操作:");
  45.                             int y = sc.nextInt();
  46.                             String blogTitle;
  47.                             String blogContent;
  48.                             String typeName;
  49.                             switch (y){
  50.                                 // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
  51.                                 /********** Begin **********/
  52.                                 case 1:
  53.                                     // 获取键盘输入的用户信息
  54.                                     System.out.println("请输入你要创建的博客标题");
  55.                                     blogTitle = sc.next();
  56.                                     System.out.println("请输入你要创建的博客内容");
  57.                                     blogContent = sc.next();
  58.                                     System.out.println("请输入你的博客类型");
  59.                                     typeName = sc.next();
  60.                                     // 查询博客类型是否存在
  61.                                     BlogType blogType = blogTypeDao.findBlogType(typeName);
  62.                                     if (blogType != null){
  63.                                         // 将博客信息放入博客对象中
  64.                                        blog = new Blog();
  65.                                        blog.setBlogTitle(blogTitle);
  66.                                        blog.setBlogContent(blogContent);
  67.                                        blog.setUser(user);
  68.                                        blog.setBlogType(blogType);
  69.                                        // 验证博客是否创建成功
  70.                                         boolean b = blogDao.addBlog(blog);
  71.                                         if (b){
  72.                                             System.out.println("博客创建成功!");
  73.                                         }else{
  74.                                             System.out.println("博客创建失败!");
  75.                                         }
  76.                                     }else {
  77.                                         System.out.println("博客类型不存在!");
  78.                                     }
  79.                                     break;
  80.                                 /********** End **********/
  81.                                 case 5:
  82.                                     flag1 = false;
  83.                                     break;
  84.                                 default:
  85.                                     System.out.println("你的输入有误,请重新输入!");
  86.                                     break;
  87.                             }
  88.                         }while (flag1);
  89.                     }else{
  90.                         System.out.println("用户名或密码不正确!");
  91.                     }
  92.                     break;
  93.                 case 2:
  94.                     user = new User();
  95.                     // 获取键盘输入的用户信息
  96.                     System.out.println("请输入你要注册的用户名");
  97.                     userName = sc.next();
  98.                     System.out.println("请输入你要注册的密码");
  99.                     passWord = sc.next();
  100.                     System.out.println("请输入你要注册的手机号");
  101.                     phone = sc.next();
  102.                     // 将用户信息存入用户对象中
  103.                     user.setUserName(userName);
  104.                     user.setPassWord(passWord);
  105.                     user.setPhone(phone);
  106.                     // 调用 register 方法,将用户信息传入其中,判断注册是否成功
  107.                     boolean result = userDao.register(user);
  108.                     if (result) {
  109.                         System.out.println("注册成功!");
  110.                     }else{
  111.                         System.out.println("注册失败!");
  112.                     }
  113.                     break;
  114.                 case 3:
  115.                     // 设置状态为 false,退出系统
  116.                     flag = false;
  117.                     System.out.println("退出系统!");
  118.                     break;
  119.                 default:
  120.                     System.out.println("你的输入有误,请重新输入!");
  121.                     break;
  122.             }
  123.         } while (flag);
  124.     }
  125. }
复制代码
 step3/com/dao/BlogTypeDao.java
  1. package com.dao;
  2. import com.pojo.BlogType;
  3. import com.util.DBConnection;
  4. import java.sql.Connection;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. public class BlogTypeDao {
  9.     static Connection conn = null; // 连接对象
  10.     static PreparedStatement ps = null; // 预编译
  11.     static ResultSet rs = null; // 结果集
  12.     /**
  13.      * 功能 查找博客类型是否存在
  14.      * 参数 blogType
  15.      * 返回值 博客类型对象
  16.      */
  17.     public BlogType findBlogType(String typeName) {
  18.         // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
  19.         /********** Begin **********/
  20.         BlogType blogType = new BlogType();
  21.         // 判断博客类型是否存在
  22.         try {
  23.             conn = DBConnection.getConnection();
  24.             String sql = "select * from blog_type where typeName = ?";
  25.             ps = conn.prepareStatement(sql);
  26.             ps.setString(1, typeName);
  27.             rs = ps.executeQuery();
  28.             // 如果存在,返回该博客类型对象信息
  29.             if (rs.next()){
  30.                 blogType.setTypeId(rs.getInt("typeId"));
  31.                 blogType.setTypeName(rs.getString("typeName"));
  32.                 return blogType;
  33.             }
  34.         } catch (SQLException e) {
  35.             e.printStackTrace();
  36.         }
  37.         // 不存在则返回 null
  38.         return null;
  39.         /********** End **********/
  40.     }
  41. }
复制代码
 step3/com/dao/BlogDao.java
  1. package com.dao;
  2. import com.pojo.Blog;
  3. import com.pojo.BlogType;
  4. import com.util.DBConnection;
  5. import java.sql.Connection;
  6. import java.sql.PreparedStatement;
  7. import java.sql.ResultSet;
  8. import java.sql.SQLException;
  9. public class BlogDao {
  10.     static Connection conn = null; // 连接对象
  11.     static PreparedStatement ps = null; // 预编译
  12.     static ResultSet rs = null; // 结果集
  13.     public boolean addBlog(Blog blog) {
  14.         // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
  15.         /********** Begin **********/
  16.         boolean result = false;
  17.         // 插入博客数据到博客表中
  18.         try {
  19.             conn = DBConnection.getConnection();
  20.             String sql = "insert into t_blog (blogTitle,blogContent,userId,typeId) values (?,?,?,?)";
  21.             ps = conn.prepareStatement(sql);
  22.             ps.setString(1, blog.getBlogTitle());
  23.             ps.setString(2, blog.getBlogContent());
  24.             ps.setInt(3, blog.getUser().getUserId());
  25.             ps.setInt(4, blog.getBlogType().getTypeId());
  26.             int i = ps.executeUpdate();
  27.             // 判断是否添加成功
  28.             if (i == 1) {
  29.                 result = true;
  30.             }
  31.         } catch (SQLException e) {
  32.             e.printStackTrace();
  33.         }
  34.         return result;
  35.     }
  36.     /********** End **********/
  37. }
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

没腿的鸟

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表