建立Java Web Project并进行JDBC操作

最近正在学习Java Web,下面是练习的一个Student数据库的小项目。(因为只是刚刚做,其中有不对的,还请谅解)

实验内容:

1、首先搭建JSP的服务器运行环境,并进行测试。

2、新建一Web项目,部署程序到服务器,启动服务器程序,运行该项目的首页面文件(index.jsp),查看其转译后的.java文件。

3、JDBC操作单个表,进行表中数据的增、删、改、查功能,利用JSP页面进行数据的查询操作和增加操作。

 

实验步骤:

前期工作:

一、软件安装与配置

1、安装JDK(根据操作系统位数,决定是安装32位还是64位) ,建立安装JDK1.7之上版本;

2、安装MyEclipse(eclipse也可以);

3、安装数据库MySQL,注意记录密码,JAVA编程时使用;

4、配置Tomcat服务器,注意不使用系统自带服务器;

5、安装dreamweaver.(这里没用到)

建立工程

思路:三层架构(数据访问层、业务逻辑层、界面层)JDBC操作单表数据维护的实现:

1 创建数据库school及表student

2 创建三个层次的包:

cn.sdut.dao——放置数据访问层的类和接口

cn.sdut.biz——放置业务逻辑层的类和接口

cn.sdut.view——放置界面层的类和接口


3 创建cn.sdut.po包,里面放置Student.java类——JavaBean

4 各层次的程序代码:

(1)数据访问层:(cn.sdut.dao)

BaseDao.java——各种公共变量、数据库的连接和各种公共变量的关闭方法

StudentDao.java——学生表数据的增、删、改、查方法

(2)业务逻辑层:(cn.sdut.biz)

(3)界面层:(cn.sdut.view)

Main.java——测试

前端步骤级代码

1,建立名称为“student”web project 其下包括

a)  Cn.sdut.dao包
BaseDao java文件
StudentDao java 文件(继承BaseDao.java)

b)  Cn.sdut.biz包

c)  Cn.sdut.view包
Main.java(主函数)

d)  Co.sdut.po包

Student.java

 

2, 下面是每个类的代码:

a)Studen.java

package cn.sdut.po;
 
public classStudent {
   private int id;
   private Stringname;
   private Stringbirthday;
   private float score;
  
   public void setBirthday(Stringbirthday) {
         this.birthday = birthday;
      }
   public void setId(int id) {
      this.id = id;
   }
   public void setName(String name) {
      this.name = name;
   }
   public void setScore(float score) {
      this.score = score;
   }
   public String getBirthday() {
      return birthday;
   }
   public String getName() {
      return name;
   }
   public float getScore() {
      return score;
   }
   public int getId() {
      return id;
   }
   @Override
   public String toString() {
      return "Student [id="+ id + ", name="+ name+ ", birthday="
            +birthday+ ", score=" + score+ "]";
   }
}


b) BaseDao.java

package cn.sdut.dao;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
//import java.sql.Statement;
 
//import com.mysql.jdbc.Statement;
 
public classBaseDao {
   // 1 定义数据库访问公共变量
   Connectioncon;
   PreparedStatement pst;
   ResultSetrs;
   // 2 定义数据库的链接方法
   public Connection getConn() {
      // 1 加载jdbc驱动
 
      try {
         Class.forName("com.mysql.jdbc.Driver");
      }catch(ClassNotFoundException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
      // 2 得到数据库的链接
      try {
         Stringurl = "jdbc:mysql://localhost:3305/school";
         con = DriverManager.getConnection(url,"root","mysql");
      }catch(Exception e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
      return con;
   }
 
   // 3 关闭conn,pst,rs
   public void closeAll() {
      try {
         if (rs !=null) {
            rs.close();
         }
         if (pst !=null) {
            pst.close();
         }
         if (con !=null) {
            con.close();
         }
      }catch(SQLException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
   }
}


c)StudenDao.java

packagecn.sdut.dao;
 
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.ArrayList;
importjava.util.List;
 
importcn.sdut.po.Student;
 
publicclass StudentDao extends BaseDao {
   //建立student表
   public boolean creat() {
      boolean result = false;
 
      try {
         con = getConn();
         String sql = "create tablestudent(id int primary key auto_increment,name varchar(20) not null,birthdaydate ,score float(1));";
         pst= con.prepareStatement(sql);
         result = pst.execute();
      } catch (SQLException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
      return result;
   }
   // 增
   public int add(Student stu) {
      int result = 0;
      try {
         con = getConn();
         String sql = "insert intostudent(name,birthday,score,id) values(?,?,?,?)";
         pst = con.prepareStatement(sql);
         pst.setString(1, stu.getName());
         pst.setString(2, stu.getBirthday());
         pst.setFloat(3, stu.getScore());
         pst.setInt(4, stu.getId());
         result = pst.executeUpdate();// 可执行DML类型(insert,updata,delete),返回更新所影响的行数
      } catch (SQLException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      } finally {
         closeAll();
      }
      return result;
   }
 
   // 删
   public int del(int id) {
      int result = 0;
 
      try {
         con = getConn();
         String sql = "delete from studentwhere id=?";
         pst = con.prepareStatement(sql);
         pst.setInt(1, id);
         result = pst.executeUpdate();
      } catch (SQLException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
      return result;
   }
 
   // 改
   public int updata(Student stu) {
      int result = 0;

      try {
         con = getConn();
         String sql = "update student setname=? ,birthday=?,score=?  whereid=?";
         pst = con.prepareStatement(sql);
         pst.setString(1, stu.getName());
         pst.setString(2, stu.getBirthday());
         pst.setFloat(3, stu.getScore());
         pst.setInt(4, stu.getId());
         result = pst.executeUpdate();
      } catch (SQLException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      } finally {
         closeAll();
      }
      return result;
   }
 
   // 查
   public List<Student> queryAll() {
      List<Student> students = newArrayList<Student>();
 
      try {
         con = getConn();
         String sql = "select * fromstudent";
 
         pst = con.prepareStatement(sql);
         ResultSet rs = pst.executeQuery();
         while (rs.next()) {
            Student stu = new Student();
            stu.setId(rs.getInt(1));
            stu.setName(rs.getString(2));
            stu.setBirthday(rs.getString(3));
            stu.setScore(rs.getFloat(4));
            students.add(stu);
         }
      } catch (SQLException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      } finally {
         closeAll();
      }
      return students;
   }

}

d)Main.java

packagecn.sdut.view;
 
//import java.util.Iterator;
import java.util.List;
 
import cn.sdut.dao.StudentDao;
import cn.sdut.po.Student;
 
public class Main {
   publicstatic void main(String[] args) {
      StudentDaostudentDao = new StudentDao();
      Studentstudent = new Student();
      studentDao.creat();
      /*student.setId(2);
      student.setName("xueba");
      student.setBirthday("1995-1-1");
      student.setScore(77);
      studentDao.add(student);*/
      student.setId(1);
      student.setName("66");
      student.setBirthday("1999-1-1");
      student.setScore(88);
     
      //studentDao.add(student);
     
      //studentDao.del(4);
     
      studentDao.updata(student);
      List<Student>students = studentDao.queryAll();
     
       for(Student stu:students){System.out.println(stu); }
       
      /*for(Iterator<Student> stu = students.iterator(); stu.hasNext();) {
         System.out.println(stu);
      }*/
   }
}

3,启动TomCat服务器

4,执行Main函数得到:


说明测试成功。

前端代码及其步骤:

不要忘记将mysql-connector-java-bin.jar放到bin目录下

建立增删改的各个jsp文件及其操作jsp文件


jsp文件如下:

 1)index.jsp

<%@pageimport="cn.sdut.po.Student"%>
<%@pageimport="cn.sdut.dao.StudentDao"%>
<%@ page language="java"import="java.util.*"pageEncoding="utf-8"%>
<%
   Stringpath = request.getContextPath();
   StringbasePath = request.getScheme() + "://"
         +request.getServerName() + ":" + request.getServerPort()
         +path + "/";
%>
<%
   StudentDaost=newStudentDao();
   List<Student>stuList = st.queryAll();
    %>
<!DOCTYPEHTMLPUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN">
<html>
<head>
<basehref="<%=basePath%>">
 
<title>My JSP'index.jsp' starting page</title>
<metahttp-equiv="pragma"content="no-cache">
<metahttp-equiv="cache-control"content="no-cache">
<metahttp-equiv="expires"content="0">
<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
<metahttp-equiv="description"content="This is my page">
<!--
   <linkrel="stylesheet" type="text/css"href="styles.css">
   -->
</head>
 
<body>
   <tableborder="1">
      <tr>
         <thwidth="50">序号</th>
         <thwidth="50">姓名</th>
         <thwidth="100">出生年月</th>
         <thwidth="50">成绩</th>
      </tr>
   <%
         for (Student stu : stuList){
            out.print("<tr>");
            out.print("<td>");
            out.print(stu.getId());
            out.print("</td>");
           
            out.print("<td>");
            out.print(stu.getName());
            out.print("</td>");
           
            out.print("<td>");
            out.print(stu.getBirthday());
            out.print("</td>");
            out.print("<td>");
            out.print(stu.getScore());
            out.print("</td>");
            out.print("</tr>");
         }
      %>
   </table>
   <ul>
      <li><ahref="addStudent.jsp">增加学生</a></li>
      <li><ahref="delStudent.jsp">删除学生</a></li>
      <li><ahref="updateStudent.jsp">更新信息</a></li>
</body>
</html>


2增加学生

    a)addStudent.jsp

<%@ page language="java"import="java.util.*"
    contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPEhtmlPUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">
<title>增加学生</title>
</head>
<body>
    <formaction="doAdd.jsp"method="post">
       <table>
           <caption>增加学生</caption>
           <tr>
              <td>姓名:</td>
              <td><inputtype="text"name="name"/></td>
           </tr>
           <tr>
              <td>出生年月:</td>
              <td><inputtype="text"name="birthday"/></td>
           </tr>
           <tr>
              <td>成绩:</td>
              <td><inputtype="text"name="score"/></td>
           </tr>
           <tralign="center">
              <tdcolspan="2"><inputtype="submit"value="确定"/><input
                  type="reset"value="取消"/></td>
           </tr>
       </table>
    </form>
</body>
</html>


 bdoStuden.jsp

<%@ page language="java"contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@pageimport="cn.sdut.dao.StudentDao"%>
<%@pageimport="cn.sdut.po.Student"%>
<!DOCTYPEhtmlPUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">
<title>Insert titlehere</title>
</head>
<body>
    <%
       //1 接受客户端传来的数据并封装成Student类的对象
 
       request.setCharacterEncoding("utf-8");
       String name = request.getParameter("name");
       String birthday = request.getParameter("birthday");
       String score1 = request.getParameter("score");
       float score = Float.parseFloat(score1);
       Student student = new Student();
       student.setName(name);
       student.setBirthday(birthday);
       student.setScore(score);
 
       //2 调用StudentDao的add方法,向数据库表中增加记录
       StudentDao studentDao = new StudentDao();
       studentDao.add(student);
 
       //3 转向index.jsp,展示最新的表中的数据
       response.sendRedirect("index.jsp");
    %>
</body>
</html>


5,打开浏览器输入如下:


点击“增加学生”


点击“确认”


3删除学生

a)  delStuden.jsp代码

<%@ page language="java"import="java.util.*"pageEncoding="UTF-8"%>
<%
   Stringpath = request.getContextPath();
   StringbasePath = request.getScheme() + "://"
         +request.getServerName() + ":" + request.getServerPort()
         +path + "/";
%>
 
<!DOCTYPEHTMLPUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN">
<html>
<head>
<basehref="<%=basePath%>">
 
<title>My JSP 'delStudent.jsp'starting page</title>
 
<metahttp-equiv="pragma"content="no-cache">
<metahttp-equiv="cache-control"content="no-cache">
<metahttp-equiv="expires"content="0">
<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
<metahttp-equiv="description"content="This is my page">
<!--
   <linkrel="stylesheet" type="text/css"href="styles.css">
   -->
 
</head>
 
<body>
   <formaction="doDel.jsp"method="post">
   <table>
      <caption>删除学生</caption>
      <tr>
         <td>序号:</td>
         <td><inputtype="text"name="id"></td>
      </tr>
      <tr>
         <tdalign="center"colspan="2"><inputtype="submit"value="确认"><input
            type="reset"value="取消"></td>
      </tr>
   </table>
   </form>
</body>
</html>
 


b)  doDel.jsp代码

<%@ page language="java"import="java.util.*"pageEncoding="UTF-8"%>
<%@pageimport="cn.sdut.dao.StudentDao" %>
<%
String path =request.getContextPath();
String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPEHTMLPUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN">
<html>
 <head>
   <basehref="<%=basePath%>">
   
   <title>My JSP 'doDel.jsp' starting page</title>
   
   <metahttp-equiv="pragma"content="no-cache">
   <metahttp-equiv="cache-control"content="no-cache">
   <metahttp-equiv="expires"content="0">   
   <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
   <metahttp-equiv="description"content="This is my page">
   <!--
   <linkrel="stylesheet" type="text/css"href="styles.css">
   -->
 
 </head>
 
 <body>
   <%
      request.setCharacterEncoding("utf-8");
      String ids=request.getParameter("id");
      int id = Integer.parseInt(ids);
      StudentDao stuDao=new StudentDao();
      stuDao.del(id);
      response.sendRedirect("index.jsp");
    %>
 </body>
</html>


 

点击“删除学生”


点击“确认”后


4更改信息

a) updateStudent.jsp代码

<%@ page language="java"import="java.util.*"pageEncoding="UTF-8"%>
<%
   Stringpath = request.getContextPath();
   StringbasePath = request.getScheme() + "://"
         +request.getServerName() + ":" + request.getServerPort()
         +path + "/";
%>
 
<!DOCTYPEHTMLPUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN">
<html>
<head>
<basehref="<%=basePath%>">
 
<title>My JSP'updateStudent.jsp' starting page</title>
 
<metahttp-equiv="pragma"content="no-cache">
<metahttp-equiv="cache-control"content="no-cache">
<metahttp-equiv="expires"content="0">
<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
<metahttp-equiv="description"content="This is my page">
<!--
   <linkrel="stylesheet" type="text/css"href="styles.css">
   -->
 
</head>
 
<body>
   <formaction="doUpdate.jsp"method="post">
      <table>
         <caption>更新信息</caption>
         <tr>
            <td>序号:</td>
            <td><inputtype="text"name="id"></td>
         </tr>
         <tr>
            <td>姓名:</td>
            <td><inputtype="text"name="name"></td>
         <tr>
            <td>出生年月:</td>
            <td><inputtype="text"name="birthday"></td>
         <tr>
            <td>分数:</td>
            <td><inputtype="text"name="score"></td>
         </tr>
         <tr>
            <tdalign="center"colspan="2"><inputtype="submit"value="确定"><input
                type="reset"value="取消"></td>
      </table>
   </form>
</body>
</html>


c)  doUpdate.jsp代码

<%@ page language="java"import="java.util.*"pageEncoding="UTF-8"%>
<%@ page import="cn.sdut.dao.StudentDao"%>
<%@ page import="cn.sdut.po.Student"%>
<%
String path =request.getContextPath();
String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPEHTMLPUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN">
<html>
 <head>
   <basehref="<%=basePath%>">
   
   <title>My JSP 'doUpdate.jsp' starting page</title>
   
   <metahttp-equiv="pragma"content="no-cache">
   <metahttp-equiv="cache-control"content="no-cache">
   <metahttp-equiv="expires"content="0">   
   <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
   <metahttp-equiv="description"content="This is my page">
   <!--
   <linkrel="stylesheet" type="text/css"href="styles.css">
   -->
 
 </head>
 
 <body>
   <%
      request.setCharacterEncoding("utf-8");
      String ids=request.getParameter("id");
      String name=request.getParameter("name");
      Stringbirthday=request.getParameter("birthday");
      String sco=request.getParameter("score");
      int id=Integer.parseInt(ids);
      float score=Float.parseFloat(sco);
     
      Student stu=new Student();
      stu.setId(id);
      stu.setName(name);
      stu.setBirthday(birthday);
      stu.setScore(score);
     
      StudentDao stuDao =new StudentDao();
      stuDao.updata(stu);
     
      response.sendRedirect("index.jsp");
    %>
 </body>
</html>


选择“更新信息”


点击“确认”


这样,一个简单的java web项目就完成了。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值