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