Java入门初试

入门初试

确定需求

项目名称:旅途

  1. 数据库的增删改查
  2. 页面一级菜单和二级菜单显示。
  3. 图片上传与删除
  4. 侧边目录收放展示
  5. 页面分页

确定使用的工具,框架

springboot框架,idea,mysql,mybatis,maven

设计表结构

主人公信息表:

姓名,小名,身高,体重,年龄,出生年月,职业,爱好,家庭地址,备注

家族成员信息表:

姓名,年龄,出生年月,目前关系,未来关系,备注

线路:

年份,年龄,职位,重大事迹,备注

原型图设计

创建springboot项目

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

在这里插入图片描述

创建数据库表

在这里插入图片描述

springboot与数据库进行连接

server.port=8080

###数据库连接信息
#数据库驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#连接地址
spring.datasource.url=jdbc:mysql://localhost:3306/firstspringboot?serverTimezone=UTC&characterEncoding=utf-8&useSSL=flase
#数据库账户
spring.datasource.username=root
#数据库密码
spring.datasource.password=997573jqws
#配置jpa
#帮我们自动生成表结构
#spring.jpa.hibernate.ddl-auto=update

spring.jpa.show-sql=true

在这里插入图片描述

创建四个层

  1. controller:控制层 控制业务逻辑

    • 具体的业务模块流程的控制,controller层主要调用Service层里面的接口控制具体的业务流程,控制的配置也要在配置文件中进行。
  2. dao:持久层,主要是和数据库进行交互

    • dao层首先胡创建dao接口,接着就可以在配置文件中定义该接口的实现类;接着就可以在模块中调用dao的接口进行数据业务的处理,而不用关注此接口的具体实现是哪一个类,dao层的数据源和数据库实在配置文件中进行配置的。
  3. model:实体层,数据库在项目中的类

    • 主要用于定义与数据库对象的属性,提供get/set方法,带参和无参的构造方法。

    • @Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法

  4. service:业务层控制业务
    • 业务模块的逻辑应用设计,和DAO层一样都是先设计接口,再创建要实现的类,然后在配置文件中进行配置其实现的关联。接下来就可以在service层调用接口进行业务逻辑应用的处理。

    关于spring boot的四个层

    看到过一个很形象的比喻:

    Controller层像是一个服务员,他把客人(前端)点的菜(数据、请求的类型等)进行汇总什么口味、咸淡、量的多少,交给厨师长(Service层),厨师长则告诉沾板厨师(Dao 1)、汤料房(Dao 2)、配菜厨师(Dao 3)等(统称Dao层)我需要什么样的半成品,副厨们(Dao层)就负责完成厨师长(Service)交代的任务。

关于自动生成数据库表

@Entity注解和@Table注解都是Java Persistence API中定义的一种注解。

@Entity说明这个class是实体类,并且使用默认的orm规则,即class名就是数据库表中表明,class字段名即表中字段名。@Entity注解指明这是一个实体Bean。

import lombok.Data;
 
import javax.persistence.*;
 
@Data
@Entity(name = "t_book")
public class Book {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    @Column(name = "book_name")
    private String name;
    @Column(name = "book_author")
    private String author;
    private Float price;
    @Transient
    private String description;
}

@Entity注解表示该类是要给实体类,在羡慕启动时会根据该类自动生成一张表,表的名称即@Entity注解中name的值,如果不配置name,默认表明为类名
所有的实体类都要有主键,@Id注解表示该属性是一个主键,@GeneratedValue注解表示注解自动生成,strategy则表示主键的生成策略
默认情况下,生成的表中字段的名称就是实体类中属性的名称,通过@Column注解可以定制生成的字段属性,name表示该属性对应的数据表中字段的名称,nullable表示该字段非空
@Transient注解表示在生成数据库中的表时,该属性被忽略,即不生成对应的字段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,研究生初试录取系统可以使用Java Swing来实现图形界面。以下是一个简单的示例代码: ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class AdmissionSystem extends JFrame implements ActionListener { private JLabel nameLabel, idLabel, majorLabel, scoreLabel; private JTextField nameField, idField, majorField, scoreField; private JButton submitButton; public AdmissionSystem() { super("研究生初试录取系统"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container container = getContentPane(); container.setLayout(new GridLayout(5, 2)); nameLabel = new JLabel("姓名:"); idLabel = new JLabel("学号:"); majorLabel = new JLabel("专业:"); scoreLabel = new JLabel("分数:"); nameField = new JTextField(); idField = new JTextField(); majorField = new JTextField(); scoreField = new JTextField(); submitButton = new JButton("提交"); submitButton.addActionListener(this); container.add(nameLabel); container.add(nameField); container.add(idLabel); container.add(idField); container.add(majorLabel); container.add(majorField); container.add(scoreLabel); container.add(scoreField); container.add(new JLabel()); container.add(submitButton); pack(); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == submitButton) { String name = nameField.getText(); String id = idField.getText(); String major = majorField.getText(); String score = scoreField.getText(); // TODO: 将数据保存到数据库中 JOptionPane.showMessageDialog(this, "提交成功!"); } } public static void main(String[] args) { new AdmissionSystem(); } } ``` 这个程序创建了一个包含姓名、学号、专业和分数四个输入框和一个提交按钮的窗口。当用户点击提交按钮时,程序会将输入框中的数据保存到数据库中,并弹出一个提示框告诉用户提交成功。需要注意的是,这个程序中的保存数据到数据库的部分需要自己实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值