MVC实例编写

MVC实例!———欢迎提出意见

 

      一个算是完整的MVC例子本人新手,第一次写技术博客,感觉还好,如果各位有什么建议,欢迎给我这个菜鸟一些建议哦。如果你觉得我写的有什么错误的话,也欢迎各位给我指出错误,帮助我这个程序菜鸟解决!

 

我所用的开发工具不用说,大部分程序员都熟悉的 MyEclipse 8.6

 

数据库:mysql mysql

 

数据库的设计:

 



 

项目名称: MVCTest

 

我所建立的包如下:

注意命名的规范哦!

1.dao接口类

2.factory工厂类

3.impl真实类

4.proxy代理类

5.数据库连接类

6.JUnit测试类

7.servlet

7.vo类

 



 

对了别忘了引入驱动包!  

 

接下来解析一下代码:

1.创建vo类!

 

package org.yzsoft.mvctest.vo;

public class Tusers {
public int getId() {
	return id;
}
public void setId(int id) {
	this.id = id;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public String getUsername() {
	return username;
}
public void setUsername(String username) {
	this.username = username;
}
public String getPassword() {
	return password;
}
public void setPassword(String password) {
	this.password = password;
}
public String getType() {
	return type;
}
public void setType(String type) {
	this.type = type;
}
private int id;
private String name;
private String username;
private String password;
private String type;
}

   

2.数据库连接类  

 

package org.yzsoft.mvctest.util;

import java.sql.Connection;
import java.sql.DriverManager;

public class DatabaseConnection {
	private static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
	private static final String DBURL = "jdbc:mysql://localhost:3306/news";
	private static final String DBUSER = "root";
	private static final String DBPASSWORD = "admin";
	private Connection conn;

	public DatabaseConnection() throws Exception {
		Class.forName(DBDRIVER);
		this.conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
	}

	public Connection getConnection() {
		return this.conn;
	}

	public void close() throws Exception {
		if (this.conn != null) {
			try {
				this.conn.close();
			} catch (Exception e) {
				throw e;
			}
		}
	}
}

 

3.dao类

 

package org.yzsoft.mvctest.dao;

import java.util.List;

import org.yzsoft.mvctest.vo.Tusers;



public interface ITusersDAO {
	public boolean doCreate(Tusers tusers) throws Exception;

	public boolean doDelete(int id) throws Exception;

	public boolean doUpdate(Tusers tusers) throws Exception;

	public List<Tusers> findAll(String keyWord) throws Exception;

	public Tusers findById(int id) throws Exception;
	
	public boolean findLogin(Tusers tusers) throws Exception ;
}

 

4.真实类———注意哦!很容易出错的地方!

 

package org.yzsoft.mvctest.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import org.yzsoft.mvctest.dao.ITusersDAO;
import org.yzsoft.mvctest.vo.Tusers;



public class TusersDAOImpl implements ITusersDAO {
	private Connection conn = null;
	private PreparedStatement pstmt = null;

	public TusersDAOImpl(Connection conn) {
		this.conn = conn;
}

	public boolean doCreate(Tusers tusers) throws Exception {
		boolean flag = false;
		String sql = "INSERT INTO tusers(name,username,password,type) VALUES(?,?,?,?)";
		this.pstmt = this.conn.prepareStatement(sql);
		this.pstmt.setString(1, tusers.getName());
		this.pstmt.setString(2, tusers.getUsername());
		this.pstmt.setString(3, tusers.getPassword());
		this.pstmt.setString(4, tusers.getType());
		if (this.pstmt.executeUpdate() > 0) {
			flag = true;
		}
		this.pstmt.close();
		return flag;
	}

	public boolean doDelete(int id) throws Exception {
		boolean flag = false;
		String sql = "DELETE FROM tusers WHERE id=?";
		this.pstmt = this.conn.prepareStatement(sql);
		this.pstmt.setInt(1, id);
		if (this.pstmt.executeUpdate() > 0) {
			flag = true;
		}
		return flag;
	}

	public boolean doUpdate(Tusers tusers) throws Exception {
		boolean flag = false;
		String sql = "UPDATE tusers SET name=?,username=?,password=?,type=? WHERE id=?";
		this.pstmt = this.conn.prepareStatement(sql);
		this.pstmt.setString(1, tusers.getName());
		this.pstmt.setString(2, tusers.getUsername());
		this.pstmt.setString(3, tusers.getPassword());
		this.pstmt.setString(4, tusers.getType());
		this.pstmt.setInt(5, tusers.getId());
		
		if (this.pstmt.executeUpdate() > 0) {
			flag = true;
		}
		return flag;
	}

	public List<Tusers> findAll(String keyWord) throws Exception {
		List<Tusers> all = new ArrayList<Tusers>();
		String sql = "select * from tusers where id like ? or name like ? or username like ? or password like ? or type like ? ";
		this.pstmt = this.conn.prepareStatement(sql);
		this.pstmt.setString(1, "%" + keyWord + "%");
		this.pstmt.setString(2, "%" + keyWord + "%");
		this.pstmt.setString(3, "%" + keyWord + "%");
		this.pstmt.setString(4, "%" + keyWord + "%");
		this.pstmt.setString(5, "%" + keyWord + "%");
		ResultSet rs = this.pstmt.executeQuery();
		Tusers tusers = null;
		while (rs.next()) {
			tusers = new Tusers();
			tusers.setId(rs.getInt(1));
			tusers.setName(rs.getString(2));
			tusers.setUsername(rs.getString(3));
			tusers.setPassword(rs.getString(4));
			tusers.setType(rs.getString(5));
			all.add(tusers);
		}
		this.pstmt.close();
		return all;
	}

	public Tusers findById(int id) throws Exception {
		Tusers tusers = new Tusers();
		String sql = "SELECT  id,name,username,password,type FROM tusers WHERE id=?";
		this.pstmt = this.conn.prepareStatement(sql);
		this.pstmt.setInt(1, id);
		ResultSet rs = this.pstmt.executeQuery();
		if (rs.next()) {
			tusers = new Tusers();
			tusers.setId(rs.getInt(1));
			tusers.setName(rs.getString(2));
			tusers.setUsername(rs.getString(3));
			tusers.setPassword(rs.getString(3));
			tusers.setType(rs.getString(3));
		}
		this.pstmt.close();
		return tusers;
	}

	public boolean findLogin(Tusers tusers) throws Exception {
		boolean flag = false ;
		String sql = "SELECT * FROM tusers WHERE username=? AND password=?" ;
		this.pstmt = this.conn.prepareStatement(sql) ;
		this.pstmt.setString(1,tusers.getUsername()) ;
		this.pstmt.setString(2,tusers.getPassword()) ;
		ResultSet rs = this.pstmt.executeQuery() ;
		if(rs.next()){
			tusers.setUsername(rs.getString(1)) ;	// 鍙栧嚭涓�釜鐢ㄦ埛鐨勭湡瀹炲鍚�
			flag = true ;
		}
		this.pstmt.close() ;
		return flag ;
	}
}

 5.代理类

 

package org.yzsoft.mvctest.proxy;

import java.util.List;

import org.yzsoft.mvctest.dao.ITusersDAO;
import org.yzsoft.mvctest.impl.TusersDAOImpl;
import org.yzsoft.mvctest.util.DatabaseConnection;
import org.yzsoft.mvctest.vo.Tusers;


public class TusersDAOProxy implements ITusersDAO {
	private DatabaseConnection dbc = null;
	private ITusersDAO dao = null;
	
	public TusersDAOProxy(){
		try{
			this.dbc = new DatabaseConnection();
		}catch(Exception e){
			e.printStackTrace();
		}
		this.dao = new TusersDAOImpl(this.dbc.getConnection());
}

	public boolean doCreate(Tusers tusers) throws Exception {
		boolean flag = false;
		try {
     
			flag = this.dao.doCreate(tusers);

		} catch (Exception e) {

			throw e;
		} finally {
			this.dbc.close();
		}
		return flag;
	}

	public boolean doDelete(int id) throws Exception {
		boolean flag = false;
		try {
			flag = this.dao.doDelete(id);
		} catch (Exception e) {
			throw e;
		} finally {
			this.dbc.close();
		}
		return flag;
	}

	public boolean doUpdate(Tusers tusers) throws Exception {
		boolean flag = false;
		try {

			flag = this.dao.doUpdate(tusers);

		} catch (Exception e) {
			throw e;
		} finally {
			this.dbc.close();
		}
		return flag;
	}

	public List<Tusers> findAll(String keyWord) throws Exception {
		List<Tusers> all = null;
		try {
			all = this.dao.findAll(keyWord);
		} catch (Exception e) {
			throw e;
		} finally {
			this.dbc.close();
		}
		return all;
	}

	public Tusers findById(int id) throws Exception {
		Tusers tusers = new Tusers();
		try {
			tusers = this.dao.findById(id);

		} catch (Exception e) {

			throw e;
		} finally {
			this.dbc.close();
		}
		return tusers;
	}

	public boolean findLogin(Tusers tusers) throws Exception {
		boolean flag = false ;
		try{
			flag = this.dao.findLogin(tusers) ;	
		}catch(Exception e){
			throw e ;
		}finally{
			this.dbc.close() ;
		}
		return flag ;
	}
}

 

6.工厂类

 

package org.yzsoft.mvctest.factory;

import org.yzsoft.mvctest.dao.ITusersDAO;
import org.yzsoft.mvctest.proxy.TusersDAOProxy;

public class DAOFactory {

	public static ITusersDAO getITusersDAOInstance() throws Exception {
		return new TusersDAOProxy();
	}
	
}

 

7.最后写servlet

 

 

package org.yzsoft.mvctest.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.yzsoft.mvctest.factory.DAOFactory;
import org.yzsoft.mvctest.vo.Tusers;

public class TuserServlet extends HttpServlet {

	/**
	 * Constructor of the object.
	 */
	public TuserServlet() {
		super();
	}

	/**
	 * Destruction of the servlet. <br>
	 */
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	/**
	 * The doGet method of the servlet. <br>
	 * 
	 * This method is called when a form has its tag value method equals to get.
	 * 
	 * @param request
	 *            the request send by the client to the server
	 * @param response
	 *            the response send by the server to the client
	 * @throws ServletException
	 *             if an error occurred
	 * @throws IOException
	 *             if an error occurred
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	/**
	 * The doPost method of the servlet. <br>
	 * 
	 * This method is called when a form has its tag value method equals to
	 * post.
	 * 
	 * @param request
	 *            the request send by the client to the server
	 * @param response
	 *            the response send by the server to the client
	 * @throws ServletException
	 *             if an error occurred
	 * @throws IOException
	 *             if an error occurred
	 */
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String doAction = request.getParameter("doAction");
		System.out.println(doAction);
		if (doAction.equals("insert")) {

			insert(request, response);
		} else if (doAction.equals("update")) {
			update(request, response);
		} else if (doAction.equals("delete")) {

			delete(request, response);
		} else if (doAction.equals("findall")) {

			findall(request, response);
		} else if (doAction.equals("findByid")) {

			findByid(request, response);
		} else if (doAction.equals("findLogin")) {
			findLogin(request, response);
		}

	}

	private void findLogin(HttpServletRequest request,
			HttpServletResponse response) {
		String path = "index.jsp";
		String error = "login.jsp";
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		List<String> info = new ArrayList<String>(); // 鏀堕泦閿欒
		if (info.size() == 0) { 
			Tusers tusers = new Tusers();
			tusers.setUsername(username);
			tusers.setPassword(password);
			try {
				if (DAOFactory.getITusersDAOInstance().findLogin(tusers)) {
					request.getRequestDispatcher(path);
					findall(request, response);
				} else {
					request.getRequestDispatcher(error).forward(request,
							response);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	private void findByid(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		int id = Integer.parseInt(request.getParameter("id"));
		try {
			Tusers tusers = DAOFactory.getITusersDAOInstance().findById(id);
			request.setAttribute("tusers", tusers);
			request.getRequestDispatcher("up.jsp").forward(request, response);
		} catch (Exception e) {

			e.printStackTrace();
		}
	}

	private void findall(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		System.out.println("ddddd11111");
		String keyWord = request.getParameter("kw");
		if (keyWord == null || "".equals(keyWord)) {
			keyWord = "";
		}
		try {
			List<Tusers> all = DAOFactory.getITusersDAOInstance().findAll(
					keyWord);
			request.setAttribute("all", all);

		} catch (Exception e) {

			e.printStackTrace();
		}
		request.getRequestDispatcher("index.jsp").forward(request, response);
	}

	private void delete(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		int id = Integer.parseInt(request.getParameter("id"));
		try {
			if (DAOFactory.getITusersDAOInstance().doDelete(id)) {
				findall(request, response);
			} else {

				// erro(request, response, 3);
			}
		} catch (Exception e) {

			e.printStackTrace();
		}
	}

	private void update(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		try {
			int id = Integer.parseInt(request.getParameter("id"));
			String name = request.getParameter("name");
			String username = request.getParameter("username");
			String password = request.getParameter("password");
			String type = request.getParameter("type");
			Tusers tusers = new Tusers();
			tusers.setId(id);
			tusers.setName(name);
			tusers.setUsername(username);
			tusers.setPassword(password);
			tusers.setType(type);

			if (DAOFactory.getITusersDAOInstance().doUpdate(tusers)) {
				findall(request, response);
			}
		} catch (Exception e) {

			e.printStackTrace();
		}
	}

	private void insert(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		try {
			String name = request.getParameter("name");
			String username = request.getParameter("username");
			String password = request.getParameter("password");
			String type = request.getParameter("type");
			Tusers tusers = new Tusers();
			tusers.setName(name);
			tusers.setUsername(username);
			tusers.setPassword(password);
			tusers.setType(type);
			if (DAOFactory.getITusersDAOInstance().doCreate(tusers)) {
				System.out.println("OK");
				findall(request, response);
			} else {
				System.out.println("error");
				erro(request, response, 2);
			}

		} catch (Exception e) {
			System.out.println("erro");
			e.printStackTrace();
		}
	}

	private void erro(HttpServletRequest request, HttpServletResponse response,
			int erro) // 澶勭悊閿欒
			throws ServletException, IOException {
		int str = erro;
		switch (str) {
		case 1:
			request.setAttribute("erro", "鐧婚檰澶辫触");
			request.getRequestDispatcher("erro.jsp").forward(request, response);
			break;
		case 2:
			request.setAttribute("erro", "鎻掑叆澶辫触");
			request.getRequestDispatcher("erro.jsp").forward(request, response);
			break;
		case 3:
			request.setAttribute("erro", "鍒犻櫎澶辫触");
			request.getRequestDispatcher("erro.jsp").forward(request, response);
			break;
		}

		request.getRequestDispatcher("erro.jsp").forward(request, response);
	}

	/**
	 * Initialization of the servlet. <br>
	 * 
	 * @throws ServletException
	 *             if an error occurs
	 */
	public void init() throws ServletException {
		// Put your code here
	}

}

 

 

然后就可以开始junit的测试了!

 

下面可以开始做页面了

首先我们先做登陆

 

login

 


 

登陆只需在action 里面跳转至servlet 的findlogin里面就可以了

 

然后我们就可以开始做首页了!

 


 

 

index

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import="org.yzsoft.mvctest.vo.Tusers"%>
<%
	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="TuserServlet?doAction=findall">
			<p>
				<label>
					<input type="text" name="kw" id="kw">
				</label>
				<label>
					<input type="submit" value="查询">
				</label>
			</p>
			<table width="992" height="108" border="1" cellpadding="0"
				cellspacing="0">
				<tr>
					<td width="179">
						id					</td>
					<td width="202">姓名</td>
					<td width="201">用户名</td>
					<td width="134">密码</td>
					<td width="126">备注</td>
					<td width="136">
						<a href="create.jsp">添加					</a></td>
			  </tr>
				<%
					try {
						List<Tusers> info = (List<Tusers>) request.getAttribute("all");
						Iterator<Tusers> iter = info.iterator();
				%>
				<%
					while (iter.hasNext()) {
							Tusers tusers = iter.next();
				%>
				<tr>
					<td><%=tusers.getId()%></td>
					<td><%=tusers.getName()%></td>
					<td><%=tusers.getUsername()%></td>
					<td><%=tusers.getPassword()%></td>
					<td><%=tusers.getType()%></td>
					<td>
						<a href="TuserServlet?doAction=findByid&&id=<%=tusers.getId()%>">修改</a>||
						<a href="TuserServlet?doAction=delete&&id=<%=tusers.getId()%>">删除</a>					</td>
				</tr>
				<%
					}
				%>
			</table>
			<%
				} catch (Exception e) {

					e.printStackTrace();
				}
			%>
		</form>
	</body>
</html>

 
 

                                                                                                                                               END!

  写完了!打酱油去了!
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值