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模式的更多相关文章
- 浅析MVC模式与三层架构的区别01
三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层)三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI ...
- MVC模式与三层架构的区别
之前总是混淆MVC表现模式和三层架构模式,为此记录下. 三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层) 三层架构(3-tier application) ...
- 浅析MVC模式与三层架构的区别
浅析MVC模式与三层架构的区别 三层架构和MVC是有明显区别的,MVC应该是表现模式(三个加起来以后才是三层架构中的UI层).三层架构(3-tier application) 通常意义上的三层架构就是 ...
- Java的MVC模式简介
Java的MVC模式简介 MVC(Model View Control)模型-视图-控制器 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件 ...
- MVC模式学习--雇员管理系统项目开发
1, 项目开发,使用原型开发, ① 开发流程: 需求分析->设计阶段->编码阶段->测试阶段->发布阶段/维护阶段 需求阶段:PM/项目经理 对客户 设计阶段:技术人员(架构师 ...
- 作业07之《MVC模式》
MVC(Model View Controller)模型-视图-控制器 MVC与模板概念的理解 MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的 ...
- MVC模式
1.MVC的概念 1.1什么是MVC? MVC是一种架构型模式,它本身不引入新的功能,只是指导我们把web应用结构做的更加合理,实现逻辑与页面相分离. ...
- MVC模式与三层架构和表示层
1.MVC模式 - Model-View-Controller - 模型-视图-控制器 - Model(模型) > 模型分为业务模型,和数据模型 ...
- 二十七、EFW框架BS系统开发中的MVC模式探讨
回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...
随机推荐
- STM32与STM8操作寄存器的区别
在STM8中,由于STM8寄存器较少,在头文件中定义寄存器的时候不用采取任何形式的封装,所以操作寄存器的时候直接可以用如下方式处理:PB_DDR |=0x20; 但是在STM32中,由于其寄存器实在太 ...
- SQLAlchemy的增删改查 一对多 多对多
Models只是配置和使用比较简单,因为是Django自带的ORM框架,所以兼容性不行,所以出现了SQLAlchemy,SQLAlchemy是比较全面的ORM框架,它可以在任何使用SQL查询时使用 以 ...
- mysql:创建新库,新表,查看character
创建新库create database wenda; 创建新表drop table if exists `user`;create table `user`( `id` int(11) unsigne ...
- 公子奇带你一步一步了解Java8中Lambda表达式
在上一篇<公子奇带你一步一步了解Java8中行为参数化>中,我们演示到最后将匿名实现简写为 (Police police) -> "浙江".equals(poli ...
- C / C++ 保留小数函数(setprecision(n)的一些用法总结)
从C语言开始正式学习C++,但是一上来输出位数就懵了,查资料才知道C++需要使用 “ setprecision ”函数.自己总结一下. 首先说C++代码 #include <iomanip&g ...
- 电脑端TIM登录时记住密码
为什么每次登录TIM时点了记住密码,下次再登录时还是记不住呢? 不是扫码就是还得输出密码,为这事愁了好多次, 最近终于发现如何记住密码了... 进入登录界面以后,点击左下角这个小图标>> ...
- 小小知识点(五十一)——6G扬帆起航:拍赫兹通信与健康泛在网络助推6G新应用
转自IEEE科技纵览 https://weibo.com/ttarticle/p/show?id=2309404454066502631625 6G扬帆起航:拍赫兹通信与健康泛在网络助推6G新应用 ...
- 为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?
看到了一道面试题:"为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?",想想最近也到金三银四了,所以就查阅了相关资料,整理出来了这篇文章 ...
- 傅立叶变换—FFT
FFT(快速傅立叶变换)使用“分而治之”的策略来计算一个n阶多项式的n阶DFT系数的值.定义n为2的整数幂数,为了计算一个n阶多项式f(x),算法定义了连个新的n/2阶多项式,函数f[0](x)包含了 ...
- Flink系列之Time和WaterMark
当数据进入Flink的时候,数据需要带入相应的时间,根据相应的时间进行处理. 让咱们想象一个场景,有一个队列,分别带着指定的时间,那么处理的时候,需要根据相应的时间进行处理,比如:统计最近五分钟的访问 ...