java面向对象高级分层实例_测试类(main方法所在的类)

简介: java面向对象高级分层实例_测试类(main方法所在的类)
package bdqn.studentSys;
/**
 * main类
 * @author Administrator
 *
 */
import java.util.*;
import bdqn.studentSys.Dao.StudentDao;
import bdqn.studentSys.Dao.impl.StudentDaoImpl;
import bdqn.studentSys.entity.Student;
public class StudentSys {
  public static void main(String []args){
    Scanner in=new Scanner(System.in);
    //查询全部学生
    getAllStudent();
    
    //添加
    System.out.println("==============添加学生信息==============");
    System.out.println("请输入学生姓名:");
    String name=in.next();
    System.out.println("请输入学生密码:");
    String pwd=in.next();
    System.out.println("请输入学生年龄:");
    int age=in.nextInt();
    System.out.println("请输入学生性别:");
    String sex=in.next();
    Student stu=new Student();
    stu.setName(name);
    stu.setPwd(pwd);
    stu.setAge(age);
    stu.setSex(sex);
    addStudent(stu);
    
    //修改
    System.out.println("==============修改学生信息==============");
    System.out.println("请输入要修改的学生学号:");
    int no=in.nextInt();
    System.out.println("请输入学生姓名:");
    String name1=in.next();
    System.out.println("请输入学生密码:");
    String pwd1=in.next();
    System.out.println("请输入学生年龄:");
    int age1=in.nextInt();
    System.out.println("请输入学生性别:");
    String sex1=in.next();
    Student stu1=new Student();
    stu.setName(name1);
    stu.setPwd(pwd1);
    stu.setAge(age1);
    stu.setSex(sex1);
    updateStudent(stu1);
    
    //删除
    System.out.println("==============删除学生信息==============");
    System.out.println("请输入要删除的学生学号:");
    int no1=in.nextInt();
    delStudent(no1);
  }
  static StudentDao sdao=new StudentDaoImpl();
  //查询全部学生
  static void getAllStudent(){
    List<Student> slist=sdao.getAllStudent();
    System.out.println("姓名\t\t密码\t\t年龄\t\t性别");
    for (Student stu : slist) {
      System.out.print(stu.getName()+"\t\t");
      System.out.print(stu.getPwd()+"\t\t");
      System.out.print(stu.getAge()+"\t\t");
      System.out.println(stu.getSex()+"\t\t");
    }
  }
  
  //添加学生信息
  static void addStudent(Student stu){
    int rel=sdao.addStudent(stu);
    try {
      if(rel>0){
        System.out.println("添加成功!");
      }else{
        System.out.println("添加失败!");
      }
    } catch (Exception e) {
      System.out.println("操作异常!"+e);
    }
  }
  //修改学生信息
  static void updateStudent(Student stu){
    int rel=sdao.UpdateStudent(stu);
    try {
      if(rel>0){
        System.out.println("修改成功!");
      }else{
        System.out.println("添加失败!");
      }
    } catch (Exception e) {
      // TODO: handle exception
      System.out.println("操作异常"+e);
    }
  }
  //删除学生信息
  static void delStudent(int stuno){
    int rel=sdao.delStudent(stuno);
    try {
      if(rel>0){
        System.out.println("删除成功!");
      }else{
        System.out.println("删除失败");
      }
    } catch (Exception e) {
      // TODO: handle exception
      System.out.println("操作异常"+e);
    }
  }
}


相关文章
|
6天前
|
JavaScript 测试技术
Vue 3 单元测试实例
Vue 3 单元测试实例
17 4
|
6天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
10天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
50 4
|
8天前
|
数据采集 自然语言处理 数据库
深入体验阿里云通义灵码:测试与实例展示
阿里云通义灵码是一款强大的代码生成工具,支持自然语言描述需求,快速生成高质量代码。它在测试、代码质量和用户体验方面表现出色,能够高效地生成 Python 和 Java 等语言的代码,助力开发者提升开发效率和代码质量。无论是新手还是资深开发者,都能从中受益匪浅。
|
11天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
27 2
|
8天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
17天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?
|
5天前
|
安全 Java 开发者
深入解读JAVA多线程:wait()、notify()、notifyAll()的奥秘
在Java多线程编程中,`wait()`、`notify()`和`notifyAll()`方法是实现线程间通信和同步的关键机制。这些方法定义在`java.lang.Object`类中,每个Java对象都可以作为线程间通信的媒介。本文将详细解析这三个方法的使用方法和最佳实践,帮助开发者更高效地进行多线程编程。 示例代码展示了如何在同步方法中使用这些方法,确保线程安全和高效的通信。
25 9
|
8天前
|
存储 安全 Java
Java多线程编程的艺术:从基础到实践####
本文深入探讨了Java多线程编程的核心概念、应用场景及其实现方式,旨在帮助开发者理解并掌握多线程编程的基本技能。文章首先概述了多线程的重要性和常见挑战,随后详细介绍了Java中创建和管理线程的两种主要方式:继承Thread类与实现Runnable接口。通过实例代码,本文展示了如何正确启动、运行及同步线程,以及如何处理线程间的通信与协作问题。最后,文章总结了多线程编程的最佳实践,为读者在实际项目中应用多线程技术提供了宝贵的参考。 ####
|
4天前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin