SSH2实例编写

 


SSH2实例编写(继DAO MVC后又一力作!)

 

今天第一次编写SSH2的实例,如果有什么问题,欢迎各位提出并提出。

 

以帮助我这个菜鸟解决发生的错误和问题。

 

首先来介绍一下这个项目。

 

这个项目是采用了base的方式进行继承。

项目名称:Test_ssh2

数据库名称:exedtest

 

首先来看一下我所建立的包。

 


 

然后再看一下我的数据库设计:

 


 

首先我们先从建立vo类开始:

首先我们要在DB Browser 建立数据库连接,并且使其连接成功!

 

然后我们要建立好数据库,并且添加hibernate支持。

 

然后进入DB Browser 进行hibernate映射

然后就可以成功的建立vo及其子类了。

 

 

然后下一步是建立好各个类的包

 

并且在里面添加好你需要继承的base

 

 

添加好后,我们就可以开始进行工作了。

 

首先我们先加入pagemodel.java和pageview.java

 

 

 

 

pagemodel.java

 

 

 

package org.yzsoft.ssh2.util;

public class PageModel {
	private int totalPage;//总页数
	private int previousPageNo;//前一页
	private int nextPageNo;//后一页

	public int getNextPageNo() {
		return nextPageNo;
	}

	public void setNextPageNo(int nextPageNo) {
		this.nextPageNo = nextPageNo;
	}

	public int getPreviousPageNo() {
		return previousPageNo;
	}

	public void setPreviousPageNo(int previousPageNo) {
		this.previousPageNo = previousPageNo;
	}

	public int getTotalPage() {
		return totalPage;
	}

	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}

}

 

 

 

 

pageview.java


package org.yzsoft.ssh2.util;

import java.util.List;
/**
 * 封装分页对象
 * @author Administrator
 *
 * @param <T>
 */
public class PageView<T> {
	private List<T> pageList;

	private int totalNo;//总记录数
	 
	private int pageNo; //当前页
	private int pageSize;//每页显示记录数
	
	private PageModel pm=new PageModel();

	
	//取总页数
	public int getTotalPage() {

//		System.out.println(pageNo+"   分页控件类里面的总页数");
		int totalPage = 0;
		if(totalNo%pageSize==0) {
			totalPage = totalNo/pageSize;
		} else {
			totalPage = totalNo/pageSize+1;
		}
		pm.setTotalPage(totalPage);
		return totalPage;
	}
	
	//取上一页
	public int getPreviousPageNo() {
		int pagePrevious=0;
		if(pageNo<=1) { 
			pagePrevious= pageNo;
		} else {
			pagePrevious=pageNo-1;
		}
		pm.setPreviousPageNo(pagePrevious);
		return pagePrevious;
	}
	//取下一页
	public int getNextPageNo() {
//		System.out.println(pageNo+"   分页控件类里面的当前页");
		int pageNext=0;
		if(pageNo>=getTotalPage()){
			pageNext= getTotalPage();
		}else {
			pageNext=  pageNo+1;
		}
		pm.setNextPageNo(pageNext);
		return pageNext;
	} 
	//取最后页
	public int getBackPageNo(){
		return getTotalPage();
	}

	public List<T> getPageList() {
		return pageList;
	}

	public void setPageList(List<T> pageList) {
		this.pageList = pageList;
	}

	public int getTotalNo() {
		return totalNo;
	}

	public void setTotalNo(int totalNo) {
		this.totalNo = totalNo;
	}

	public int getPageNo() {
		return pageNo;
	}

	public void setPageNo(int pageNo) {
		this.pageNo = pageNo;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	public PageModel getPm() {
		return pm;
	}
	public void setPm(PageModel pm) {
		this.pm = pm;
	}

}
 
这两个是用于后面的分页的。

然后我们开始建立DAO接口

package org.yzsoft.ssh2.dao;

import org.yzsoft.ssh2.util.PageView;
import org.yzsoft.ssh2.vo.TStudinfo;




public interface IStudinfoDAO extends BaseDao {
	public PageView<TStudinfo> findByPage(String keyword, int pageNo, int pageSize) throws Exception;

	public boolean findLogin(TStudinfo tstudinfo) throws Exception;
	public PageView<TStudinfo> findByPage(int pageNo, int pageSize) throws Exception;

}
 

 

然后进入真实类

 

 

package org.yzsoft.ssh2.impl;

import java.util.List;

import org.yzsoft.ssh2.dao.IStudinfoDAO;
import org.yzsoft.ssh2.util.PageView;
import org.yzsoft.ssh2.vo.TStudinfo;

public class StudinfoDAOImpl extends BaseDaoImpl implements IStudinfoDAO {

	public PageView<TStudinfo> findByPage(String keyword, int pageNo,
			int pageSize) throws Exception {
		String hql = "from TStudinfo where name like ? or password like?";
		Object[] objects = new Object[] { "%" + keyword + "%",
				"%" + keyword + "%" };
		return super.findByPage(hql, objects, pageNo, pageSize);
	}

	public boolean findLogin(TStudinfo tstudinfo) throws Exception {
		String hql = "select count(*) from TStudinfo where name = ? and password=?";
		Object[] objects = new Object[] { tstudinfo.getName(),
				tstudinfo.getPassword() };
		return (Long) super.getHibernateTemplate().find(hql, objects).get(0) > 0;
	}

	public PageView<TStudinfo> findByPage(int pageNo, int pageSize)
			throws Exception {
		// TODO Auto-generated method stub
		return null;
	}
}

 

 

然后就可以进入算是比较核心的action了

 

 

package org.yzsoft.ssh2.action;

import org.yzsoft.ssh2.dao.IStudinfoDAO;
import org.yzsoft.ssh2.util.PageView;
import org.yzsoft.ssh2.vo.TStudinfo;

public class StudinfoAction extends BaseAction {
	private IStudinfoDAO dao = null;
	private TStudinfo tstudinfo = null;
	private PageView<TStudinfo> all = null;

	public IStudinfoDAO getDao() {
		return dao;
	}

	public void setDao(IStudinfoDAO dao) {
		this.dao = dao;
	}

	public TStudinfo getTstudinfo() {
		return tstudinfo;
	}

	public void setTstudinfo(TStudinfo tstudinfo) {
		this.tstudinfo = tstudinfo;
	}

	public PageView<TStudinfo> getAll() {
		return all;
	}

	public void setAll(PageView<TStudinfo> all) {
		this.all = all;
	}

	/* 登陆查询 */
	public String findLogin() {
		try {
			if (this.dao.findLogin(tstudinfo)) {// 如果有这个用户
				all = this.dao.findByPage(keyword, pageNo, pageSize);
				totalPage = this.dao.findByPage(keyword, pageNo, pageSize)
						.getPm().getTotalPage();
				System.out.println(all.getTotalNo() + "    Ac 里面的总页数");
				return "findAll1";
			} else {
				return "input";
			}

		} catch (Exception e) {
			System.out.println("异常:" + e);
			return "input";
		}
	}

	/* 查询所有 */
	public String findAll() {
		try {
			System.out.println(pageNo + "   " + pageSize);
			all = this.dao.findByPage(keyword, 1, 5);
			totalPage = this.dao.findByPage(keyword, pageNo, pageSize).getPm()
					.getTotalPage();
		} catch (Exception e) {
			System.out.println("异常:" + e);
		}
		return "findAll";
	}

	/* 插入记录 */
	public String doCreate() {
		try {
			this.dao.doCreate(tstudinfo);// 对应页面name.的名字
			all = this.dao.findByPage(keyword, pageNo, pageSize);
			totalPage = this.dao.findByPage(keyword, pageNo, pageSize).getPm()
					.getTotalPage();
		} catch (Exception e) {
			System.out.println("异常:" + e);
		}
		return "findAll";
	}

	/* 根据ID查找 */
	public String findById() {
		try {
			tstudinfo = this.dao.findById(TStudinfo.class, tstudinfo.getId());
		} catch (Exception e) {
			System.out.println(e);
		}
		return "findById";
	}

	/* 更新记录 */
	public String doUpdate() {
		try {
			this.dao.doUpdate(tstudinfo);

			all = this.dao.findByPage(keyword, pageNo, pageSize);
			totalPage = this.dao.findByPage(keyword, pageNo, pageSize).getPm()
					.getTotalPage();
		} catch (Exception e) {
			System.out.println("异常:" + e);
		}

		return "findAll";
	}

	/* 删除记录 */
	public String doDelete() {
		try {
			this.dao.doDelete(TStudinfo.class, tstudinfo.getId());
			all = this.dao.findByPage(keyword, pageNo, pageSize);
			totalPage = this.dao.findByPage(keyword, pageNo, pageSize).getPm()
					.getTotalPage();
		} catch (Exception e) {
			System.out.println("异常:" + e);
		}
		return "findAll";
	}
}
 

 

 

下面就可以开始做jsp页面了

 

首先是登陆页面

 


 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'login.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
  <form name="form1" method="post" action="studinfo_findLogin.action">
    <table width="519" height="139" border="1" align="center" cellpadding="1" cellspacing="1">
      <tr>
        <td colspan="2">用户登录</td>
      </tr>
      <tr>
        <td width="146">用户名:</td>
        <td width="360"><label>
          <input type="text" name="tstudinfo.name" id="tstudinfo.name">
        </label></td>
      </tr>
      <tr>
        <td>密码:</td>
        <td><label>
          <input type="password" name="tstudinfo.password" id="tstudinfo.password">
        </label></td>
      </tr>
      <tr>
        <td colspan="2"><label>
          <input type="submit" name="button" id="button" value="登陆">
        </label></td>
      </tr>
    </table>
  </form>
</body>
</html>
 

 

然后是主页

 


 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
  <form name="form1" method="post" action="studinfo_findAll.action">
    <label>
    <input type="text" name="keyword" id="keyword" value="${keyword}">
    </label>
    <label>
    <input type="submit" name="button" id="button" value="OK-SOSO">
    </label>
    <table width="1180" height="110" border="1" cellpadding="1" cellspacing="1">
      <tr>
        <td width="33">id</td>
        <td width="134">studentnumber</td>
        <td width="114">name</td>
        <td width="47">age</td>
        <td width="117">password</td>
        <td width="47">sex</td>
        <td width="89">nation</td>
        <td width="117">politics</td>
        <td width="119">standya</td>
        <td width="183">standby</td>
        <td width="122"><a href="create.jsp">tianjia</a></td>
      </tr>
       <s:iterator value="all.pageList">
      <tr>
        <td>${id}</td>
        <td>${studentnumber}</td>
        <td>${name}</td>
        <td>${age}</td>
        <td>${password}</td>
        <td>${sex}</td>
        <td>${nation}</td>
        <td>${politics}</td>
        <td>${standya}</td>
        <td>${standby}</td>
        <td><a href="studinfo_findById.action?tstudinfo.id=${id }">update</a>|| <a href="studinfo_doDelete.action?tstudinfo.id=${id }">delete</a></td>
      </tr>
      </s:iterator>
    </table>
    <p>&nbsp;</p>
  </form>

</body>
</html>

 

 

然后是修改页

 

 


 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'up.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
  <form name="form1" method="post" action="studinfo_doUpdate.action">
    <table width="341" border="1" cellspacing="1" cellpadding="1">
      <tr>
        <td width="119">studentnumber</td>
        <td width="209"><label>
          <input type="text" name="tstudinfo.studentnumber" id="tstudinfo.studentnumber" value="${tstudinfo.studentnumber}">
        </label></td>
      </tr>
      <tr>
        <td>name</td>
        <td><input type="text" name="tstudinfo.name" id="tstudinfo.name"value="${tstudinfo.name}"></td>
      </tr>
      <tr>
        <td>age</td>
        <td><input type="text" name="tstudinfo.age" id="tstudinfo.age"value="${tstudinfo.age}"></td>
      </tr>
      <tr>
        <td>password</td>
        <td><input type="text" name="tstudinfo.password" id="tstudinfo.password"value="${tstudinfo.password}"></td>
      </tr>
      <tr>
        <td>sex</td>
        <td><input type="text" name="tstudinfo.sex" id="tstudinfo.sex"value="${tstudinfo.sex}"></td>
      </tr>
      <tr>
        <td>nation</td>
        <td><input type="text" name="tstudinfo.nation" id="tstudinfo.nation"value="${tstudinfo.nation}"></td>
      </tr>
      <tr>
        <td>politics</td>
        <td><input type="text" name="tstudinfo.politics" id="tstudinfo.politics"value="${tstudinfo.politics}"></td>
      </tr>
      <tr>
        <td>standya</td>
        <td><input type="text" name="tstudinfo.standya" id="tstudinfo.standya"value="${tstudinfo.standya}"></td>
      </tr>
      <tr>
        <td>standby</td>
        <td><input type="text" name="tstudinfo.standby" id="tstudinfo.standby"value="${tstudinfo.standby}"></td>
      </tr>
      <tr>
        <td>technicainame</td>
        <td><input type="text" name="tstudinfo.technicainame" id="tstudinfo.technicainame"value="${tstudinfo.technicainame}"></td>
      </tr>
      <tr>
        <td>majorname</td>
        <td><input type="text" name="tstudinfo.majorname" id="tstudinfo.majorname"value="${tstudinfo.majorname}"></td>
      </tr>
      <tr>
        <td>birthday</td>
        <td><input type="text" name="tstudinfo.birthday" id="tstudinfo.birthday"value="${tstudinfo.birthday}"></td>
      </tr>
      <tr>
        <td>studylevels</td>
        <td><input type="text" name="tstudinfo.studylevels" id="tstudinfo.studylevels"value="${tstudinfo.studylevels}"></td>
      </tr>
      <tr>
        <td>phone</td>
        <td><input type="text" name="tstudinfo.phone" id="tstudinfo.phone"value="${tstudinfo.phone}"></td>
      </tr>
      <tr>
        <td>nativeplace</td>
        <td><input type="text" name="tstudinfo.nativeplace" id="tstudinfo.nativeplace"value="${tstudinfo.nativeplace}"></td>
      </tr>
      <tr>
        <td>identitycard</td>
        <td><input type="text" name="tstudinfo.identitycard" id="tstudinfo.identitycard"value="${tstudinfo.identitycard}"></td>
      </tr>
      <tr>
        <td>mailingaddress</td>
        <td><input type="text" name="tstudinfo.mailingaddress" id="tstudinfo.mailingaddress"value="${tstudinfo.mailingaddress}"></td>
      </tr>
      <tr>
        <td>isrecover</td>
        <td><input type="text" name="tstudinfo.isrecover" id="tstudinfo.isrecover"value="${tstudinfo.isrecover}"></td>
      </tr>
      <tr>
        <td>bigclass</td>
        <td><input type="text" name="tstudinfo.bigclass" id="tstudinfo.bigclass"value="${tstudinfo.bigclass}"></td>
      </tr>
      <tr>
        <td colspan="2"><label>
          <input type="submit" name="button" id="button" value="ok">
        </label></td>
      </tr>
    </table>
      <input type="hidden" value="${tstudinfo.id}" name="tstudinfo.id"/>
    </form>

</body>
</html>

 

 

然后是添加


 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'create.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
  <form name="form1" method="post" action="studinfo_doCreate.action">
    <table width="341" border="1" cellspacing="1" cellpadding="1">
      <tr>
        <td width="119">studentnumber</td>
        <td width="209"><label>
          <input type="text" name="tstudinfo.studentnumber" id="tstudinfo.studentnumber">
        </label></td>
      </tr>
      <tr>
        <td>name</td>
        <td><input type="text" name="tstudinfo.name" id="tstudinfo.name"></td>
      </tr>
      <tr>
        <td>age</td>
        <td><input type="text" name="tstudinfo.age" id="tstudinfo.age"></td>
      </tr>
      <tr>
        <td>password</td>
        <td><input type="text" name="tstudinfo.password" id="tstudinfo.password"></td>
      </tr>
      <tr>
        <td>sex</td>
        <td><input type="text" name="tstudinfo.sex" id="tstudinfo.sex"></td>
      </tr>
      <tr>
        <td>nation</td>
        <td><input type="text" name="tstudinfo.nation" id="tstudinfo.nation"></td>
      </tr>
      <tr>
        <td>politics</td>
        <td><input type="text" name="tstudinfo.politics" id="tstudinfo.politics"></td>
      </tr>
      <tr>
        <td>standya</td>
        <td><input type="text" name="tstudinfo.standya" id="tstudinfo.standya"></td>
      </tr>
      <tr>
        <td>standby</td>
        <td><input type="text" name="tstudinfo.standby" id="tstudinfo.standby"></td>
      </tr>
      <tr>
        <td>technicainame</td>
        <td><input type="text" name="tstudinfo.technicainame" id="tstudinfo.technicainame"></td>
      </tr>
      <tr>
        <td>majorname</td>
        <td><input type="text" name="tstudinfo.majorname" id="tstudinfo.majorname"></td>
      </tr>
      <tr>
        <td>birthday</td>
        <td><input type="text" name="tstudinfo.birthday" id="tstudinfo.birthday"></td>
      </tr>
      <tr>
        <td>studylevels</td>
        <td><input type="text" name="tstudinfo.studylevels" id="tstudinfo.studylevels"></td>
      </tr>
      <tr>
        <td>phone</td>
        <td><input type="text" name="tstudinfo.phone" id="tstudinfo.phone"></td>
      </tr>
      <tr>
        <td>nativeplace</td>
        <td><input type="text" name="tstudinfo.nativeplace" id="tstudinfo.nativeplace"></td>
      </tr>
      <tr>
        <td>identitycard</td>
        <td><input type="text" name="tstudinfo.identitycard" id="tstudinfo.identitycard"></td>
      </tr>
      <tr>
        <td>mailingaddress</td>
        <td><input type="text" name="tstudinfo.mailingaddress" id="tstudinfo.mailingaddress"></td>
      </tr>
      <tr>
        <td>isrecover</td>
        <td><input type="text" name="tstudinfo.isrecover" id="tstudinfo.isrecover"></td>
      </tr>
      <tr>
        <td>bigclass</td>
        <td><input type="text" name="tstudinfo.bigclass" id="tstudinfo.bigclass"></td>
      </tr>
      <tr>
        <td colspan="2"><label>
          <input type="submit" name="button" id="button" value="ok">
        </label></td>
      </tr>
    </table>
  </form>

</body>
</html>
 

 

最后就是配置文件了。由于篇目过长了,就不详细写了,配置文件将放在下面的压缩包中,大家下载后可以改成程序的东西。

 

因为驱动包太大了,所以上传不了,大家自己下载吧,或者发私信过来,索要!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值