建立JavaWebProject並進行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 queryAll() {
      List students = newArrayList();
 
      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);
      Liststudents = studentDao.queryAll();
     
       for(Student stu:students){System.out.println(stu); }
       
      /*for(Iterator 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();
   ListstuList = st.queryAll();
    %>
">




">
 




">
   
   
   
      
   
   ">
 




">
   
   
   
      
   
   
   <!--
   
   -->
   <%
      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");
    %>

 

選擇“更新信息”

點擊“確認”

這樣,一個簡單的java web項目就完成瞭。

發佈留言