麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

使用jdbc實現簡單的mvc模式的增刪改查

2019-11-14 23:32:14
字體:
來源:轉載
供稿:網友
使用jdbc實現簡單的mvc模式的增刪改查

Mvc模式設計:

視圖:添加界面(addUser.jsp),修改界面(updateUser.jsp),顯示頁面(allUser.jsp)

控制器:添加信息控制器(AddUserServlet),修改信息控制器(UpdateUserServlet),刪除信息控制器(DeleteUserServlet),顯示信息控制器(FindAllUserServlet)

模型:userbean

數據庫:DBBean

總體設計:

  添加信息模塊:用戶通過添加信息界面(addUser.jsp)提交表單,提交的信息有添加信息控制器(AddUserServlet)控制,控制器通過調用userBean的add方法添加信息,在request對象中添加成功與否的消息,成功則返回成功,跳轉到顯示界面,失敗則返回失敗消息,跳轉到添加信息頁面。

  修改信息模塊:用戶是通過點擊顯示頁面相應項的修改按鈕進入到修改頁面中,從顯示頁面跳轉過來時,request對象中封裝的信息會顯示在當前頁面中的特定位置(通過表達式語言),提交表單之后交給修改信息控制器,通過調用更新方法更新,在request對象中封裝成功與否消息,成功則返回成功,跳轉到顯示界面,失敗則返回失敗消息,跳轉到添加信息頁面。

  顯示信息模塊:顯示當前頁的所有用戶信息,每一條信息都有修改和刪除選項,修改則進入修改頁面,刪除則交給刪除控制器,控制器通過調用刪除方法。

詳細設計:

數據庫層:DBBean

實現功能:獲得與數據庫的連接,執行查詢操作返回結果集,執行更新操作,關閉連接。

 1 public class DBBean { 2     PRivate Connection con; 3     private Statement stmt; 4     private ResultSet rs; 5     public DBBean() { 6          7     } 8     //獲取數據庫的連接 9     public Connection getConnection() throws Exception10     {11         String url="jdbc:MySQL://localhost:3306/bookstore";12         String dbuser="root";13         String dbpass="";14         if(con==null)15         {16             Class.forName("com.mysql.jdbc.Driver");17             con=DriverManager.getConnection(url, dbuser, dbpass);18         }19         return con;20     }21     22     //執行查詢語句,返回結果集23     public ResultSet executeQuery(String sql) throws Exception24     {25         if(con==null)26         {27             throw new Exception("沒有連接對象可用");28         }29         stmt=con.createStatement();30         rs=stmt.executeQuery(sql);31         return rs;32     }33     34     public int executeUpdate(String sql)throws Exception35     {36         if(con==null)37         {38             throw new Exception("沒有連接對象可用");39         }40         stmt=con.createStatement();41         42         return stmt.executeUpdate(sql);43     }44     45     public void close()46     {47         if(rs!=null)48             try {49                 rs.close();50             } catch (SQLException e) {51                 e.printStackTrace();52             }53         try {54             stmt.close();55         } catch (SQLException e) {56             // TODO Auto-generated catch block57             e.printStackTrace();58         }59         try {60             con.close();61         } catch (SQLException e) {62             // TODO Auto-generated catch block63             e.printStackTrace();64         }65     }66 }
View Code

模型層設計:UserBean

1.add();添加用戶信息

 1 public void add() throws Exception { 2         Connection con = null; 3         DBBean db = new DBBean(); 4         String sql = "insert into usertable values('"+userid+"','"+username+"','"+userpass+"','"+type+"','"+new java.sql.Date(birthday.getTime())+"','"+degree+"','"+local+"','"+email+"','"+address+"','"+comment+"')"; 5  6         try { 7             con = db.getConnection(); 8             db.executeUpdate(sql); 9         } catch (Exception e) {10             System.out.println(e.toString());11 12         } finally {13             db.close();14         }15     }
View Code

2.UserBeanfindUserById(Stringuserid);根據主鍵查詢用戶

 1 public UserBean findUserById(String userid) throws Exception { 2         Connection con = null; 3         ResultSet rs=null; 4         DBBean db = new DBBean(); 5         String sql = "select * from usertable where userid='"+userid+"'"; 6  7         try { 8             con = db.getConnection(); 9             rs=db.executeQuery(sql);10             11             if(rs.next())12             {13                 String tmpUserid=rs.getString(1);14                 String tmpUsername=rs.getString(2);15                 String tmpUserpass=rs.getString(3);16                 String tmpType=rs.getString(4);17                 java.util.Date tmpBirthday=rs.getDate(5);18                 String tmpDegree=rs.getString(6);19                 String tmpLocal =rs.getString(7);20                 String tmpEmail=rs.getString(8);21                 String tmpAddress=rs.getString(9);22                 String tmpComment=rs.getString(10);23                 UserBean user=new UserBean();24                 user.setAddress(tmpAddress);25                 user.setBirthday(tmpBirthday);26                 user.setComment(tmpComment);27                 user.setDegree(tmpDegree);28                 user.setEmail(tmpEmail);29                 user.setLocal(tmpLocal);30                 user.setType(tmpType);31                 user.setUserid(tmpUserid);32                 user.setUsername(tmpUsername);33                 user.setUserpass(tmpUserpass);34                 return user;35             }36         } catch (Exception e) {37             System.out.println(e.toString());38         } finally {39             db.close();40         }    41         return null;42     }
View Code

3.intupdate();更新用戶信息

 1 public int update(String userid) throws Exception { 2         Connection con=null; 3         DBBean db = new DBBean(); 4         String sql="update usertable set username='"+username+"',userpass='"+userpass+"',birthday='"+new java.sql.Date(birthday.getTime())+"',degree='"+degree+ 5                 "',local='"+local+"',email='"+email+"',address='"+address+"',comment='"+comment+"' where userid='"+userid+"'"; 6         try 7         { 8             con=db.getConnection(); 9             return db.executeUpdate(sql);10         }catch(Exception e)11         {12             System.out.println(e.toString());13         }14         finally{db.close();}15         return 0;16     }
View Code

4.Intdelete(Stringuserid);//根據傳入的用戶id刪除用戶信息

 1 public int delete(String userid) throws Exception { 2         Connection con=null; 3         DBBean db = new DBBean(); 4         String sql="delete  from usertable where userid='"+userid+"'"; 5         try 6         { 7             con=db.getConnection(); 8             return db.executeUpdate(sql); 9         }catch(Exception e)10         {11             System.out.println(e.toString());12         }13         finally{db.close();}14         return 0;15     }
View Code

5.booleanhasExist(Stringuserid);//查詢用戶是否存在

 1 public boolean hasExist(String userid) throws Exception { 2         boolean find=false; 3         Connection con = null; 4         ResultSet rs=null; 5         DBBean db = new DBBean(); 6         String sql = "select * from usertable where userid='"+userid+"'"; 7         try 8         { 9             con=db.getConnection();10             rs= db.executeQuery(sql);11             if(rs.next())12             {13                 find=true;14             }15             else16             {17                 find =false;18             }19         }catch(Exception e)20         {21             System.out.println(e.toString());22         }23         finally{db.close();}24     return find;25         26     }
View Code

6.IntegergetPageCount()查詢數據庫中總數對應在頁面顯示的總頁數(10/頁)

 1 public Integer getPageCount() throws Exception { 2         int pageCount=1; 3         Connection con = null; 4         ResultSet rs=null; 5         DBBean db = new DBBean(); 6         String sql="select count(*) from usertable"; 7         try 8         { 9             con=db.getConnection();10             rs= db.executeQuery(sql);11             if(rs.next())12             {13                 int n=rs.getInt(1);14                 pageCount=(n-1)/10+1;15             }16             17         }catch(Exception e)18         {19             System.out.println(e.toString());20         }21         finally{db.close();}22         return new Integer(pageCount);23     }
View Code

7.ArrayListfindAllUser(StringpageNo)返回當前頁面的所有數據

//計算當前頁的開始和結束行數,從數據庫中查詢所有數據,循環遍歷結果集,把在當前頁的內容放在ArrayList中

 1 public ArrayList findAllUser(String pageNo) throws Exception { 2         ArrayList<UserBean> userlist=new ArrayList<UserBean>(); 3         Connection con = null; 4         ResultSet rs=null; 5         DBBean db = new DBBean(); 6         String sql="select * from usertable"; 7         try 8         { 9             con=db.getConnection();10             rs= db.executeQuery(sql);11             int ipageNo=1;12             try{13                 iPageNo=Integer.parseInt(pageNo);14             }15             catch(Exception e){}16             int begin=(iPageNo-1)*10+1;//當前頁面開始的記錄17             int end=iPageNo*10;//當前頁面結束的記錄18             int index=1;19             UserBean user=null;20             while(rs.next())21             {22                 if(begin>index)//遇到在當前頁面之前的記錄直接跳過23                     continue;24                 if(end<index)//遇到在當前頁面之后的記錄退出循環25                     break;26                 String tmpUserid=rs.getString(1);27                 String tmpUsername=rs.getString(2);28                 String tmpUserpass=rs.getString(3);29                 String tmpType=rs.getString(4);30                 java.util.Date tmpBirthday=rs.getDate(5);31                 String tmpDegree=rs.getString(6);32                 String tmpLocal =rs.getString(7);33                 String tmpEmail=rs.getString(8);34                 String tmpAddress=rs.getString(9);35                 String tmpComment=rs.getString(10);36                 user=new UserBean();37                 user.setAddress(tmpAddress);38                 user.setBirthday(tmpBirthday);39                 user.setComment(tmpComment);40                 user.setDegree(tmpDegree);41                 user.setEmail(tmpEmail);42                 user.setLocal(tmpLocal);43                 user.setType(tmpType);44                 user.setUserid(tmpUserid);45                 user.setUsername(tmpUsername);46                 user.setUserpass(tmpUserpass);47                 userlist.add(user);//查找到的記錄封裝好放在userlist中48                 index++;49             }50             51             52         }catch(Exception e)53         {}54         finally{db.close();}55         return userlist;56     }
View Code

控制器設計

1.添加用戶控制器:從request對象中取出內容封裝在UserBean對象中,判斷用戶id是否存在,調用add方法添加信息,跳轉到顯示頁面

 1 public void doGet(HttpServletRequest request, HttpServletResponse response) 2             throws ServletException, IOException { 3         String tmpUserid=request.getParameter("userid"); 4         String tmpUsername=request.getParameter("username"); 5         String tmpUserpass=request.getParameter("userpass"); 6         String birthday=request.getParameter("birthday"); 7         DateFormat df=new SimpleDateFormat("yyyy-mm-dd"); 8         java.util.Date tmpBirthday=null; 9         try10         {tmpBirthday=df.parse(birthday);11             12         }catch(Exception e)13         {}14         15         String tmpDegree=request.getParameter("degree");16         tmpDegree=new String(tmpDegree.getBytes("8859_1"));17         String tmpLocal =request.getParameter("local");18         tmpLocal=new String(tmpLocal.getBytes("8859_1"));19         String tmpEmail=request.getParameter("email");20         String tmpAddress=request.getParameter("address");21         String tmpComment=request.getParameter("comment");22         UserBean user=new UserBean();23         user.setAddress(tmpAddress);24         user.setBirthday(tmpBirthday);25         user.setComment(tmpComment);26         user.setDegree(tmpDegree);27         user.setEmail(tmpEmail);28         user.setLocal(tmpLocal);29         30         user.setUserid(tmpUserid);31         user.setUsername(tmpUsername);32         user.setUserpass(tmpUserpass);33         String forward=null;34         String info=null;35         try {36             if(user.hasExist(tmpUserid))37             {38                 info="用戶已存在";39                 forward="addUser.jsp";40             }41             else42             {43                 try{44                     user.add();45                     forward="FindAllUser";46                     info="添加成功";47                 }catch(Exception e)48                 {49                     info="數據庫異常";50                     forward="FindAllUser";51                 }52             }53         } catch (Exception e) {54             // TODO Auto-generated catch block55             e.printStackTrace();56         }57         58         request.setAttribute("info", info);59         RequestDispatcher rd=request.getRequestDispatcher(forward);//更新成功返回用戶列表界面60         rd.forward(request, response);61     }
View Code

2.更新用戶信息控制器:

 1 public void doGet(HttpServletRequest request, HttpServletResponse response) 2             throws ServletException, IOException { 3         String tmpUserid=request.getParameter("userid"); 4         String tmpUsername=request.getParameter("username"); 5         String tmpUserpass=request.getParameter("userpass"); 6         String birthday=request.getParameter("birthday"); 7         DateFormat df=new SimpleDateFormat("yyyy-mm-dd"); 8         java.util.Date tmpBirthday=null; 9         try10         {tmpBirthday=df.parse(birthday);11             12         }catch(Exception e)13         {}14         15         String tmpDegree=request.getParameter("degree");16         String tmpLocal =request.getParameter("local");17         String tmpEmail=request.getParameter("email");18         String tmpAddress=request.getParameter("address");19         String tmpComment=request.getParameter("comment");20         UserBean user=new UserBean();21         user.setAddress(tmpAddress);22         user.setBirthday(tmpBirthday);23         user.setComment(tmpComment);24         user.setDegree(tmpDegree);25         user.setEmail(tmpEmail);26         user.setLocal(tmpLocal);27         28         user.setUserid(tmpUserid);29         user.setUsername(tmpUsername);30         user.setUserpass(tmpUserpass);31         String info;32         try{33             if(user.update(tmpUserid)>0)34             {35                 info="信息更新成功";36             }37             else38             {39                 info="信息更新失敗";40             }41             42         }catch(Exception e)43         {44             info="數據庫異常";45         }46         request.setAttribute("info", info);47         RequestDispatcher rd=request.getRequestDispatcher("FindAllUser");//更新成功返回用戶列表界面48         rd.forward(request, response);    49     }
View Code

3.顯示信息控制器:

//先獲取當前頁碼,根據當前頁碼調用UserBean中的方法返回userlist放在request對象中,跳轉到顯示頁面。

 1 public void doGet(HttpServletRequest request, HttpServletResponse response) 2             throws ServletException, IOException { 3         int pageNo=1; 4         String strPageNo=request.getParameter("pageNo"); 5         if(strPageNo!=null) 6         { 7             pageNo=Integer.parseInt(strPageNo); 8         } 9         UserBean user=new UserBean();10         try{11             ArrayList<UserBean> userlist=user.findAllUser(String.valueOf(pageNo));12             request.setAttribute("userlist", userlist);13             Integer pageCount=user.getPageCount();14             request.setAttribute("pageCount", pageCount);15             request.setAttribute("pageNo", pageNo);16         }catch(Exception e)17         {18             19         }20         RequestDispatcher rd=request.getRequestDispatcher("userlist.jsp");21         rd.forward(request, response);22     }
View Code

4.刪除用戶信息控制器:

 1 public void doGet(HttpServletRequest request, HttpServletResponse response) 2             throws ServletException, IOException { 3         String userid=request.getParameter("userid"); 4         UserBean user=new UserBean(); 5         String info=null; 6         try 7         { 8             if(user.delete(userid)>0) 9             {10                 info="刪除成功";11             }12             else13             {14                 info="刪除失敗 ";15             }16         }catch(Exception e)17         {18             info="數據異常";19         }20         request.setAttribute("info", info);21         RequestDispatcher rd=request.getRequestDispatcher("FindAllUser");22         rd.forward(request, response);23 24     }
View Code

視圖設計

只簡單介紹顯示頁面的設計:

1.Javascript部分:

<script language="javascript">    function init() {        alert("${info}");   獲取request對象中的info消息顯示    }    </script><c:if test="${!empty info}"><script language="javascript">    window.onload=init;    </script></c:if>

2.

<!--分頁顯示-->    <table align="center">        <tr>            <td>共有${pageCount}頁,這是第${pageNo}頁</td><!--用表達式語言取出request對象中的消息-->            <c:if test="${pageNo==1 }"><!--第一頁和最后一頁要特別對待,第一頁中的‘第一頁’和‘上一頁’不能顯示為超鏈接,最后一頁中的‘最后一頁’和‘下一頁’不能顯示為超鏈接-->                <td>第一頁</td>                <td>上一頁</td>            </c:if>            <!-- 如果不是第一頁顯示超鏈接 -->            <c:if test="${pageNo!=1 }">                <td><a href="findAllUser?pageNo=1">第一頁</a></td>                <td><a href="findAllUser?pageNo=${pageNo-1 }">上一頁</a></td>            </c:if>            <c:if test="${pageNo==pageCount }">    <td>  下一頁</td>    <td>  最后一頁</td>       </c:if>            <!-- 如果不是第一頁顯示超鏈接 -->            <c:if test="${pageNo!=1 }">                <td><a href="FindAllUser?pageNo=${pageNo+1 }">下一頁</a></td>                <td><a href="FindAllUser?pageNo=pageCount">最后一頁</a></td>            </c:if>            <td>                <form action="FindAllUser">                    跳轉到<input type="text" name="pageNo">頁 <input type="submit"                        value="跳轉">                </form>            </td>        </tr>    </table>    <table align="center">    <tr><td>用戶編號</td>    <td>用戶名</td>    <td>生日</td>    <td>學歷</td>    <td>地區</td>    <td>Email</td>    <td>地址</td>    </tr>    <c:forEach items="${userlist }" var="user">        <tr>            <td>${user.userid }</td>            <td>${user.username }</td>            <td>${user.birthday }</td>            <td>${user.degree }</td>            <td>${user.local }</td>            <td>${user.email }</td>            <td>${user.address }</td>            <td>...</td>            <td>        <!--兩個表單分別用來處理刪除和修改操作-->            <form action="DeleteUser" method="post" onSubmit="return confirm('真的要刪除該用戶嗎?');">            <input type="hidden" name="userid" value="${user.userid }">            <input type="submit" value="刪除">            </form>            </td>            <td>            <form action="UpdateFindUser" method="post" >            <input type="hidden" name="userid" value="${user.userid }">            <input type="submit" value="修改">            </form>            </td>        </tr>    </c:forEach></table>

tips:添加信息和修改信息頁面比較簡單,在這里不贅述了。

  總結:

    從這個小例子中學到了什么:jdbc連接數據庫實現增刪改查,mvc模式的理解,表達式的使用,標簽庫的初步了解。

   


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 午夜精品久久久久久中宇 | 特级黄aaaaaaaaa毛片 | 羞羞的视频在线观看 | 欧美日韩爱爱视频 | 久久精品国产99国产精品亚洲 | 日本视频在线免费观看 | 国产乱轮视频 | 成人一区二区在线观看视频 | 免费永久看羞羞片网站入口 | 久久久久久69 | 成人一级视频在线观看 | china对白普通话xxxx | 欧美高清在线精品一区二区不卡 | 国产精品视频成人 | 国产亚洲高清在线精品不卡 | 91午夜在线观看 | 在线成人av观看 | 日本黄色a视频 | 久久精品国产99久久久古代 | 麻豆小视频在线观看 | h视频在线免费看 | 黄视频免费在线观看 | 午夜视| 欧美精品一区二区中文字幕 | 久久国产精品久久久久久久久久 | 亚洲自拍第二页 | 精品久久一区二区三区 | 成年人毛片视频 | 国产精品av久久久久久网址 | 九九热国产在线 | 农村少妇吞精夜夜爽视频 | 精品一区二区在线播放 | 噜噜噜影院 | 久久久久免费精品 | 成人福利在线播放 | 7777在线视频免费播放 | 精品xxxx户外露出视频 | xxxx8| 国产精品视频免费在线观看 | 午夜国产成人 | 夜夜夜精品视频 |