JDBC - 开发实例-MVC模式

 1. 在web.xml中配置连接数据库的信息

  web.xml:

  <context-param>

    <param-name>server</param-name>  //主机名

    <param-value>localhost</param-value>  

  </context-param>

  <context-param>

    <param-name>db</param-name>  //数据库

    <param-value>test</param-value>  

  </context-param>

  <context-param>

    <param-name>user</param-name>  //用户名

    <param-value>root</param-value>  

  </context-param>

  <context-param>

    <param-name>password</param-name>  //密码

    <param-value>1234</param-value>  

  </context-param>

2. 数据层-创建实体类Student.java

  Student.java:

  package gh.test.entity;

  

  public class Student{

    private int id;

    private String name;

    private int gender;

    private int age;

    private String address;

    private String tel;

    public void setId(int id){    //学号

      this.id = id;

    }

    public int getId(){

      return id;

    }

    public void setName(String name){    //姓名

      this.name = name;

    }

    public String getName(){

      return name;

    }

    public void setGender(int gender){    //性别

      this.gender = gender;

    }

    public int getGender(){

      retuen gender;

    }

    public void setAge(int age){    //年龄

      this.age = age;

    }

    public int getAge(){

      return age;

    }

    public void setAddress(String address){    //地址

      this.address = address;

    }

    public String getAddress(){

      return address;

    }

    public void setTel(String tel){

      return tel;

    }

  }

3. 数据访问层-创建数据库操作类 DB.java & 学生DAO类 StudentDao.java

  DB.java:

  package gh.test.dao;

  import java.sql.DriverManager;

  import java.sql.Connection;

  import java.sql.PreparedStatement;

  import java.sql.ResultSet;

  import java.sql.SQLException;

  

  public class DB{

    Connection conn = null;

    PreparedStatement ps = null;

    ResultSet rs = null;

    public Connection getConn

    (String server,String db,String user,String password)throws ClassNotFoundException,InstantiationException,IllegalAccessException,SQLException{  //获取对象

      String driver = "com.mysql.jdbc.Driver";    

      String url = "jdbc:mysql://"+server+":3306/"+db+"?user="+user+"&password="+password+"&characterEncoding=utf-8";

      Class.forName(driver);    //加载驱动

      Connection conn = DriverManager.getConnection(url);    //创建Connection对象

      return conn;

    }

    public ResultSet executeQuery(String sql,String[] params){    //执行查询操作

      try{

          ps = conn.prepareStatement(sql);

          if(params != null){

            for(int i=0;i<params.length;i++){

              ps.setString(i+1,params[i]);

            }

          }

           rs = ps.executeQuery();

      }

      catch(SQLException ex){

        ex.printStackTrace();

      }

      return rs;

    }

    public int executeUpdate(String sql,String[] params){    //执行更新操作

      int n = 0;

      try{

        ps = conn.prepareStatement(sql);

        if(params != null){

          for(int i=0;i<params.length;i++){

            ps.setString(i+1,params[i]);

          }

          n = ps.executeUpdate();

        }

      }catch(SQLException ex){

        ex.printStackTrace();

      }

      return n;

    }

    public void closeAll(){

      if(rs != null){

        try{

          rs.close();

        }catch(SQLException ex){

          ex.printStackTrace();

        }

      }

      if(ps != null){

        try{

          ps.close();

        }catch(SQLException ex){

          ex.printStackTrace();

        }

      }

      if(conn != null){

        try{

          conn.close();

        }catch(SQLException ex){

          ex.printStackTrace();

        }

      }

    }

  }

  StudentDao.java:

   package gh.test.dao;

  import gh.test.entity.Student;

  

  public class StudentDao extends DB{

    public int addStudent(Student student){

      String name = student.getName();

      String gender = student.getGender()+"";

      String  age = student.getAge()+"";

      String address = student.getAddress();

      String tel = student.getTel();

      String[] params = new String[]{name,gender,age,address,tel};

      String sql = "insert into studentInfo values(?,?,?,?,?)";

      int result = super.executeUpdate(sql,params);

      return result;

    } 

  }

4. 视图显示层&逻辑处理-addStudent.html & AddStudentServlet.java

  addStudent.html:

  <html>

    <head>

      <meta http-equiv="Content-Type" content="text/html;charset=utf-8">

      <title>添加学生信息</title>

    </head>

    <body>

      <form name="form1" action="AddStudentServlet" method="post">

        <table>

          <tr>

            <th colspan="2">学生信息</th>

          </tr>

          <tr>

            <td>姓名:</td>

            <td><input type="text" name="name"/></td>

          </tr>

          <tr>

            <td>性别:</td>

            <td>

              <input type="radio" name="gender" value="0" check="checked"/>男&nbsp;&nbsp;

              <input type="radio" name="gender" value="1"/>女

            </td>

          </tr>

          <tr>

            <td>年龄:</td>

            <td>

              <select name="age">

                <option value="18" select="selected">18</option>

                <option value="19">19</option>

                <option value="20">20</option>

                <option value="21">21</option>

                <option value="22">22</option>

              </select>

            </td>

          </tr>

          <tr>

            <td>地址:</td>

            <td><input type="text" name="address"/></td>

          </tr>

          <tr>

            <td>电话:</td>

            <td><input type="text" name="tel"/></td>

          </tr>

          <tr>

            <td colspan="2" align="center">

              <input type="submit" name="tj" value="提交" onclick="check();"/>&nbsp;&nbsp;

              <input type="reset" name="cz" value="重置"/>

            </td>

          </tr>

        </table>

      </form>

      <script language="javascript">

        function check(){

          if(document.form1.name.value == ""){

            alert("请输入姓名!");

            document.form1.name.focus();      

            return false;

          }

          if(document.form1.age.value == ""){

            alert("请输入年龄!");

            document.form1.age.focus();      

            return false;

          }

          if(document.form1.address.value == ""){

            alert("请输入地址!");

            document.form1.address.focus();      

            return false;

          }

          if(document.form1.tel.value == ""){

            alert("请输入电话号码!");

            document.form1.tel.focus();      

            return false;

          }

          return true;

        }

      </script>

    </body>

  </html>

  AddStudentServlet.java:

   package gh.test.servlet;

  import java.io.IOException;

  import java.io.PrintWriter;

  import java.sql.SQLException;

  import javax.servlet.ServletContent;

  import javax.servlet.ServletException;

  import javax.servlet.http.HttpServlet;

  import javax.servlet.http.HttpServletRequest;

  import javax.servlet.http.HttpServletResponse;

  import gh.test.entity.Student;

  import gh.test.dao.StudentDao;

  public class AddStudentServlet extends HttpServlet{

    private static final long serialVersionUID = 1L;

    public AddStudentServlet(){

      super();

    }

    public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{

      doPost(request,response);

    }

    public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{

      request.setCharacterEncoding("utf-8");

      response.setContentType("text/html;charset=utf-8");

      PrintWriter out = response.getWriter();

      String name = request.getParameter("name");

      int gender = Integer.parseInt(request.getParameter("gender"));

      int age = Integer.parseInt(request.getParameter("age"));

      String address = request.getParameter("address");

      String tel = request.getParameter("tel");

      Student student = new Student();

      student.setName(name);

      student.setGender(gender);

      student.setAge(age);

      student.setAddress(address);

      student.setTel(tel);

      ServletContext ctx = this.getServletContext();

      String server = ctx.getInitParameter("server");

      String db = ctx.getInitParameter("db");

      String user = ctx.getInitParameter("user");

        String password = ctx.getInitParameter("password");

      StudentDao studentDao = new StudentDao();

      try{

        studentDao.getConn(server,db,user,password);

        if(studentDao.addStudent(student) == 1){

          out.print("添加新同学信息成功!<br>");

        }

        else{

          out.print("添加失败!<br>");

        }

        out.print("<a href='addStudent.html'>返回</a>");

      }catch(ClassNotFoundException ex){

        ex.printStackTrace();

      }catch(Exception ex){

        ex.printStackTrace();

      }

    } 

  }

 

【JDBC-MVC模式】开发实例的更多相关文章

  1. 【Web开发】Mean web开发 01-Express实现MVC模式开发

    简介 Mean是JavaScript的全栈开发框架.更多介绍 用Express实现MVC模式开发是Mean Web全栈开发中的一部分. Express 是一个基于 Node.js 平台的极简.灵活的 ...

  2. JavaFX桌面应用-MVC模式开发,“真香”

    使用mvc模块开发JavaFX桌面应用在JavaFX系列文章第一篇 JavaFX桌面应用开发-HelloWorld 已经提到过,这里单独整理使用mvc模式开发开发的流程. ~ JavaFX桌面应用开发 ...

  3. Extjs MVC模式开发,循序渐进(一)

    本文讲述extjs mvc的Helloworld,tabPanel,event,页面布局layout等内容. 本页包含:MVC模式案例(一)~MVC模式案例(六),从搭建extjs mvc到点击按钮生 ...

  4. 【转】利用MVC模式开发Java应用程序[组图]

    Java是一种面向对象的语言,是实现面向对象编程的强大工具.我们在实际编程中,应该运用并发挥其最大效能.但是,要利用面向对象编程思想,自己独立开 发出好的Java应用程序,非凡是大.中型程序,并不是一 ...

  5. Angular——MVC模式开发实战

    创建项目 创建工作目录 使用bower下载需要插件 git init.add.commit之后得到分支master,再创建developer分支,然后再此分支上进行具体功能开发 MVC架构 之前小项目 ...

  6. .net使用mvc模式开发web应用 模型与视图间的数据处理

    http://www.cnblogs.com/JeffreyZhao/archive/2009/02/27/mvc-use-strong-type-everywhere.html#3427764 本文 ...

  7. 使用MVC模式开发一简单的销售额查询系统

    与上一篇比较,只改变了index.jsp文件中form的提交路径 <form action="ShowServlet" method="post"> ...

  8. 基于MVC模式开发的后台框架

    1.ThinkCMF 2.NFine快速开发平台 3.力软快速开发框架 如有好的开发框架希望可以一起交流

  9. mvc模式开发

  10. MVC模式在游戏开发的应用

    原地址: http://www.cocoachina.com/gamedev/2012/1129/5212.html MVC是三个单词的缩写,分别为:模型(Model).视图(View)和控制Cont ...

随机推荐

  1. python 字典 dict items values keys

    dict.items() 1 >>> d = dict(one=1,two=2) 2 >>> it1 = d.items() 3 >>> it1 ...

  2. 洛谷P3209 [HNOI2010]平面图判定(2-SAT)

    传送门 看到哈密顿回路就被吓傻了……结果没有好好考虑性质…… 首先,平面图有个性质:边数小于等于$3n-6$(我也不知道为啥),边数大于这个的直接pass 然后考虑原图,先把哈密顿回路单独摘出来,就是 ...

  3. Django学习:ORM

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...

  4. 洛谷 P2672 推销员

    题目传送门 解题思路: 我们会发现本题有一个特性,就是如果我们走到一个更远的地方,那么近的地方距离原点的距离我们可以忽略. 本题要求最大的疲劳值,所以我们需要排序,第一个想到堆,反正我是先想到堆. 然 ...

  5. Jquery | 基础 | 慕课网 | 元素选择器

    getElementsByTagName方法得到页面所有的<div>元素 var divs = document.getElementsByTagName('div'); 与 同样的效果, ...

  6. Python之单元测试——HTMLTestRunner

    前置条件:把HTMLTestRunner.py文件拷贝到External Libraries—>site-packages里面 import unittestimport HTMLTestRun ...

  7. Hdu 5459 Jesus Is Here (2015 ACM/ICPC Asia Regional Shenyang Online) 递推

    题目链接: Hdu 5459 Jesus Is Here 题目描述: s1 = 'c', s2 = 'ff', s3 = s1 + s2; 问sn里面所有的字符c的距离是多少? 解题思路: 直觉告诉我 ...

  8. Helvetic Coding Contest 2017 online mirror (teams allowed, unrated) J

    Description Heidi's friend Jenny is asking Heidi to deliver an important letter to one of their comm ...

  9. 转 Oracle最新PSU大搜罗

    Quick Reference to Patch Numbers for Database/GI PSU, SPU(CPU), Bundle Patches and Patchsets (文档 ID ...

  10. 转 sql 查出一张表中重复的所有记录数据

    select * from DB_PATCH awhere lower(a.db_name) in (select lower(db_name) from DB_PATCH group by lowe ...