mysql輸出到頁面MVC模式
上一篇文章我提到過在jsp頁面不好
這篇文章講的就是界面和代碼分離,可以初步實現兩個或三個人合作完成一個項目
好,廢話不多說,進正題
這次又四個步驟
第一步,新建項目,新建實體類
第二步,新建數據庫,照著實體類來建數據庫
第三步,新建servlet和jsp(這一步順序不分先後)
第一步,照著圖建就好,至於那四個taglibs開頭的包,可以到這裏看:http://www.cnblogs.com/feathe/p/6946750.html
還有一個jdbc的上一篇文章有下載的詳細步驟,這裏就不多說了
util那個包是自己封裝的(如果自己有改動的話,就用自己的,如果沒有就用我這個名字也行)
類名(ConnManager)代碼如下:
package util; import java.sql.Connection; import java.sql.DriverManager; public class ConnManager { //數據庫5大參數 private static final String IP = "127.0.0.1"; private static final String PORT = "3306"; private static final String DATABASE_NAME = "one"; private static final String USER_NAME = "root";private static final String PASSWORD = "123"; private static final String DRIVER = "org.gjt.mm.mysql.Driver"; public static Connection getConnection() throws Exception { String url = "jdbc:mysql://"+IP+":"+PORT+"/"+DATABASE_NAME+"?user="+USER_NAME+"&password="+PASSWORD+""; Class.forName(DRIVER); Connection conn= DriverManager.getConnection(url); System.out.println("ConnManager已經創建了連接:"+conn); return conn; } }
實體類代碼:
類名:Entity.java
package entity; import java.sql.Date; public class Entity { private Integer id; private String name; private Date birt;
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 Date getBirt() { return birt; } public void setBirt(Date birt) { this.birt = birt; } }
建數據庫代碼(管理員doc界面下操作):
create database one ; use one create table inf(id int, nam varchar(20),birt DATE);
insert into inf values(‘1‘,‘一號‘,‘2000-1-1‘),(‘2‘,‘二號‘,‘2000-1-2‘);
insert into inf values(‘3‘,‘三號‘,‘2000-1-3‘),(‘4‘,‘四號‘,‘2000-1-4‘);
select * from inf;
新建jsp,代碼如下:
jsp名稱(Test.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>
<table border="1px">
<tr>
<td>編號</td>
<td>名字</td>
<td>出生日期</td>
</tr>
<c:forEach items="${list}" var="a">
<tr>
<td>${a.id }</td>
<td>${a.name }</td>
<td>${a.birt }</td>
</tr>
</c:forEach>
</table>
</body>
</html>
servlet代碼:
名稱(Action.java)
package action; import java.io.IOException; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.sql.Connection; import entity.Entity; import util.ConnManager; @WebServlet("/Action") public class Action extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try{ Connection co=ConnManager.getConnection(); String sql="select * from inf "; PreparedStatement pa=co.prepareStatement(sql); ResultSet rs=pa.executeQuery(); List<Entity> list =new ArrayList<Entity>(); while(rs.next()){ Integer id=rs.getInt("id"); String name=rs.getString("name"); java.sql.Date birt=rs.getDate("birt"); Entity en=new Entity(); en.setId(id); en.setName(name); en.setBirt(birt); list.add(en); } rs.close(); pa.close(); co.close(); request.setAttribute("list", list); request.getRequestDispatcher("Test.jsp").forward(request, response); }catch(Exception e){ System.out.println("出現異常"+e.getMessage());//如果報錯的話,這行代碼就起作用了,記得在控制臺那裏看一下,會有驚喜的 } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
這就是一個比較完整的項目,接下來就是Run As了,註意 運行的是整個項目,不要運行單獨一個jsp或java,這裏不要,
如果只是單獨寫了一個java文件的話,單獨運行一個沒問題。
效果如下:
在前面我有說到初步團隊合作,相信你看到這裏,對團隊合作完成一個項目心裏面有一點思路了。
團隊合作必須要有主心骨,主心骨的決定,隊友要配合,沒有商量。
對於這個項目,我覺得,首先,
隊長先定義一些東西,
數據庫名稱,表名,字段名和類型,數據庫用戶名,密碼,jsp名稱,集合名稱。
把這些東西定義好,差不多就能自己幹自己的那一塊,最後整合代碼,再跑一遍。這是我片面的理解。
詳情如下(老師的提示):
1、首先建模(建立數據庫表以及實體類)
2、搞清楚業務流程,誰跳轉到誰,多少個頁面,多少個類
3、思考好頁面跳轉時,傳遞什麽數據,顯示什麽數據等
4、團隊開發的話,要有組長分配任務,誰做什麽,以及公共約定的變量名需要明確,然後實現同時開發。
5、團隊開發過程,要算時間,統計團隊力量是否大於個人。
對比一下,我的還是不全面。
好了,文章到這裏就結束了,希望對你有幫助。。。
mysql輸出到頁面MVC模式