<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 26,  comments - 14,  trackbacks - 0

        基于數據庫的Java Web

    現今所有的 Web都是基于數據庫的,可見數據庫在Web中的開發時如此的重要。然而基本上所有的網站都是要求客戶登陸的時候都必須事先注冊賬號,這樣才能進入網頁,訪問其中的頁面,資源。。開發基于數據庫的Web程序時,涉及到多個用戶同時請求與數據庫建立"連接"的問題,但多用戶并發處理目前還是一個難點。該文在對傳統數據連接模式的分析基礎上,采用了一種基于對象的數據連接池的設計方案。通過連接對象放置預先建立的若干"連接",根據一定的策略管理這些"連接",防止"連接"過多內存開銷過大,及連接排隊過長問題。并用JAVA實現了該方案,在實際應用中提供了一個高效的連接管理策略,提高了Web數據庫應用系統的性能。

      一:在此我通過一個實際的例子談談我最近最Web得心得,首先我們建立一個javaWeb項目在Myeclipse下。首先建立好數據庫連接,即建立一個Vo對象User類,如下:
    package vo;
    /*
     
    用戶名稱:<input type="text" name="username"><br>
    用戶密碼:<input type="password" name="password"><br>
    用戶愛好:<input type="checkbox" name="hobby" value="1">游泳
      <input type="checkbox" name="hobby" value="2">足球<br>
    用戶性別:<input type="radio" name="gender" value="male">男
      <input type="radio" name="gender" value="female">女
      <input type="radio" name="gender" value="secret">保密<br>
    用戶職位:<select name="position">
      <option value="CEO">CEO</option>
      <option value="CFO">CFO</option>
      <option value="CTO">CTO</option>
      </select><br>
    用戶簡歷:<textarea rows="5" cols="20" name="resume"></textarea>
           <input type="submit" value="注冊">
           */
    public class User {
     
     private int id;
     private String userName;
     private String passWord;
     private String hobby;
     private String gender;
     private String position;
     private String resume;
     public int getId() {
      return id;
     }
     public void setId(int id) {
      this.id = id;
     }
     public String getUserName() {
      return userName;
     }
     public void setUserName(String userName) {
      this.userName = userName;
     }
     public String getPassWord() {
      return passWord;
     }
     public void setPassWord(String passWord) {
      this.passWord = passWord;
     }
     public String getHobby() {
      return hobby;
     }
     public void setHobby(String hobby) {
      this.hobby = hobby;
     }
     public String getGender() {
      return gender;
     }
     public void setGender(String gender) {
      this.gender = gender;
     }
     public String getPosition() {
      return position;
     }
     public void setPosition(String position) {
      this.position = position;
     }
     public String getResume() {
      return resume;
     }
     public void setResume(String resume) {
      this.resume = resume;
     }
     

    }


    二:這樣我們建立好了實體對象之后,現在我們來建立UserDAO接口和DAOFactory兩個類如下:

    package dao;

    import vo.User;

    public interface UserDAO {
     
     //建立一個接口
     
     void save(User user);

    }


     

    package factory;

    import impl.UserDaoImpl;
    import dao.UserDAO;

    public class DAOFactory {
     public static UserDAO getUserDAOInstance(){
      
      
      return new UserDaoImpl();
     }

    }


    三:現在我們來建立ConnectionUtil類,這里我才用我們最常用的一種方法來連接數據庫Database即:

    package db;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.util.Properties;

    public class ConnectionUtil {

      public Connection openConnection() {
      
      String driver = "";
      String url = "";
      String user = "";
      String password = "";
      Properties prop = new Properties();   //實例化一個配置文件的對象
      Connection conn = null;
      try {
       // 加載屬性文件
       prop.load(this.getClass().getClassLoader().getResourceAsStream(
         "DBConfig.properties"));
       driver = prop.getProperty("driver");
       url = prop.getProperty("url");
       user = prop.getProperty("user");
       password = prop.getProperty("password");
       // Class.forName加載驅動
       Class.forName(driver);
       // DriverManager獲得連接
       conn = DriverManager.getConnection(url,
         user, password);
       return conn;
      } catch (Exception e) {
       e.printStackTrace();
      }
      return null;
     }
    }

    四:是實現Java程序與數據庫的鏈接層建立一個UserDaoImpl類:


    package impl;

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;

     

    import vo.User;
    import dao.UserDAO;
    import db.ConnectionUtil;

    public class UserDaoImpl implements UserDAO{
     //實現接口UerDAO

     public void save(User user) {
      
      
      //實現接口類中的方法
      ConnectionUtil cu=new ConnectionUtil();//初始化連接的數據庫
      Connection conn=cu.openConnection();
      String sql = "insert into User(username,password,hobby,gender,position,resume) values(?,?,?,?,?,?)";
      try {
       PreparedStatement pstmt = conn.prepareStatement(sql);
       
       pstmt.setString(1, user.getUserName());
       pstmt.setString(2, user.getPassWord());
       pstmt.setString(3, user.getHobby());
       pstmt.setString(4, user.getGender());
       pstmt.setString(5, user.getPosition());
       pstmt.setString(6, user.getResume());
       
       pstmt.executeUpdate();
      } catch (SQLException e) {
       e.printStackTrace();
      }finally{
       try {
        conn.close();//關閉連接數據庫
       } catch (SQLException e) {
        e.printStackTrace();
       }
      }
     }
     }



    五:是通過網站往數據庫中加載數據,如下:


     

    package com.bx.Servletform;

    import java.io.IOException;
    import java.io.PrintWriter;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import dao.UserDAO;

    import factory.DAOFactory;

    import vo.User;

    public class RegisterServlet extends HttpServlet {
     
      
     public void doPost(HttpServletRequest request,HttpServletResponse response)
     throws ServletException,IOException{
      String username=request.getParameter("username");
      String password=request.getParameter("password");
      String[] hobby=request.getParameterValues("hobby");
      String gender=request.getParameter("gender");
      String resume=request.getParameter("resume");
      String position=request.getParameter("position");
      User user=new User();
      user.setUserName(username);
      user.setGender(gender);
      user.setPassWord(password);
      user.setPosition(position);
      user.setResume(resume);
      String hobbyStr="";
      if(hobby!=null&&hobby.length>0){
       for(int i=0;i<hobby.length;i++){
        hobbyStr=hobby[i]+":";
       }
      }
      user.setHobby(hobbyStr);
      UserDAO udao=DAOFactory.getUserDAOInstance();
      udao.save(user);
      PrintWriter out=response.getWriter();
      out.println("Hello World Servlet james");
      System.out.println("username |"+username);
      System.out.println("password |"+password);
      System.out.println("gender |"+gender);
      System.out.println("resume |"+resume);
      System.out.println("position |"+position);
      if(hobby!=null&& hobby.length>0){
       for(int i=0;i<hobby.length;i++){
        System.out.println(hobby[i]);
       }
      }
      //實現頁面的跳轉
      if(username!=null && username.equals("james")){
       
       request.getRequestDispatcher("/success.html").forward(request, response);
      
         }else{
      request.getRequestDispatcher("/failure.jsp").forward(request, response);
      
     }
     }


    現在我們來配置一下register,jsp吧,如下:

    <form action="/Servlet_Form_Project/form" method="post">
    <!--form 中有兩個最為重要的屬性-->
        用戶名稱:<input type="text" name="username"><br>
        用戶密碼:<input type="password" name="password"><br>
        用戶愛好:<input type="checkbox" name="hobby" value="1">游泳
          <input type="checkbox" name="hobby" value="2">足球<br>
        用戶性別:<input type="radio" name="gender" value="male">男
          <input type="radio" name="gender" value="female">女
          <input type="radio" name="gender" value="secret">保密<br>
        用戶職位:<select name="position">
          <option value="CEO">CEO</option>
          <option value="CFO">CFO</option>
          <option value="CTO">CTO</option>
          </select><br>
        用戶簡歷:<textarea rows="5" cols="20" name="resume"></textarea><br/>
               <input type="submit" value="注冊">
       </form>


    試圖效果如下:
     


    現在我們來配置一下WEB.xml如下所示:
     <servlet>
             <servlet-name>RegisterServlet</servlet-name>
            <servlet-class>com.bx.Servletform.RegisterServlet</servlet-class>
     <!-- this is servlet -->
     </servlet>
     <servlet-mapping>
            <servlet-name>RegisterServlet</servlet-name>
            <url-pattern>/form</url-pattern>
        </servlet-mapping>


    在此我們已經完成了Java Web與數據庫的連接:至此我們可以開始comcat,在瀏覽器中輸入連接的地址即:http://localhost:8080/Servlet_Form_Project/register.jsp
    得到頁面為:
       
    這時候我們可以查看數據庫中是否在如了我們輸入的數據即:

     

    posted on 2010-12-09 20:55 龍ぜ殘劍 閱讀(4394) 評論(2)  編輯  收藏

    FeedBack:
    # re: Java Web與數據庫相連接
    2010-12-10 11:10 | 小說庫
    很好的帖子,感謝分享  回復  更多評論
      
    # re: Java Web與數據庫相連接
    2016-02-26 18:12 | ss
    dd  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2016年2月>
    31123456
    78910111213
    14151617181920
    21222324252627
    282912345
    6789101112

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 浮力影院第一页小视频国产在线观看免费 | 免费观看a级毛片| 亚洲三级视频在线| 在线看片v免费观看视频777| 亚洲高清中文字幕综合网| 日韩午夜理论免费TV影院| 精品亚洲成AV人在线观看| **aaaaa毛片免费| 亚洲AV成人噜噜无码网站| 99久久免费精品国产72精品九九 | 亚洲免费视频播放| 无码专区永久免费AV网站| 亚洲国产精品综合久久网各| 91麻豆最新在线人成免费观看| 亚洲an日韩专区在线| 日韩一区二区在线免费观看| 免费精品视频在线| 亚洲精品无码久久一线| 小日子的在线观看免费| 亚洲日产2021三区| 成人au免费视频影院| 四虎成人精品国产永久免费无码| 亚洲区小说区图片区| 免费福利在线视频| 亚洲国产精品乱码在线观看97 | 一二三四免费观看在线电影 | 精品久久久久久国产免费了| 亚洲人成色777777在线观看| 3d成人免费动漫在线观看| 亚洲人成人伊人成综合网无码| 亚洲AⅤ永久无码精品AA| 日本一区午夜艳熟免费| 亚洲导航深夜福利| 亚洲精品97久久中文字幕无码| 国产午夜精品久久久久免费视| 亚洲国产精品成人综合久久久| 免费亚洲视频在线观看| 黄网站免费在线观看| 亚洲一区二区无码偷拍| 国产亚洲精午夜久久久久久| 波多野结衣在线免费视频|