Java项目:编程训练系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)

源码获取:俺的博客首页 "资源" 里下载!

环境需要:

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 
4.数据库:MySql 5.7/8.0版本均可;
5.是否Maven项目:是;

技术栈:

后端:SpringBoot+Mybaits
前端:Vue + elementui

使用说明:

项目运行:
1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入地址:
前台地址:http://localhost:8080/springbootrpj39/front/index.html
后台地址:http://localhost:8080/springbootrpj39/admin/dist/index.html
管理员 abo 密码 abo
用户:用户1 密码: 123456

注意项目文件路径中不能含有中文、空格、特殊字符等,否则图片会上传不成功。

用户管理控制层:

@RestController
@RequestMapping("/user/")
public class UserController {

    @Autowired
    private IUserService iUserService;

    /**
     * 添加用户
     *
     * @param username
     * @param password
     * @param role
     * @return
     */
    @RequestMapping("add")
    public ServerResponse<String> add(String username, String password, String role) {
        return iUserService.add(username, password, role);

    }

    /**
     * 登录
     *
     * @param username
     * @param password
     * @param role
     * @param session
     * @return
     */
    @RequestMapping("login")
    public ServerResponse<User> login(String username, String password, String role, HttpSession session) {

        ServerResponse<User> login = iUserService.login(username, password, role);
        if (login.isSuccess()) {
            session.setAttribute("user", login.getData());
            System.out.println(session.getId());
        }
        return login;
    }

    /**
     * 根据id删除用户
     *
     * @param id
     * @return
     */
    @RequestMapping("del")
    public ServerResponse<String> del(Integer id) {
        return iUserService.del(id);
    }

    /**
     * 查找全部用户
     *
     * @param session
     * @return
     */
    @RequestMapping("findAll")
    public LayerResponse<List<User>> findAll(HttpSession session, Integer pageNum, Integer pageSize) {
        User user = (User) session.getAttribute(session.getId());
        ServerResponse<PageInfo<User>> all = iUserService.findAll("超级管理员", pageNum, pageSize);
        return ToLayerUtil.toLayer(all);
    }

    /**
     * 根据id查找用户
     *
     * @param id
     * @return
     */
    @RequestMapping("find")
    public ServerResponse<User> find(Integer id) {
        return iUserService.findById(id);
    }

    /**
     * 更新用户信息
     *
     * @param id
     * @param username
     * @param password
     * @return
     */
    @RequestMapping("update")
    public ServerResponse<String> update(Integer id, String username, String password,String role) {
        return iUserService.update(id, username, password,role);
    }
}

课程管理控制层:

@RestController
@RequestMapping("/classes/")
public class ClassesController {
    @Autowired
    private IClassesService iClassesService;

    @RequestMapping("add")
    public ServerResponse<String> add(String className, String classNum,Integer limit) {
        return iClassesService.add(className, classNum,limit);
    }

    @RequestMapping("del")
    public ServerResponse<String> del(Integer id) {
        return iClassesService.del(id);
    }

    @RequestMapping("update")
    public ServerResponse<String> update(Integer id, String className, String classNum,Integer limit) {
        return iClassesService.update(id, className, classNum,limit);
    }

    @RequestMapping("find")
    public ServerResponse<Classes> find(Integer id) {
        return iClassesService.find(id);
    }

    @RequestMapping("findAll")
    public ServerResponse<PageInfo<Classes>> findAll(Integer pageNum, Integer pageSize) {
        return iClassesService.findAll(pageNum, pageSize);
    }
}

教师管理控制层:

@RestController
@RequestMapping("/teacher/")
public class TeacherController {
    @Autowired
    private ITeacherService iTeacherService;

    @RequestMapping("add")
    public ServerResponse<String> add(String name, String phone,Integer countLimit) {
        return iTeacherService.add(name, phone,countLimit);
    }

    @RequestMapping("del")
    public ServerResponse<String> del(Integer id) {
        return iTeacherService.del(id);
    }

    @RequestMapping("update")
    public ServerResponse<String> update(Integer id, String name, String phone,Integer countLimit) {
        return iTeacherService.update(id, name, phone,countLimit);
    }

    @RequestMapping("find")
    public ServerResponse<Teacher> find(Integer id) {
        return iTeacherService.find(id);
    }

    @RequestMapping("findAll")
    public ServerResponse<PageInfo<Teacher>> findAll(Integer pageNum, Integer pageSize) {
        return iTeacherService.findAll(pageNum, pageSize);
    }
}

源码获取:俺的博客首页 "资源" 里下载!

以下是一个完整的 Java Spring Boot + MyBatis + Vue + Element UI + MySQL 的登录功能实现示例,包含后端和前端部分。 --- ### 一、后端(Spring Boot + MyBatis + MySQL) #### 1. 数据库表(MySQL) ```sql CREATE TABLE `user` ( `id` BIGINT PRIMARY KEY AUTO_INCREMENT, `username` VARCHAR(50) NOT NULL UNIQUE, `password` VARCHAR(100) NOT NULL ); ``` #### 2. Maven依赖(pom.xml) 确保你有以下核心依赖: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.3.1</version> </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> </dependencies> ``` #### 3. 实体类(User.java) ```java public class User { private Long id; private String username; private String password; // getters and setters } ``` #### 4. Mapper接口(UserMapper.java) ```java @Mapper public interface UserMapper { @Select("SELECT * FROM user WHERE username = #{username}") User findByUsername(String username); @Insert("INSERT INTO user(username, password) VALUES(#{username}, #{password})") void insert(User user); } ``` #### 5. 登录请求封装类(LoginRequest.java) ```java public class LoginRequest { private String username; private String password; // getters and setters } ``` #### 6. 控制器(AuthController.java) ```java @RestController @RequestMapping("/api/auth") public class AuthController { @Autowired private UserMapper userMapper; @PostMapping("/login") public ResponseEntity<?> login(@RequestBody LoginRequest request) { User user = userMapper.findByUsername(request.getUsername()); if (user == null || !user.getPassword().equals(request.getPassword())) { return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("用户名或密码错误"); } return ResponseEntity.ok("登录成功"); } } ``` --- ### 二、前端(Vue + Element UI) #### 1. 安装依赖 ```bash npm install axios element-ui ``` #### 2. 登录页面组件(Login.vue) ```vue <template> <el-form :model="form" label-width="80px" style="max-width: 400px; margin: 50px auto;"> <h2>用户登录</h2> <el-form-item label="用户名"> <el-input v-model="form.username" /> </el-form-item> <el-form-item label="密码"> <el-input v-model="form.password" type="password" show-password /> </el-form-item> <el-button type="primary" @click="submitForm">登录</el-button> </el-form> </template> <script> import axios from 'axios'; export default { data() { return { form: { username: '', password: '' } }; }, methods: { async submitForm() { try { const res = await axios.post('http://localhost:8080/api/auth/login', this.form); alert(res.data); } catch (err) { alert(err.response?.data || '登录失败'); } } } }; </script> ``` --- ### 三、运行说明 1. 后端启动 Spring Boot 应用,默认监听 `localhost:8080` 2. 前端使用 Vue CLI 或 Vite 创建项目,引入 Element UI 和 Axios 3. 确保前后端跨域问题已解决(Spring Boot 中可以加 `@CrossOrigin` 注解) 4. 测试时向数据库中插入一条用户数据进行测试 --- ### 四、安全性建议(生产环境需补充) - 使用 JWT Token 替代简单字符串返回 - 密码应加密存储(如 BCrypt) - 增加验证码机制 - 使用 HTTPS 协议传输数据 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OldWinePot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值