IDEA写代码心得

本文分享了使用IDEA进行MVC项目开发的心得,强调了代码分包的重要性,通常分为bean、dao、service和controller。介绍了实体类、DAO、业务类和服务类的职责,并提到通过DBUtil存放共通代码以避免重复。作者分享了初步学习的经验,旨在互相学习,共同进步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
一般写代码项目需要分包来写,一般氛围bean,dao,service和controller
在IDEA上实现简单的增删查改操作和,我开始对代码的放置进行规范化,大致氛围这几个包和文件
在这里插入图片描述

下面是各文件代码:
TbUser(实体类存放):

package bean;

public class TbUser {
    private int id;
    private String username;
    private String password;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "TbUser{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

TbUserDao(实现基本的增删改查操作代码):

package dao;
import bean.TbUser;
import util.DBUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class TbUserDao {

    static Connection connection = null;
    PreparedStatement preparedStatement = null;
    ResultSet resultSet = null;

    static {
        try{
            connection = DBUtil.getConnection(DBUtil.qudong,DBUtil.url);
        }catch (Exception e ){
            e.printStackTrace();
        }
    }
    //查找显示
    public List<TbUser> findAll(){

        List<TbUser> users = new ArrayList<>();
        try {
            //3.写sql
            String sql = "select * from tb_user";
            //4.得到statement对象
            preparedStatement = connection.prepareStatement(sql);
            //5.执行sql
            resultSet = preparedStatement.executeQuery();
            //6.处理结果集
            while (resultSet.next()) {
                TbUser user = new TbUser();
                user.setId(resultSet.getInt(1));
                user.setUsername(resultSet.getString(2));
                user.setPassword(resultSet.getString(3));
                users.add(user);
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBUtil.closeAll(resultSet,preparedStatement,connection);
        }
        return users;
    }
    //删除
    public void delete(int id){


        try {

            String sql = "delete from tb_user where id=?";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setInt(1,id);
            preparedStatement.executeUpdate();


        } catch (Exception e) {
            e.printStackTrace();
        } finally {

            DBUtil.closeAll(null,preparedStatement,connection);
        }
    }
     //修改
     public void change(int id){


         try {

             String sql="update tb_user set username='hhh' where username='hjj'";
             preparedStatement = connection.prepareStatement(sql);
             preparedStatement.executeUpdate();


         } catch (Exception e) {
             e.printStackTrace();
         } finally {

             DBUtil.closeAll(null,preparedStatement,connection);
         }
     }
     //添加
     public void Add(int id){


         try {

             String sql="insert into tb_user(username,password) "+"values('hjj1',1234)";
             preparedStatement = connection.prepareStatement(sql);
             preparedStatement.executeUpdate();

         } catch (Exception e) {
             e.printStackTrace();
         } finally {

             DBUtil.closeAll(null,preparedStatement,connection);
         }
     }
    //登录
    public boolean doLogin(String username,String password) throws SQLException {
        String sql = "select * from tb_user where username=? and password=?";
        preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setString(1,username);
        preparedStatement.setString(2,password);
        ResultSet resultSet = preparedStatement.executeQuery();
        if(resultSet.next()) {
            return true;
        }else {
            return false;
        }
    }
}

TbUserService(业务类):

package service;

import bean.TbUser;
import dao.TbUserDao;

import java.sql.SQLException;
import java.util.List;
import java.util.Scanner;

public class TbUserService {
    public static void main(String[] args) throws SQLException{
        Scanner input = new Scanner(System.in);
        System.out.println("---------------欢迎登入音乐管理系统---------------");
        System.out.println("请输入用户名:");
        String username = input.next();
        System.out.println("请输入密码:");
        String password = input.next();
        TbUserDao userDao = new TbUserDao();
        boolean flag = userDao.doLogin(username,password);
        if(flag){
            System.out.println("---------------欢迎来到用户管理系统---------------");
            System.out.println("1.音乐管理 2.用户管理 3.退出");
            System.out.println();
        }else{
            System.out.println("---------------登陆失败,请先注册---------------");
            System.out.println("请输入注册的用户名:");
        }
    }
}

DBUtil(把共同的代码存在,减少代码重复):

package util;

import java.sql.*;

public class DBUtil {
    public final static String qudong="com.mysql.jdbc.Driver";
    public final static String url="jdbc:mysql://127.0.0.1:3306/hjj?useSSL=true&characterEncoding=utf-8&user=root&password=123456";
    public static Connection getConnection(String qudong ,String url) throws Exception{
        //1.加载驱动
        Class.forName(qudong);
        //2.创建连接
        Connection connection = DriverManager.getConnection(url);
        System.out.println("创建连接成功");
        return connection;
    }

    public static void closeAll(ResultSet resultSet, PreparedStatement preparedStatement,Connection connection){
        if(resultSet!=null){
            try{
                resultSet.close();
            }catch (SQLException e ){
                e.printStackTrace();
            }
        }
        if(preparedStatement!=null){
            try{
                preparedStatement.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
        }
        if(connection!=null){
            try{
                connection.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
        }
    }
}

实时更新,我也是刚开始学,希望对大家有帮助,大家一起努力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值