mysql jdbc 分層及三層以及jspservlet
1.建立資料庫 2.建立表 新增資料 3.新增jar和c3p0的配置檔案 4.搭建 三層 com.vp.bean或者 com.vp.pojo 實體類和輔助類,接收資料和傳送資料所使用的載體 com.vp.service 業務邏輯層介面,增加功能 com.vp.service.impl 這裡其實是呼叫dao層的方法來實現 業務邏輯層介面實現類,實現功能//相當於表現層和資料訪問層的緩衝區 com.vp.dao 資料訪問層介面,增加需求的功能 com.vp.dao.impl 資料訪問層實現類,實現需求,直接訪問資料庫,並對資料庫進行增刪改查,並利用返回值進行反饋。 com.vp.util 工具類 C3P0工具類以及其他工具類,主要用於減少程式碼冗餘。 com.vp.test //呼叫業務邏輯層的實現類方法。 C3P0 private static QueryRunner queryRunner; public static QueryRunner getQueryRunner(){ //獲取一個數據源 DataSource dsource=new ComboPooledDataSource(); //通過資料來源初始化一個QueryRunner物件 queryRunner=new QueryRunner(dsource); return queryRunner; } DAO層程式碼 private QueryRunner queryRunner =C3P0Util.getQueryRunner();//表示呼叫該方法,可以取代classforname和DriverManager.getConnection使用
測試類,表現層。
5.根據表建立實體類 6.在表現層中編寫選單 例如:歡迎光臨圖書借閱系統 1.查詢所有圖書資訊 2.根據條件查詢所有圖書資訊 3.根據圖書編號查詢該圖書的詳細資訊 6.查詢所有圖書型別資訊
4.新增圖書 5.根據圖書編號刪除圖書資訊 6.根據圖書型別編號刪除圖書型別 7.根據圖書編號修改圖書資訊 7.根據需求開始寫程式碼 (curd)
@WebServlet(name ="ibookServlet.htm", urlPatterns = "/ibookServlet.htm") public class IbookServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //中文亂碼處理 request.setCharacterEncoding("utf-8"); String book_code = request.getParameter("book_code");//request.getParameter獲得對應name的value String book_name = request.getParameter("book_name"); String book_type = request.getParameter("book_type"); String book_author = request.getParameter("book_author"); String book_publish_press = request.getParameter("book_publish_press"); String publish_date = request.getParameter("publish_date"); System.out.println(book_type); int type = 0; if (book_type != null && !"".equals(book_type)) { type = Integer.parseInt(book_type);//強轉 } Book_InfoTable book_infoTable = new Book_InfoTable(book_code, book_name, type, book_author, book_publish_press, publish_date, 0); IBookServiceImpl iBookServiceimpl=new IBookServiceImpl(); int add = iBookServiceimpl.add(book_infoTable); if (add>=1){ response.sendRedirect("success.html");//最終返回到某個jsp網址。 }else { response.sendRedirect("false.html"); } }