1.eclipse的基本概念
eclipse是一个备受推崇的选择。它作为一个开放源代码项目,已经成为许多开发人员的首选工具。以下是eclipse的基本概念和为什么它值得成为您的首选IDE的一些原因:
开源和跨平台:eclipse是一个开源项目,意味着它具有强大的社区支持和持续的发展。作为一个跨平台的IDE,eclipse可以在多个操作系统上运行,包括Windows、Mac和Linux,使其成为一个非常灵活和可访问的开发工具。
强大的插件生态系统:eclipse提供了一个丰富的插件生态系统,允许开发人员根据自己的需求来定制和扩展IDE。无论是在Java开发、Web开发、移动应用开发还是其他领域,eclipse都有各种插件可供选择,从而使您可以根据自己的项目需求进行定制。
多语言支持:eclipse不仅仅是一个专注于Java的IDE,它还支持许多其他编程语言,如C/C++、Python、PHP等。这使得它成为多语言开发团队的理想选择,可以在同一个环境中处理不同语言的项目。
强大的调试和测试工具:eclipse提供了丰富而强大的调试和测试工具,可以帮助您更轻松地识别和修复代码中的问题。它提供了断点调试、变量监视、性能分析等功能,使您能够更有效地进行代码调试和测试。
功能丰富的项目管理:eclipse具有强大的项目管理功能,可以轻松地创建、导入、管理和构建项目。它提供了丰富的工程模板和自动化构建工具,使您能够更加高效地组织和管理项目结构。
社区支持和文档资源:由于eclipse拥有庞大的用户社区,您可以轻松地找到关于eclipse的各种教程、文档和资源。这将帮助您快速入门并解决可能遇到的问题。
总之,eclipse是一个功能强大、灵活且可定制的IDE,适用于各种开发需求。它的开源性质和跨平台支持使其成为许多开发人员的首选。无论您是初学者还是有经验的开发者,eclipse都能提供一个强大且友好的开发环境,使您能够更高效地编写、测试和管理项目。
2.eclipse导入企业级项目
- 通过import导入同事提供项目源码文件
- 因为同事的电脑环境与自己的可能不一样,所有需要通过build path统一环境
- 查看数据源,更换数据源的账户密码为自己的
- 导入项目所需要的数据库脚本
2.1项目演示
(1).👀运行我们的eclipse然后在Project Explorer窗口右击选中Import进行导入
(2)选择General下面的Existing Projects into Workspace
(3) 选择自己需要导入的项目
注意:
对于复选框【Copy projects into workspace】来说如果是导入工作空间之外的项目可以选上 也可以不选,但是建议勾选。
勾选上,会保留工作空间外的项目然后复制一份到你的工作空间内,此时会有两个项目,而在 Eclipse中修改的只是复制到工作空间中的那个项目,源文件项目不会动(所以建议勾选);
如果不勾选,修改的自然是源文件项目了;
如果导入的就是工作空间中已有的项目,该复选框不能勾选,勾选上会报“该项目已经存在”的错误。
若要导入的工程显示为灰色不可选,点击右侧【Refresh】按钮,就会变为可选状态。
(4)这时候项目已经导入成功了,但是还存在小问题
(5) 找到刚刚导入的项目右击Build Path
注意:每个Tomcat 的版本不一样,一定不要忘记换成自己的。
2.2代码展示
首先写实体类,根据数据库的属性来写;
package com.zking.entity; public class Student { // 学生编号 private int sid; //学生姓名 private String sname; //学生年龄 private int age; public Student() { // TODO Auto-generated constructor stub } public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Student(int sid, String sname, int age) { super(); this.sid = sid; this.sname = sname; this.age = age; } @Override public String toString() { return "Student [sid=" + sid + ", sname=" + sname + ", age=" + age + "]"; } }
接着写dao方法,增删改查;
package com.zking.dao; import java.util.List; import com.zking.entity.Student; import com.zking.util.BaseDao; import com.zking.util.PageBean; import com.zking.util.StringUtils; public class StudentDao extends BaseDao<Student>{ public List<Student> list(Student sudent,PageBean pageBean) throws Exception{ String sql = "select * from t_mvc_student where 1 =1 "; int sid = sudent.getSid(); String sname = sudent.getSname(); if(StringUtils.isNotBlank(sname)) { sql += " and sname like '%"+sname+"%'"; } if(sid != 0) { sql += " and sid = "+sid; } return super.executeQuery(sql, Student.class, pageBean); } public void add(Student Student) throws Exception { String sql = "insert into t_mvc_student values(?,?,?)"; super.executeUpdate(sql, Student, new String[] {"sid","sname","age"}); } public void del(Student Student) throws Exception { String sql = "delete from t_mvc_student where sid=?"; super.executeUpdate(sql, Student, new String[] {"sid"}); } public void edit(Student Student) throws Exception { String sql = "update t_mvc_student set sname =?,age =? where sid=?"; super.executeUpdate(sql, Student, new String[] {"sname","age","sid",}); } }
接着写web层;
package com.zking.web; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.zking.dao.StudentDao; import com.zking.entity.Blog; import com.zking.entity.Student; import com.zking.framework.ActionSupport; import com.zking.framework.ModelDriver; import com.zking.util.PageBean; public class StudentAction extends ActionSupport implements ModelDriver<Student>{ private Student student = new Student(); private StudentDao studentDao =new StudentDao(); @Override public Student getModel() { return student; } // 关于学生的信息查询 public String list(HttpServletRequest req, HttpServletResponse resp) { // 查数据库的 PageBean pageBean = new PageBean(); pageBean.setRequest(req); try { List<Student> list = studentDao.list(student, pageBean); req.setAttribute("list", list); req.setAttribute("pageBean", pageBean); } catch (Exception e) { e.printStackTrace(); } return "list"; } // 增加 public String add(HttpServletRequest req, HttpServletResponse resp) { try { studentDao.add(student); } catch (Exception e) { e.printStackTrace(); } return "toList"; } // 删除 public String delete(HttpServletRequest req, HttpServletResponse resp) { try { studentDao.del(student); } catch (Exception e) { e.printStackTrace(); } return "toList"; } // 修改 public String edit(HttpServletRequest req, HttpServletResponse resp) { try { studentDao.edit(student); } catch (Exception e) { e.printStackTrace(); } return "toList"; } // 老师修改界面加载数据 public String toEdit(HttpServletRequest req, HttpServletResponse resp) { if(student.getSid() != 0) { try { List<Student> list = studentDao.list(student, null); req.setAttribute("s", list.get(0)); } catch (Exception e) { e.printStackTrace(); } } return "toEdit"; } }
接着就是后台的最后一个xml文件;
<action path="/student" type="com.zking.web.StudentAction"> <forward name="list" path="/studentList.jsp" redirect="false" /> <forward name="toList" path="/student.action?methodName=list" redirect="true" /> <forward name="toEdit" path="/studentEdit.jsp" redirect="false" /> </action>
接着写前台代码;
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://jsp.veryedu.cn" prefix="z"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <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> <c:if test="${empty list }"> <jsp:forward page="${pageContext.request.contextPath }/student.action?methodName=list"></jsp:forward> </c:if> <form class="form-inline" action="${pageContext.request.contextPath }/student.action?methodName=list" method="post"> <div class="form-group mb-2"> <input type="text" class="form-control-plaintext" name="sname" placeholder="请输入学生名称"> <!-- <input name="rows" value="20" type="hidden"> --> <!-- 不想分页 --> <input name="pagination" value="false" type="hidden"> </div> <button type="submit" class="btn btn-primary mb-2">查询</button> <a class="btn btn-primary mb-2" href="${pageContext.request.contextPath }/student.action?methodName=toEdit">新增</a> </form> <table class="table table-striped bg-success"> <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="s" items="${list }"> <tr> <td>${s.sid }</td> <td>${s.sname }</td> <td>${s.age }</td> <td> <a href="${pageContext.request.contextPath }/student.action?methodName=toEdit&sid=${s.sid}">修改</a> <a href="${pageContext.request.contextPath }/student.action?methodName=delete&sid=${s.sid}">删除</a> </td> </tr> </c:forEach> </tbody> </table> <!-- 这一行代码就相当于前面分页需求前端的几十行了 --> <z:page pageBean="${pageBean }"></z:page> </body> </html>
最后就是前台的新增和编辑页33
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>学生的编辑界面</title> </head> <body> <h1>学生的编辑页面</h1> <form action="${pageContext.request.contextPath }/student.action?methodName=${empty s ? 'add' : 'edit'}" method="post"> sid:<input type="text" name="sid" value="${s.sid }"><br> sname:<input type="text" name="sname" value="${s.sname }"><br> age:<input type="text" name="age" value="${s.age }"><br> <input type="submit"> </form> </body> </html>
3.效果展示