作为开发的新手小白,进入公司的第一件事(带详细举例)----企业级

简介: 作为开发的新手小白,进入公司的第一件事(带详细举例)----企业级

一.前言

作为开发的新手小白,一般进入公司之后会加入一个项目,让公司前辈带你,这样的话,首先我们一般刚开始应该做的都是很简单的一些代码开发,进入公司,同事或者老大会将他们完成的一些发给你然后需要在你的电脑上将它跑起来,听起来很容易,实际上有不少细节的地方,话不多说接下来看看把

二.操作

      2.1 对比

      比较按照企业级和自己敲的步骤

               2.1.1 自己敲(意味着从0开始)

  •        导入jary依赖
  •        导入工具类(utils类)
  •        配置框架配置文件以及web.xml
  •        编写实体类(entity),dao方法类(Dao),服务类(service),以及连接层(web)
  •        框架的配置文件进行配置
  •        页面的前端代码开发

               2.1.2 企业级(前辈们已经打好了基础)

  • 通过import导入同事提供项目源码文件
  • 因为同事的电脑环境与自己的可能不一样,所有需要通过build path统一环境
  • 查看数据源,更换数据源的账户密码为自己的
  • 导入项目所需要的数据库脚本

       2.2 演示(例子)-----导入已经改版本

       进入eclipse,在左侧菜单栏右击,会出现弹框,接着点击import
        然后点击第二个

然后选择文件路径,下一步勾选,select All,即可完成导入过程

放心,导入之后一般情况都会报错,因为大概率是版本不一样,在企业中版本问题很重要!!!

               根据下面3个步骤,调整版本

接着我们可以看到一个是Tomcat和jdk的版本一般情况是这两个,根据情况而定,如果不知道就问公司前辈们,然后我们选择编辑(EDIT) 就可以改变啦

        2.3 举例 -----以简单的增删改查(教师表)

       说白了,就是照猫画虎,一般公司会给你,就是模仿,然后改成我们需要的样子即可

        2.3.1 后台代码

       首先就是写实体类,根据数据库的属性来写实体类
package com.zking.entity;
/**
 * 教师实体类
 * 
 * @author yinzi
 * @2023年8月7日
 *
 */
public class Teacher {
  //教师ID
  private int tid;
  //教师姓名
  private String tname;
  //教师年龄
  private int tage;
  public int getTid() {
    return tid;
  }
  public void setTid(int tid) {
    this.tid = tid;
  }
  public String getTname() {
    return tname;
  }
  public void setTname(String tname) {
    this.tname = tname;
  }
  public int getTage() {
    return tage;
  }
  public void setTage(int tage) {
    this.tage = tage;
  }
  public Teacher(int tid, String tname, int tage) {
    super();
    this.tid = tid;
    this.tname = tname;
    this.tage = tage;
  }
  public Teacher(String tname, int tage) {
    super();
    this.tname = tname;
    this.tage = tage;
  }
  public Teacher() {
    super();
  }
  @Override
  public String toString() {
    return "Teacher [tid=" + tid + ", tname=" + tname + ", tage=" + tage + "]";
  }
}
接下来就可以写方法啦,
package com.zking.dao;
import java.util.List;
import com.zking.entity.Teacher;
import com.zking.util.BaseDao;
import com.zking.util.PageBean;
import com.zking.util.StringUtils;
/**
 * 功能方法
 * @author yinzi
 * @2023年8月7日
 *
 */
public class TeacherDao extends BaseDao<Teacher>{
  /**
   * 查询所有
   * @param teacher
   * @param pageBean
   * @return
   * @throws Exception
   */
  public List<Teacher> list(Teacher teacher,PageBean pageBean) throws Exception{
    String sql = "select * from t_mvc_teacher where 1=1 ";
    //获取模糊查询的参数
    String tname = teacher.getTname();
    int tid = teacher.getTid();
    //判断,如果不为空就进行SQL语句拼接
    if(StringUtils.isNotBlank(tname)) {
      sql += " and tname like '%"+tname+"%'";
    }
    //根据id去查找选择
    if(tid != 0) {
      sql += " and tid = "+tid;
    }
    return super.executeQuery(sql, Teacher.class, pageBean);
  }
  /**
   * 新增
   * @param teacher
   * @throws Exception
   */
  public void add(Teacher teacher) throws Exception {
    String sql = "insert into t_mvc_teacher values(?,?,?)";
    super.executeUpdate(sql, teacher, new String[] {"tid","tname","tage"});
  }
  /**
   * 删除
   * @param teacher
   * @throws Exception
   */
  public void del(Teacher teacher) throws Exception {
    String sql = "delete from t_mvc_teacher where tid=?";
    super.executeUpdate(sql, teacher, new String[] {"tid"});
  }
  /**
   * 修改
   * @param teacher
   * @throws Exception
   */
  public void update(Teacher teacher) throws Exception {
    String sql = "update t_mvc_teacher set tname=?,tage=? where tid=?";
    super.executeUpdate(sql, teacher, new String[] {"tname","tage","tid"});
  }
}
       写完方法之后就可以写Web层啦
package com.zking.web;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zking.dao.TeacherDao;
import com.zking.entity.Blog;
import com.zking.entity.Teacher;
import com.zking.framework.ActionSupport;
import com.zking.framework.ModelDriver;
import com.zking.util.PageBean;
public class TeacherAction extends ActionSupport implements ModelDriver<Teacher>{
  //实例化实体类和Dao方法
private Teacher tea=new Teacher();
private TeacherDao teadao=new TeacherDao();
/**
 * 查询所有的方法
 * @param req
 * @param resp
 * @return
 */
public String list(HttpServletRequest req, HttpServletResponse resp) {
  try {
    //调用查询所有的方法
    List<Teacher> list = teadao.list(tea, null);
    //保存
    req.setAttribute("list", list);
  } catch (Exception e) {
    e.printStackTrace();
  }
  return "list";
}
/**
 * 新增
 * @param req
 * @param resp
 * @return
 */
public String add(HttpServletRequest req, HttpServletResponse resp) {
  //调用新增方法
  try {
    teadao.add(tea);
  } catch (Exception e) {
    e.printStackTrace();
  }
  return "toList";
}
/**
 * 删除
 * @param req
 * @param resp
 * @return
 */
public String del(HttpServletRequest req, HttpServletResponse resp) {
  //调用删除方法
  try {
    teadao.del(tea);
  } catch (Exception e) {
    e.printStackTrace();
  }
  return "toList";
}
/**
 * 修改
 * @param req
 * @param resp
 * @return
 */
public String edit(HttpServletRequest req, HttpServletResponse resp) {
  try {
    teadao.update(tea);
  } catch (Exception e) {
    e.printStackTrace();
  }
  return "toList";
}
/**
 * 修改的查询所有(回显数据)
 * @param req
 * @param resp
 * @return
 */
public String update(HttpServletRequest req, HttpServletResponse resp) {
  //判空,是否选中
  if(tea.getTid()!=0) {
    //调用修改方法
    try {
      List<Teacher> list = teadao.list(tea, null);
      req.setAttribute("b", list.get(0));
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  return "toEdit";
}
@Override
public Teacher getModel() {
  return tea;
}
}
      最后就是配置文件 mvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<action path="/teacher" type="com.zking.web.TeacherAction">
    <forward name="list" path="/teacherList.jsp" redirect="false" />
    <forward name="toList" path="/teacher.action?methodName=list"
      redirect="true" />
    <forward name="toEdit" path="/teacherEdit.jsp" redirect="false" />
  </action>
</config>

      这样后台代码就完成了,接下来写前台代码

       2.3.2 前台代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://jsp.veryedu.cn" prefix="zking" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link
  href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.css"
  rel="stylesheet">
<script
  src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.js"></script>
<title>后台首页</title>
<style type="text/css">
.page-item input {
  padding: 0;
  width: 40px;
  height: 100%;
  text-align: center;
  margin: 0 6px;
}
.page-item input, .page-item b {
  line-height: 38px;
  float: left;
  font-weight: 400;
}
.page-item.go-input {
  margin: 0 10px;
}
</style>
</head>
<body>
  <form class="form-inline"
    action="${pageContext.request.contextPath }/teacher.action?methodName=list"
    method="post">
    <div class="form-group mb-2">
      <input type="text" class="form-control-plaintext" name="tname"
        placeholder="请输入教师名称名称"> 
    </div>
    <button type="submit" class="btn btn-primary mb-2">查询</button>
    <a class="btn btn-primary mb-2"
      href="${pageContext.request.contextPath }/teacher.action?methodName=update">新增</a>
  </form>
  <table class="table table-striped ">
    <thead>
      <tr>
        <th scope="col">教师ID</th>
        <th scope="col">教师姓名</th>
        <th scope="col">教师年龄</th>
        <th scope="col">操作</th>
      </tr>
    </thead>
    <tbody>
      <c:forEach  var="b" items="${list }">
      <tr>
        <td>${b.tid }</td>
        <td>${b.tname}</td>
        <td>${b.tage}</td>
        <td>
          <a href="${pageContext.request.contextPath }/teacher.action?methodName=update&tid=${b.tid}">修改</a>
          <a href="${pageContext.request.contextPath }/teacher.action?methodName=del&tid=${b.tid}">删除</a>
        </td>
      </tr>
      </c:forEach>
    </tbody>
  </table>
<%--  <!-- 这一行代码就相当于前面分页需求前端的几十行了 -->
  <z:page pageBean="${pageBean }"></z:page>
 --%>
</body>
</html>

下面是编辑和新增公用一个界面,因为是演示就做的比较简单

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="${pageContext.request.contextPath }/teacher.action?methodName=${empty b ? 'add' : 'edit'}" method="post">
id:<input type="text" name="tid" value="${b.tid }"><br>
姓名:<input type="text" name="tname" value="${b.tname }"><br>
年龄:<input type="text" name="tage" value="${b.tage }"><br>
<input type="submit">
</form>
</body>
</html>

最后来展示一下效果吧!!

 

相关文章
|
2月前
|
小程序
招聘小程序搭建教程
招聘小程序搭建教程
|
4月前
|
运维 搜索推荐 数据安全/隐私保护
如何巧用阿里云搭建公司网站?
现在是互联网时代,很多企业都注重互联网,通过做公司网站进行展示及营销。公司网站好处有以下几点:
54 0
|
5月前
|
弹性计算 监控 开发者
计算巢实操合集:软件供应商进阶管理实操(系列五)
弹性计算社区推出的面向开发者计算巢成长系列课程已经发布第五期了,本期将围绕软件供应商进阶管理实操,一步步教大家如何利用计算巢完成部署体验。
107668 63
|
5月前
|
前端开发 JavaScript NoSQL
假如你是一名专业的程序员,你将如何最快开发一个在线网站,并给出相应的代码及部署文档
假如你是一名专业的程序员,你将如何最快开发一个在线网站,并给出相应的代码及部署文档
23 0
|
5月前
|
弹性计算 供应链 开发者
计算巢实操合集:软件供应商发布服务实操(系列三)
弹性计算社区推出的面向开发者计算巢成长系列课程已经发布第三期了,本期将围绕软件供应商发布服务实操
|
8月前
|
运维 监控 关系型数据库
Linux运维工程师的注意事项?
Linux运维工程师的注意事项?
|
9月前
|
机器学习/深度学习 人工智能 弹性计算
【MindStudio训练营第一期】--【新手班】学习笔记②
【MindStudio训练营第一期】--【新手班】学习笔记②
|
12月前
|
C语言 Python
2018编程俱乐部18级新手任务(一)
2018编程俱乐部18级新手任务(一)
|
12月前
|
SQL Java 关系型数据库
【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第五节)
在上一节中,我们成功将数据从前台的JSP页面传递到了controller层,但是还没有写service层,老实说还有很多工作没有,尤其是和数据库的链接方面的,所以,这一节,我们专门来处理一下关于数据库连接方面的东西。
|
12月前
|
SQL 前端开发 Oracle
【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第八节)
【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第八节)
132 0