网络资源模板--Android Studio 宿舍管理系统

news2024/9/28 10:54:46

目录

一、项目演示

二、项目测试环境

三、项目详情

四、完整的项目源码 


一、项目演示

网络资源模板--宿舍管理系统

二、项目测试环境

三、项目详情

登录注册页面

### 功能总结

1. **用户输入**:
   - 允许用户输入用户名和密码。

2. **登录验证**:
   - 检查用户名和密码是否为空。
   - 使用 MD5 加密进行密码验证。

3. **信息存储**:
   - 可选择保存用户名和密码到 `SharedPreferences`。

4. **自动填充**:
   - 启动时从 `SharedPreferences` 获取并填充已保存的用户信息。

5. **导航功能**:
   - 登录成功后跳转到主界面。
   - 提供跳转到注册界面的选项。

6. **返回操作**:
   - 点击返回键时结束当前活动。

 private void init() {
        // 绑定界面组件
        this.et_username = (EditText) findViewById(R.id.username);
        this.et_pwd = (EditText) findViewById(R.id.pwd);
        this.save_pwd = (CheckBox) findViewById(R.id.save_pwd);
        this.login = (Button) findViewById(R.id.loginBtn);
        this.tv_register = (TextView) findViewById(R.id.register);
        getUserInfo(); // 获取用户信息
        // 设置登录按钮的点击事件
        this.login.setOnClickListener(v -> {
            LoginActivity.this.getEditString(); // 获取输入的用户名和密码
            String md5 = MD5Utils.md5(LoginActivity.this.passWord); // 对密码进行MD5加密
            LoginActivity loginActivity = LoginActivity.this;
            loginActivity.spPsw = loginActivity.readPsw(loginActivity.userName); // 读取存储的密码

            // 验证用户名和密码
            if (TextUtils.isEmpty(LoginActivity.this.userName)) {
                Toast.makeText(loginActivity, "请输入用户名", Toast.LENGTH_SHORT).show();
            } else if (TextUtils.isEmpty(LoginActivity.this.passWord)) {
                Toast.makeText(loginActivity, "请输入密码", Toast.LENGTH_SHORT).show();
            } else if (md5.equals(LoginActivity.this.spPsw)) {
                // 登录成功
                Toast.makeText(loginActivity, "welcome!" + LoginActivity.this.userName, Toast.LENGTH_SHORT).show();
                loginActivity.saveLoginInfo(loginActivity.userName, LoginActivity.this.passWord); // 保存登录信息
                loginActivity.saveLoginStatus(true, loginActivity.userName); // 更新登录状态
                Intent intent = new Intent();
                intent.putExtra("isLogin", true); // 设置返回值
                LoginActivity.this.setResult(-1, intent);
                LoginActivity.this.finish(); // 结束当前活动
                LoginActivity.this.startActivity(new Intent(LoginActivity.this, MainActivity.class)); // 跳转到主界面
            } else if (LoginActivity.this.spPsw == null || TextUtils.isEmpty(LoginActivity.this.spPsw) || md5.equals(LoginActivity.this.spPsw)) {
                // 用户名不存在
                Toast.makeText(loginActivity, "此用户名不存在", Toast.LENGTH_SHORT).show();
            } else {
                // 密码错误
                Toast.makeText(loginActivity, "密码错误", Toast.LENGTH_SHORT).show();
            }
        });
        // 设置注册文本的点击事件
        this.tv_register.setOnClickListener(v -> {
            LoginActivity.this.startActivity(new Intent(LoginActivity.this, RegisterActivity.class)); // 跳转到注册界面
        });
    }

这是 `RegisterActivity` 的 `init()` 方法代码段,主要用于初始化注册界面的组件并处理用户注册逻辑。以下是功能总结:

### 功能总结

1. **界面组件初始化**:
   - 绑定用户名输入框、密码输入框、确认密码输入框及返回按钮。

2. **返回操作**:
   - 点击返回按钮时,结束当前活动。

3. **注册按钮点击事件**:
   - 获取输入的用户名和密码。
   - 验证输入:
     - 检查用户名、密码和确认密码是否为空。
     - 检查两次输入的密码是否一致。
   - 如果用户名已存在,显示提示信息。
   - 注册成功后,保存用户信息,并设置结果返回给上一个活动。

### 总结
此方法负责初始化注册界面的组件,验证用户输入,并实现注册逻辑。通过友好的提示提高用户体验。

 public void init() {
        this.et_username = (EditText) findViewById(R.id.username);
        this.et_pwd = (EditText) findViewById(R.id.pwd);
        this.et_pwd_sure = (EditText) findViewById(R.id.pwd2);
        findViewById(R.id.iv_back).setOnClickListener(v -> {
            RegisterActivity.this.finish();
        });
        Button button = (Button) findViewById(R.id.registerBtn);
        this.register = button;
        button.setOnClickListener(v -> {
            RegisterActivity.this.getEditString();
            if (TextUtils.isEmpty(RegisterActivity.this.userName)) {
                Toast.makeText(RegisterActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();
            } else if (TextUtils.isEmpty(RegisterActivity.this.passWord)) {
                Toast.makeText(RegisterActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();
            } else if (TextUtils.isEmpty(RegisterActivity.this.passWord_sure)) {
                Toast.makeText(RegisterActivity.this, "请再次输入密码", Toast.LENGTH_SHORT).show();
            } else if (!RegisterActivity.this.passWord.equals(RegisterActivity.this.passWord_sure)) {
                Toast.makeText(RegisterActivity.this, "输入两次的密码不一样", Toast.LENGTH_SHORT).show();
            } else {
                RegisterActivity registerActivity = RegisterActivity.this;
                if (registerActivity.isExistUserName(registerActivity.userName)) {
                    Toast.makeText(RegisterActivity.this, "此账户名已经存在", Toast.LENGTH_SHORT).show();
                    return;
                }
                Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show();
                RegisterActivity registerActivity2 = RegisterActivity.this;
                registerActivity2.saveRegisterInfo(registerActivity2.userName, RegisterActivity.this.passWord);
                Intent intent = new Intent();
                intent.putExtra("userName", RegisterActivity.this.userName);
                RegisterActivity.this.setResult(-1, intent);
                RegisterActivity.this.finish();
            }
        });
    }

首页

功能总结

  1. 界面组件初始化:

    • 创建并绑定多个按钮,用于不同的宿舍管理操作(添加、删除、修改、查询、搜索)。
  2. 按钮点击事件:

    • 每个按钮绑定相应的点击事件,点击后启动不同的活动(例如 AddDormitoryActivityDeleteDormitoryActivity 等)。
  3. 退出提示对话框:

    • 点击“返回”按钮时,弹出确认对话框,询问用户是否退出。
    • 用户可以选择“否”继续留在主界面或选择“是”退出并返回登录界面。
  4. 清理用户数据:

    • 退出时清除用户的共享偏好设置,确保用户状态重置。
 public void onClick(View view) {
        switch (view.getId()) {
            case R.id.add_dormitory:
                startActivity(new Intent(this, AddDormitoryActivity.class));
                return;
            case R.id.btn_back:
                DigLogShow();
                return;
            case R.id.delete_dormitory:
                startActivity(new Intent(this, DeleteDormitoryActivity.class));
                return;
            case R.id.mod_dormitory:
                startActivity(new Intent(this, ModDormitoryActivity.class));
                return;
            case R.id.query_dormitory:
                startActivity(new Intent(this, QueryDormitoryActivity.class));
                return;
            case R.id.search_dormitory:
                startActivity(new Intent(this, SearchDormitoryActivity.class));
                return;
            default:
                return;
        }
    }

信息录入页面

功能总结

  1. 界面组件初始化:

    • 创建并绑定多个输入框(例如宿舍号、入住人、人数、类别、入住时间、楼层、备注)及按钮(保存、返回)。
  2. 初始化数据:

    • 如果活动是用来修改宿舍信息,从意图中获取现有宿舍数据并填充到输入框。
  3. 保存按钮点击事件:

    • 验证输入框是否为空,确保用户输入完整的信息。
    • 如果输入有效:
      • 检查宿舍号是否已存在,若不存在则插入新记录;若存在则更新记录。
    • 成功后显示确认对话框。
  4. 对话框:

    • 使用对话框提示用户操作成功与否,并提供继续或退出的选项。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="54.0dip"
        android:layout_alignParentTop="true"
        android:background="@color/main">

        <ImageView
            android:id="@id/iv_back"
            android:layout_width="54.0dip"
            android:layout_height="54.0dip"
            android:padding="8.0dip"
            android:src="@drawable/ic_back"
            app:tint="@color/white" />

        <TextView
            android:id="@+id/tv_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="宿舍信息录入"
            android:textColor="@color/white"
            android:textSize="18.0sp"
            android:textStyle="bold" />
    </FrameLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="30.0dip"
        android:orientation="vertical">

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/add_tv_number"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10.0dip"
                android:text="宿舍号"
                android:textColor="#ff000000"
                android:textSize="25.0sp" />

            <EditText
                android:id="@+id/add_et_number"
                android:layout_width="200.0dip"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20.0dip"
                android:layout_toRightOf="@id/add_tv_number"
                android:hint="请输入宿舍号"
                android:textSize="24.0sp" />
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/add_tv_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10.0dip"
                android:text="入住人"
                android:textColor="#ff000000"
                android:textSize="25.0sp" />

            <EditText
                android:id="@+id/add_et_name"
                android:layout_width="200.0dip"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20.0dip"
                android:layout_toRightOf="@id/add_tv_name"
                android:hint="请输入姓名"
                android:textSize="24.0sp" />
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/add_tv_much"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10.0dip"
                android:text="人数"
                android:textColor="#ff000000"
                android:textSize="25.0sp" />

            <EditText
                android:id="@+id/add_et_much"
                android:layout_width="200.0dip"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20.0dip"
                android:layout_toRightOf="@id/add_tv_much"
                android:hint="请输入人数"
                android:textSize="24.0sp" />
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/add_tv_sex"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10.0dip"
                android:text="类别"
                android:textColor="#ff000000"
                android:textSize="25.0sp" />

            <EditText
                android:id="@+id/add_et_sex"
                android:layout_width="200.0dip"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20.0dip"
                android:layout_toRightOf="@id/add_tv_sex"
                android:hint="请输入类别"
                android:textSize="24.0sp" />
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/add_tv_birthday"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10.0dip"
                android:text="入住时间"
                android:textColor="#ff000000"
                android:textSize="25.0sp" />

            <EditText
                android:id="@+id/add_et_birthday"
                android:layout_width="150.0dip"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20.0dip"
                android:layout_toRightOf="@id/add_tv_birthday"
                android:hint="例2023-10"
                android:textSize="24.0sp" />
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/add_tv_address"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10.0dip"
                android:text="楼层"
                android:textColor="#ff000000"
                android:textSize="25.0sp" />

            <EditText
                android:id="@+id/add_et_address"
                android:layout_width="200.0dip"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20.0dip"
                android:layout_toRightOf="@id/add_tv_address"
                android:hint="请输入几楼"
                android:textSize="15.0sp" />
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/add_tv_des"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10.0dip"
                android:text="备注"
                android:textColor="#ff000000"
                android:textSize="25.0sp" />

            <EditText
                android:id="@+id/add_et_des"
                android:layout_width="200.0dip"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20.0dip"
                android:layout_toRightOf="@id/add_tv_des"
                android:hint="请输入备注"
                android:textSize="24.0sp" />
        </RelativeLayout>
    </LinearLayout>

    <Button
        android:id="@+id/btn_save"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="40.0dip"
        android:layout_marginTop="30.0dip"
        android:layout_marginRight="40.0dip"
        android:background="@drawable/btn_common"
        android:text="录入"
        android:textColor="#ffffffff"
        android:textSize="18.0sp" />
</LinearLayout>

修改信息页面

功能总结

  1. 设置布局:

    • 调用 setContentView 来加载 activity_mod_dormitory 布局。
  2. 初始化组件:

    • 获取并初始化列表视图 (ListView) 和输入框 (EditText)。
    • 创建一个数据列表 (mData) 用于存储宿舍信息。
  3. 设置适配器:

    • 创建自定义适配器 Adapter_update 并将其设置到 ListView
  4. 数据库实例化:

    • 初始化 DbDormitory 对象,用于后续的数据库操作。
  5. 返回按钮监听:

    • 设置返回按钮的点击监听器,当用户点击时,结束当前活动。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="54.0dip"
        android:layout_alignParentTop="true"
        android:background="@color/main">

        <ImageView
            android:id="@id/iv_back"
            android:layout_width="54.0dip"
            android:layout_height="54.0dip"
            android:padding="8.0dip"
            android:src="@drawable/ic_back"
            app:tint="@color/white" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="修改信息"
            android:textColor="@color/white"
            android:textSize="18.0sp"
            android:textStyle="bold" />
    </FrameLayout>

    <LinearLayout
        android:id="@+id/rl2"
        android:layout_width="fill_parent"
        android:layout_height="50.0dip"
        android:layout_marginTop="20.0dip"
        android:gravity="center_vertical"
        android:orientation="horizontal">

        <EditText
            android:id="@+id/et_update"
            android:layout_width="250.0dip"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="20.0dip"
            android:background="@drawable/dialog_btn_bg"
            android:hint="请输入宿舍号"
            android:paddingLeft="10.0dip"
            android:paddingTop="10.0dip"
            android:paddingBottom="10.0dip"
            android:textSize="16.0sp">

            <requestFocus />
        </EditText>

        <ImageView
            android:id="@+id/update_iv"
            android:layout_width="40.0dip"
            android:layout_height="40.0dip"
            android:layout_marginLeft="20.0dip"
            android:layout_toRightOf="@id/et_update"
            android:onClick="onClick"
            android:src="@drawable/query" />
    </LinearLayout>

    <ListView
        android:id="@+id/update_lv"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/rl2"
        android:divider="#ffcdcdcd"
        android:dividerHeight="6.0dip"
        android:padding="10.0dip" />
</LinearLayout>

查询页面

删除页面

功能总结

  1. 设置布局:

    • 使用 setContentView 方法加载 activity_delete_dormitory 布局。
  2. 初始化组件:

    • 获取 ListView 和返回按钮 (ImageView) 的引用。
  3. 初始化数据库:

    • 创建 DbDormitory 对象,用于后续的数据库操作。
  4. 初始化数据列表:

    • 创建一个空的列表 mData,用于存储宿舍信息。
  5. 设置适配器:

    • 创建自定义适配器 Adapter_del,并将其设置为 ListView 的适配器。
  6. 数据加载:

    • 调用 loadData() 方法从数据库加载数据。
  7. 设置点击监听:

    • 设置返回按钮的点击事件,结束当前活动。

  @Override
    public void onCreate(Bundle bundle) {
        // Activity 创建时初始化视图、适配器及数据
        super.onCreate(bundle);
        setContentView(R.layout.activity_delete_dormitory);
        this.listView = (ListView) findViewById(R.id.del_lv);
        ivBack = findViewById(R.id.iv_back);
        this.dbDormitory = new DbDormitory(this);
        this.mData = new ArrayList();
        PrintStream printStream = System.out;
        printStream.println("长度为:" + this.mData.size());
        Adapter_del adapter_del = new Adapter_del(this, this.mData);
        this.adapter = adapter_del;
        this.listView.setAdapter((ListAdapter) adapter_del);
        loadData(); // 加载数据
        setLVClickListener(); // 设置列表项点击监听
        ivBack.setOnClickListener(v -> {
            finish();
        });
    }

四、完整的项目源码 

👇👇👇👇👇快捷获取方式👇👇👇👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2173238.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开启争对目标检测的100类数据集-信息收集

DataBall 助力快速掌握数据集的信息和使用方式。 目标检测项目数据集样例地址&#xff1a; gitcode: https://gitcode.com/DataBall/DataBall-detections-100s/overview github: https://github.com/TechLinkX/DataBall-detections-100s 请关注我们的专栏&#xff1a;DataBal…

Linux防火墙-常用命令,零基础入门到精通,收藏这一篇就够了

我们经过上小章节讲了Linux的部分进阶命令&#xff0c;我们接下来一章节来讲讲Linux防火墙。由于目前以云服务器为主&#xff0c;而云服务器基本上就不会使用系统自带的防火墙&#xff0c;而是使用安全组来代替了防火墙的功能&#xff0c;可以简单理解安全组就是web版的防火墙&…

binkw32dll缺失怎么办?免费的dll修复工具诊断解决(报错修复)

binkw32dll缺失怎么办&#xff1f; 在使用电脑尤其是运行视频游戏时&#xff0c;我们有时会遇到“binkw32.dll缺失”的错误提示。这是一个由RAD Game Tools开发的动态链接库文件&#xff0c;主要关联于视频游戏中的视频播放技术&#xff0c;负责压缩视频回放功能。当这个文件缺…

[大语言模型-论文精读] Diffusion Model技术-通过时间和空间组合扩散模型生成复杂的3D人物动作

​​​​​​Generation of Complex 3D Human Motion by Temporal and Spatial Composition of Diffusion Models L Mandelli, S Berretti - arXiv preprint arXiv:2409.11920, 2024 通过时间和空间组合扩散模型生成复杂的3D人物动作 摘要 本文提出了一种新的方法&#xff0…

Apache POI快速入门

介绍 Apache POl是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是&#xff0c;我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。 一般情况下&#xff0c;POI都是用于操作 Excel 文件。 Apache POI的主要组件包括&#xff1a; HS…

【开源免费】基于SpringBoot+Vue.JS服装销售平台(JAVA毕业设计)

博主说明&#xff1a;本文项目编号 T 054 &#xff0c;文末自助获取源码 \color{red}{T054&#xff0c;文末自助获取源码} T054&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

LeetCode从入门到超凡(四)深入浅出理解贪心算法

引言 大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年9月学习赛的LeetCode学习总结文档&#xff1b;本文主要讲解贪心算法。&#x1f495;&#x1f495;&#x1f60a; 介绍 贪心算法是一种经典的算法…

代码随想录Day 57|prim算法和kruskal算法精讲,题目:寻宝

提示&#xff1a;DDU&#xff0c;供自己复习使用。欢迎大家前来讨论~ 文章目录 图论part07**prim算法精讲**题目&#xff1a;53. 寻宝解题思路&#xff1a;Prim算法Kruskal算法总结Prim算法的核心步骤&#xff08;三部曲&#xff09;&#xff1a;关键数据结构&#xff1a;算法…

Rust 语言开发 ESP32C3 并在 Wokwi 电子模拟器上运行(esp-hal 非标准库、LCD1602、I2C)

文章目录 esp-rs 简介GithubRust 包仓库Wokwi 电子模拟器开发环境Rust 环境esp-rs 环境创建 ESP32C3 项目项目结构编译项目命令运行模拟器ESP32C3 烧录 esp-rs 简介 esp-rs 是一个专注于为 Espressif 系列芯片&#xff08;如 ESP32、ESP32-S2、ESP32-C3 等&#xff09;提供 Ru…

嵌入式边缘计算软硬件开发“1+X”考证建设方案

一、引言 随着物联网、大数据、人工智能等技术的飞速发展&#xff0c;嵌入式边缘计算作为连接物理世界与数字世界的桥梁&#xff0c;其重要性日益凸显。为了适应行业对高技能人才的需求&#xff0c;推动嵌入式边缘计算技术的普及与应用&#xff0c;特制定本“1X”考证建设方案…

本地部署开源在线PPT制作与演示应用PPTist并实现异地远程使用

文章目录 前言1. 本地安装PPTist2. PPTist 使用介绍3. 安装Cpolar内网穿透4. 配置公网地址5. 配置固定公网地址 前言 本文主要介绍如何在Windows系统环境本地部署开源在线演示文稿应用PPTist&#xff0c;并结合cpolar内网穿透工具实现随时随地远程访问与使用该项目。 PPTist …

Vue3(五) 组件通信大汇总

文章目录 一、props二、自定义事件三、mitt四、v-model1.v-model的本质2.v-model用在组件标签上3.更换modelValue4.更换modelValue时&#xff0c;可以在组件标签上多次使用v-model 五、$attrs六、$refs,与&#xffe5;parent1. 回顾标签ref属性修改组件信息2. $refs实现父修改所…

学校周赛(1)

A - Short Sort 题目&#xff1a; 思路&#xff1a; 本条题目只允许改一处地方&#xff0c;只有三个字母&#xff0c;我们可以直接枚举所有移动过的结果&#xff0c;同时使用哈希去记录其值&#xff0c;对于每一个输入我们都寻找是否有这个值记录&#xff0c;有则输出YES否则…

毕业设计选题:基于ssm+vue+uniapp的校园订餐小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…

数据库管理与开发的全面解决方案——Devart全线产品测评

在现代数据库管理和应用开发中&#xff0c;拥有一套高效且强大的工具是至关重要的。Devart&#xff0c;作为一家专业提供数据库开发和管理工具的公司&#xff0c;已经在行业内树立了坚实的声誉。其产品线涵盖了从数据库连接驱动到全面的数据集成和管理解决方案&#xff0c;满足…

读数据湖仓02数据抽象

1. 不同类型的数据 1.1. 不同类型的数据在存储方面有各自的特性&#xff0c;这些特性极大地影响了数据在数据湖仓中的存储和使用方式 1.2. 结构化数据 1.2.1. 在企业等组织中&#xff0c;只有少量的数据是结构化数据 1.2.2. 结构化数据是基于事务的数据&#xff0c;是组织日…

[spring]用MyBatis XML操作数据库 其他查询操作 数据库连接池 mysql企业开发规范 动态sql

文章目录 一. MyBatis XML配置文件1. 配置链接字符串和MyBatis2. 写持久层代码方法定义Interface方法实现xml测试 3. 增删改查增:删改查 二. 开发规范(mysql)三. 其他查询操作1. 多表查询2. #{} 和 ${}(面试题)使用区别 排序功能like查询 三. 数据库连接池四. 动态sql1. < i…

【补充】倒易点阵定义

晶体点阵&#xff1a;晶体内部结构在三维空间周期平移的客观存在的数学抽象&#xff0c;反映晶体实际原子排列。 倒易点阵&#xff1a;通过对晶体的正点阵进行傅里叶变换得到的&#xff0c;其中正点阵中每个阵点的位置矢量方向代表晶面族的法向&#xff0c;位置矢量的长度是晶…

C++ | Leetcode C++题解之第442题数组中重复的数据

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> findDuplicates(vector<int>& nums) {int n nums.size();vector<int> ans;for (int i 0; i < n; i) {int x abs(nums[i]);if (nums[x - 1] > 0) {nums[x - 1] -nums[…

我把101篇公众号文章喂给了AI,终于,「小爱」可以为我代言了!

前段时间&#xff0c;搞了个微信 AI 小助理-小爱(AI)&#xff0c;爸妈玩的不亦乐乎。 零风险&#xff01;零费用&#xff01;我把AI接入微信群&#xff0c;爸妈玩嗨了&#xff0c;附教程&#xff08;下&#xff09; 目前小爱(AI)仍在持续迭代中&#xff0c;受到了很多粉丝朋友…