<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免费播放王色电影| 99久久99久久精品免费看蜜桃| 伊人久久综在合线亚洲2019| 四虎成人精品永久免费AV| 亚洲AV无码不卡无码| 日韩在线永久免费播放| 91亚洲国产成人精品下载| 一级毛片免费播放| 亚洲精品免费在线| 无码国产精品一区二区免费I6| 天堂亚洲国产中文在线| 国产精品成人四虎免费视频| 免费很黄无遮挡的视频毛片| 337p日本欧洲亚洲大胆裸体艺术| 日本一区午夜艳熟免费| 亚洲美女免费视频| 精品免费久久久久久成人影院| 国产精品亚洲综合天堂夜夜| 久久久青草青青国产亚洲免观| 精品国产污污免费网站| 99久久亚洲综合精品成人网| 在线成人a毛片免费播放 | 无码视频免费一区二三区| 亚洲AV无码一区二区三区电影| 免费无遮挡无码永久在线观看视频| a毛片成人免费全部播放| 久久久亚洲精品无码| 最新欧洲大片免费在线| 精品在线视频免费| 久久精品国产亚洲网站| 免费a级毛片高清视频不卡 | 国产精品网站在线观看免费传媒| 亚洲人成网站在线播放影院在线| 亚洲成人福利在线| 日韩免费视频播播| 免费成人在线视频观看| 亚洲欧洲av综合色无码| 久久亚洲高清观看| 成人性生交大片免费看午夜a| 中文字幕无码毛片免费看|