zoukankan      html  css  js  c++  java
  • 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、团队开发过程,要算时间,统计团队力量是否大于个人。

    对比一下,我的还是不全面。

    好了,文章到这里就结束了,希望对你有帮助。。。

  • 相关阅读:
    Guava教程
    Hibernate各种主键生成策略与配置详解
    JPA的坑多服务主键重复
    如何用redis来生成唯一Id
    【Gym 100712A】Who Is The Winner?
    【POJ 1416】Shredding Company
    【CodeForces 620D】Professor GukiZ and Two Arrays
    【CodeForces 621B】Wet Shark and Bishops
    【Gym 100015A】Another Rock-Paper-Scissors Problem
    【CodeForces 618B】Guess the Permutation
  • 原文地址:https://www.cnblogs.com/memory9770/p/7010854.html
Copyright © 2011-2022 走看看