Eclipse搭建SSH框架(下)包含增删查改-JAVA
2017-12-22 17:59
447 查看
在上篇博客里,介绍了Tomcat的配置与Struts2的搭建,如果对这个还不会的童鞋去看一下我的上篇博客 Eclipse搭建SSH框架(上)-JAVA,今天我们接着上篇博客的内容,继续搭建我们滴SSH框架。
(一)在上篇博客的基础上整合Spring:
在整合Spring之前到把准备工作做好
1.首先要映射数据库表,在src下的entity中创建User.java类(里面对应表的字段,生成get set方法):
然后在同一级创建User.hbm.xml文件 :
在说一下Hibernate映射文件(类与表之间的关系映射):
2.写完entity包后 接下来写dao包,在src下的dao包中创建TowDao.java的接口:
接着在src下的dao包中创建impl包,然后创建TowDaoimpl.java文件,然后实现TowDao接口:
3.接着在src下的service包下面创建Towsercice.java接口,然后继承dao中的TowDao接口:
接着在src下的service包中创建impl包,然后创建Towserviceimpl.java文件,然后实现Towsercice接口:
实现Towsercice接口后 要在Towserviceimpl的前面加上”@Transactional”注解 ,再创建一个私有的公共遍历 private TowDao towDao;,然后生成TowDao 的 get set方法,接着在每一个方法中返回dao中对应的方法:
service写完后,接着在dao下的impl中写交互数据库的语句:
在src->dao->impl->TowDaoimpl中 注册sessionFactory工厂
在写完TowDaoimpl后,接下来要在 src->action 中调用dao的方法来获取数据再返回界面:
上面的写完后,先创建一个登陆的jsp:
然后要在jsp中接收数据,所以要修改/SSH/WebContent/jsp/regsuccess.jsp:
准备完后在src下创建名为:applicationContext.xml文件(和struts.xml是一级):
以上都配置好后 启动项目 效果如下:
这样就查询就成功了。接下来就 增 删 改就简单多了。
先在sshTow->WebContent->jsp->下创建一个fail.jsp,是失败返回的jsp:
然后在创建insertuser.jsp(用于新增):
顺便把修改的updata.jsp也创建了:
上面的jsp都创建好后,在struts.xml中补全跳转jsp:
接下来就是补全src->dao->impl->TowDaoimpl.java中的增 删 改 操作了:
然后在补全src->co->cf->action->OneAction.java中的增 删 改 :
最后附一张全图:
到这里搭建SSH到这里就结束啦,代码中有有些地方没有封装的,就看着来封装),如有疑问,请给我留言~~ QQ:304966802
源码->Eclipse搭建SSH框架-JAVA(源码+数据库)
注意:
1.这里的calss是对应包名 不要写错了喔! Dao Action Service 的配置 id要对应
(一)在上篇博客的基础上整合Spring:
在整合Spring之前到把准备工作做好
1.首先要映射数据库表,在src下的entity中创建User.java类(里面对应表的字段,生成get set方法):
package com.cf.entity; public class User { private Integer id; private String name; private String pwd; private String userName; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + ", userName=" + userName + "]"; } }
然后在同一级创建User.hbm.xml文件 :
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping> <class name="com.cf.entity.User" table="USERDETAILS"><!-- name:对应包名 table:对应数据库表名 --> <id name="id"> <column name="ID" /><!-- id:对应数据库表的id generator:生成策略--> <generator class="increment" /> </id> <property name="userName" type="java.lang.String"><!-- name:对应数据库字段名 type:对应数据库字段类型 --> <column name="userName" /> </property> <property name="pwd" type="java.lang.String"> <column name="pwd" /> </property> <property name="name" type="java.lang.String"> <column name="name" /> </property> </class> </hibernate-mapping>
在说一下Hibernate映射文件(类与表之间的关系映射):
<hibernate-mapping> <class name="类名" table="表名"> <!-- 主键 --> <id name="主键名"> <column name="主键列" /> <!-- 主键生成器 --> <generator class="生成策略" /> </id> & 4000 lt;property name="属性名" type="数据类型"> <column name="列名" length="长度" not-null="是否不为空" /> </property> </class> </hibernate-mapping>
2.写完entity包后 接下来写dao包,在src下的dao包中创建TowDao.java的接口:
package com.cf.dao; import java.util.List; import com.cf.entity.User; public interface TowDao { public List<User> findUser(); public void insert(User TowDao); public boolean UpData(User user); public boolean Delect(int userid); public User findData(int userid); }
接着在src下的dao包中创建impl包,然后创建TowDaoimpl.java文件,然后实现TowDao接口:
package com.cf.dao.impl; import java.util.List; import com.cf.dao.TowDao; import com.cf.entity.User; public class TowDaoimpl implements TowDao{ @Override public List<User> findUser() { // TODO Auto-generated method stub return null; } @Override public void insert(User TowDao) { // TODO Auto-generated method stub } @Override public boolean UpData(User user) { // TODO Auto-generated method stub return false; } @Override public boolean Delect(int userid) { // TODO Auto-generated method stub return false; } @Override public User findData(int userid) { // TODO Auto-generated method stub return null; } }
3.接着在src下的service包下面创建Towsercice.java接口,然后继承dao中的TowDao接口:
package com.cf.service; import com.cf.dao.TowDao; public interface Towsercice extends TowDao{ }
接着在src下的service包中创建impl包,然后创建Towserviceimpl.java文件,然后实现Towsercice接口:
package com.cf.service.impl; import java.util.List; import com.cf.entity.User; import com.cf.service.Towsercice; public class Towserviceimpl implements Towsercice{ @Override public List<User> findUser() { // TODO Auto-generated method stub return null; } @Override public void insert(User TowDao) { // TODO Auto-generated method stub } @Override public boolean UpData(User user) { // TODO Auto-generated method stub return false; } @Override public boolean Delect(int userid) { // TODO Auto-generated method stub return false; } @Override public User findData(int userid) { // TODO Auto-generated method stub return null; } }
实现Towsercice接口后 要在Towserviceimpl的前面加上”@Transactional”注解 ,再创建一个私有的公共遍历 private TowDao towDao;,然后生成TowDao 的 get set方法,接着在每一个方法中返回dao中对应的方法:
package com.cf.service.impl; import java.util.List; import org.springframework.transaction.annotation.Transactional; import com.cf.dao.TowDao; import com.cf.entity.User; import com.cf.service.Towsercice; @Transactional//注解 public class Towserviceimpl implements Towsercice{ private TowDao towDao; @Override public List<User> findUser() { // TODO Auto-generated method stub return towDao.findUser(); } @Override public void insert(User TowDao) { // TODO Auto-generated method stub towDao.insert(TowDao); } @Override public boolean UpData(User user) { // TODO Auto-generated method stub return towDao.UpData(user); } @Override public boolean Delect(int userid) { // TODO Auto-generated method stub return towDao.Delect(userid); } @Override public User findData(int userid) { // TODO Auto-generated method stub return towDao.findData(userid); } public TowDao getTowDao() { return towDao; } public void setTowDao(TowDao towDao) { this.towDao = towDao; } }
service写完后,接着在dao下的impl中写交互数据库的语句:
在src->dao->impl->TowDaoimpl中 注册sessionFactory工厂
package com.cf.dao.impl; import java.util.List; import org.hibernate.Query; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.cf.dao.TowDao; import com.cf.entity.User; public class TowDaoimpl extends HibernateDaoSupport implements TowDao{ @Autowired SessionFactory sessionFactory;//org/springframework/orm/hibernate3/HibernateTemplate //SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象 @Override public List<User> findUser() { List<User> list=null; Query query=sessionFactory.openSession().createQuery("from User"); list=query.list(); return list; } @Override public void insert(User TowDao) { // TODO Auto-generated method stub } @Override public boolean UpData(User user) { // TODO Auto-generated method stub return false; } @Override public boolean Delect(int userid) { // TODO Auto-generated method stub return false; } @Override public User findData(int userid) { // TODO Auto-generated method stub return null; } }
在写完TowDaoimpl后,接下来要在 src->action 中调用dao的方法来获取数据再返回界面:
package com.cf.action; import java.util.ArrayList; import java.util.List; import com.cf.entity.User; import com.cf.service.Towsercice; import com.opensymphony.xwork2.ActionSupport; public class OneAction extends ActionSupport{ /** * */ private static final long serialVersionUID = 1L; private Towsercice towsercice; User user; private List<User> list=new ArrayList<User>(); private int id; private String userName; private String pwd; private String name; List<User> Listuser; public String execute(){ String name=this.userName; String password=this.pwd; String text=this.name; System.out.println(password); Listuser=towsercice.findUser(); //request.getSession().setAttribute("user", list); return SUCCESS; } public Towsercice getTowsercice() { return towsercice; } public void setTowsercice(Towsercice towsercice) { this.towsercice = towsercice; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } public List<User> getList() { return list; } public void setList(List<User> list) { this.list = list; } 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 getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<User> getListuser() { return Listuser; } public void setListuser(List<User> listuser) { Listuser = listuser; } }
上面的写完后,先创建一个登陆的jsp:
<%@ 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> <form action="executeLogin.action" method="post" name="regForm"> <table> <tr> <td>用户名</td> <td><input type="text" name="userName" size="15" /></td> </tr> <tr> <td>密码</td> <td><input type="pwd" name="pwd" size="15" /></td> </tr> <tr> <td>姓名</td> <td><input type="text" name="name" size="15" /></td> </tr> <tr> <td colspan="2"><input type="submit" value="注册"></td> </tr> </table> </form> </body> </html>
然后要在jsp中接收数据,所以要修改/SSH/WebContent/jsp/regsuccess.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ 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"> <title>Insert title here</title> </head> <body> <h1>登录成功</h1> <table> <thead> <tr> <td>名字</td> <td>密码</td> <td>用户名</td> </tr> </thead> <c:forEach items="${Listuser}" var="Listuser"> <tr> <td style="display:none;">${Listuser.id}</td> <td>${Listuser.name}</td> <td>${Listuser.pwd}</td> <td>${Listuser.userName}</td> <td><a href="delectUserLogin.action?id=${Listuser.id}">删除</a></td> <td><a href="findDataLogin.action?id=${Listuser.id}">修改</a></td> </tr> </c:forEach> </table> <a href="/SSH/jsp/insertuser.jsp">新增</a> </body> </html>
准备完后在src下创建名为:applicationContext.xml文件(和struts.xml是一级):
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd" default-autowire="byName"> <!-- 开启注解 --> <context:annotation-config /> <!-- spring 扫描路径,注意当前工程只需要扫描dao和service,srpingmvc或者struts2注解才有变化 --> <context:component-scan base-package="cf.it" /><!-- 这里要对应包名 --> <!-- 配置数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /><!-- 指定连接数据库的驱动 --> <property name="url" value="jdbc:mysql://localhost:3306/test" /><!-- 指定连接数据库的URL --> <property name="username" value="root" /><!-- 指定连接数据库的用户名 --> <property name="password" value="root" /><!-- 指定连接数据库的密码 --> </bean> <!-- 配置SessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> <prop key="hibernate.connection.autocommit">true </prop> <prop key="hibernate.show_sql">true</prop> <prop key="sql_format">true</prop> </props> </property> <property name="mappingResources"> <!-- 指定hibernate映射文件 --> <list> <value>com/cf/entity/User.hbm.xml</value> <!-- 这里就是我们的框架用到Hibernate,写映射表后,但是别忘了配置文件中指定。 --> </list> </property> </bean> <bean id="loginService" class="com.cf.service.impl.Towserviceimpl"></bean> <bean id="loginServer" class="com.cf.action.OneAction" scope="prototype"> <property name="loginService" ref="loginService"></property> </bean> <!-- Dao配置 --> <bean id="towDao" class="com.cf.dao.impl.TowDaoimpl"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- Action配置 --> <bean id="reg" class="com.cf.action.OneAction" scope="prototype"> <property name="towsercice" ref="towsercice"></property> </bean> <!-- Service配置 --> <bean id="towsercice" class="com.cf.service.impl.Towserviceimpl"> <property name="towDao" ref="towDao"></property> </bean> <!-- 配置声明式事务管理(采用注解的方式) 不写这个事务是操作不了数据库的 比如:不能新增 不能删除 --> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- 开启注解事务 --> <tx:annotation-driven transaction-manager="txManager" /> </beans>
以上都配置好后 启动项目 效果如下:
这样就查询就成功了。接下来就 增 删 改就简单多了。
先在sshTow->WebContent->jsp->下创建一个fail.jsp,是失败返回的jsp:
<%@ 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>Insert title here</title> </head> <body> 失败!!! </body> </html>
然后在创建insertuser.jsp(用于新增):
<%@ 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>Insert title here</title> </head> <body> <form action="insertuserLogin.action" method="post" name="regForm"> <table> <tr> <td>用户名</td> <td><input type="text" name="userName" size="15" /></td> </tr> <tr> <td>密码</td> <td><input type="pwd" name="pwd" size="15" /></td> </tr> <tr> <td>姓名</td> <td><input type="text" name="name" size="15" /></td> </tr> <tr> <td colspan="2"><input type="submit" value="新增"></td> </tr> </table> </form> </body> </html>
顺便把修改的updata.jsp也创建了:
<%@ 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>Insert title here</title> </head> <body> ${user.userName} <form action="UpDataLogin.action" method="post" name="regForm"> <table> <tr> <td>用户名</td> <td><input type="text" name="userName" value="${user.userName}" size="15" /></td> <td><input style="display: none" type="text" name="id" value="${user.id}" size="15" /></td> </tr> <tr> <td>密码</td> <td><input type="pwd" name="pwd" value="${user.pwd}" size="15" /></td> </tr> <tr> <td>姓名</td> <td><input type="text" name="name" value="${user.name}"size="15" /></td> </tr> <tr> <td colspan="2"><input type="submit" value="修改"></td> </tr> </table> </form> </body> </html>
上面的jsp都创建好后,在struts.xml中补全跳转jsp:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="action" extends="struts-default" > <action name="*Login" class="com.cf.action.OneAction"> <result name="success">/jsp/regsuccess.jsp</result> <result name="loginsuccess">/jsp/index.jsp</result> <result name="fail">/jsp/fail.jsp</result> <result name="insert">/jsp/insert.jsp</result> <result name="updata">/jsp/updata.jsp</result> </action> </package> </struts>
接下来就是补全src->dao->impl->TowDaoimpl.java中的增 删 改 操作了:
package com.cf.dao.impl; import java.util.List; import org.hibernate.Query; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.cf.dao.TowDao; import com.cf.entity.User; public class TowDaoimpl extends HibernateDaoSupport implements TowDao{ @Autowired SessionFactory sessionFactory;//org/springframework/orm/hibernate3/HibernateTemplate //SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象 @Override public List<User> findUser() { List<User> list=null; Query query=sessionFactory.openSession().createQuery("from User"); list=query.list(); return list; } @Override public void insert(User TowDao) { // TODO Auto-generated method stub getHibernateTemplate().save(TowDao); } @Override public boolean UpData(User user) { // TODO Auto-generated method stub boolean falg=false; try{ getHibernateTemplate().update(user); falg=true; }catch (Exception e) { e.printStackTrace(); } return falg; } @Override public boolean Delect(int userid) { boolean falg=false; try{ User user =new User(); user.setId(userid); getHibernateTemplate().delete(user); falg=true; }catch (Exception e) { e.printStackTrace(); } return falg; } @Override public User findData(int userid) { // TODO Auto-generated method stub return (User) sessionFactory.getCurrentSession().get(User.class,userid); } }
然后在补全src->co->cf->action->OneAction.java中的增 删 改 :
package com.cf.action; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import com.cf.entity.User; import com.cf.service.Towsercice; import com.opensymphony.xwork2.ActionSupport; public class OneAction extends ActionSupport{ /** * */ private static final long serialVersionUID = 1L; public HttpServletRequest request=ServletActionContext.getRequest(); public HttpServletResponse reaponse=ServletActionContext.getResponse(); private Towsercice towsercice; User user; private List<User> list=new ArrayList<User>(); private int id; private String userName; private String pwd; private String name; List<User> Listuser; public String execute(){ String name=this.userName; String password=this.pwd; String text=this.name; System.out.println(password); Listuser=towsercice.findUser(); //request.getSession().setAttribute("user", list); return SUCCESS; } public String UpData(){ Integer id=this.id; String name=this.userName; String password=this.pwd; String text=this.name; User user=new User(); user.setId(id); user.setName(text); user.setUserName(name); user.setPwd(password); boolean UpDataUser=towsercice.UpData(user); if(UpDataUser){ Listuser=towsercice.findUser(); return SUCCESS; }else{ return "fail"; } } public String findData(){ int user_id =Integer.parseInt(request.getParameter("id")); user=towsercice.findData(user_id); return "updata"; } public String insertuser(){ User user=new User(); user.setName(name); user.setUserName(userName); user.setPwd(pwd); towsercice.insert(user); Listuser=towsercice.findUser(); return SUCCESS; } public String delectUser() throws Exception{ int user_id =Integer.parseInt(request.getParameter("id")); boolean delectuser=towsercice.Delect(user_id); if(delectuser){ Listuser=towsercice.findUser(); return SUCCESS; }else{ return "fail"; } } public Towsercice getTowsercice() { return towsercice; } public void setTowsercice(Towsercice towsercice) { this.towsercice = towsercice; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } public List<User> getList() { return list; } public void setList(List<User> list) { this.list = list; } 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 getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<User> getListuser() { return Listuser; } public void setListuser(List<User> listuser) { Listuser = listuser; } }
最后附一张全图:
到这里搭建SSH到这里就结束啦,代码中有有些地方没有封装的,就看着来封装),如有疑问,请给我留言~~ QQ:304966802
源码->Eclipse搭建SSH框架-JAVA(源码+数据库)
注意:
1.这里的calss是对应包名 不要写错了喔! Dao Action Service 的配置 id要对应
相关文章推荐
- Eclipse搭建SSH框架(上)包含增删查改-JAVA
- Java之基于Eclipse搭建SSH框架(上)
- java 项目ssh框架搭建的增删查改,带数据库文件
- Java之基于Eclipse搭建SSH框架(上)
- Java之基于Eclipse搭建SSH框架(下)
- Java之基于Eclipse搭建SSH框架(下)
- 关于JavaWeb的实例(一)-以eclipse搭建SSH框架
- eclipse for java ee搭建SSH框架
- Java环境搭建:JDK 、eclipse和Maven
- eclipse搭建SSH框架详解
- javaweb开发环境搭建JDK+Tomcat+Eclipse
- JAVA开发环境的搭建(配置JAVA开发环境)以及使用eclipse从头一步步创建java项目
- java入门 第1天 搭建开发环境 Eclipse
- 【opencv】Java+eclipse+opencv 环境搭建 helloword入门demo
- Eclipse中文版下载及汉化及Java开发环境搭建方法
- eclipseIDE for javaee developers 开发环境搭建详解图文
- Eclipse集成开发环境搭建之Java、Python
- Java学习记录_Eclipse环境搭建
- 【转载】Java开发环境的搭建以及使用eclipse创建java项目
- Eclipse导出可执行Java工程/可执行Jar文件(包含第三方Jar包)