javaee之mvc設計模式設計訪問數據庫查找增加

mvc三塊:JavaBean servlet jsp其中jsp頁面使用戶可以輸入信息如單號輸出信息如顯示數據庫內信息。jsp通過servlet去調用Javabean訪問數據庫。servlet起到調用,轉換頁面結果而javabean訪問數據庫(以上爲我自己對本次實驗的理解。不夠準確但是比較簡單)
然後看一下本次實驗具體涉及哪些文件:
在這裏插入圖片描述兩個javabean:
1.其中musicdao專門用來訪問數據庫這裏書寫了兩個作用。一個是查找一個是插入代碼

package com. beans;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import java.util.ArrayList;
import com.beans.musicBean;
public class musicDAO{
private static InitialContext context= null;
private DataSource dataSource = null;
public musicDAO(){
	try{
		if(context == null){
			context = new InitialContext();
		}
		dataSource = (DataSource)context.lookup("java:comp/env/jdbc/sample");
	}catch(NamingException e2) {
	}
}

	//查詢音樂信息
public musicBean searchMusic(String musicid){
	Connection conn = null;
	PreparedStatement pstmt = null ; 
	ResultSet rst = null;
	musicBean music = new musicBean();
	try{
		conn = dataSource.getConnection(); 
		pstmt = conn. prepareStatement( "SELECT * FROM musicarray WHERE musicid=?");
		pstmt.setString(1, musicid);
		rst = pstmt.executeQuery() ;
		if(rst.next()){
			music.setMusicid(rst. getString( "musicid"));
			music.setName(rst . getString("name"));
			music.setSinger(rst. getString("singer"));
			return music;
		}else{
			return null;
		}
	}catch(SQLException se){
		return null ;
	}finally{
		try{
			conn. close();
		}catch(SQLException se){
		}
	}
}
	//插入一條音樂記錄
public boolean insertMusic (musicBean music){
	Connection conn = null;
	PreparedStatement pstmt = null;
	try{
		conn = dataSource.getConnection() ;
		pstmt = conn.prepareStatement("INSERT INTO musicarray VALUES(?,?,?)");
		pstmt.setString(1, music. getMusicid());
		pstmt.setString(2, music. getName());
		pstmt.setString(3, music. getSinger()); 
		pstmt.executeUpdate();
		pstmt.close();
		return true ;
	}catch(SQLException se){
		return false;
	}finally{
		try{
			conn. close();
		}catch(SQLException se){ }
	}
}
}

核心代碼:
visit數據庫

Context context=new InitialContext();
	DataSource ds=(DataSource)context.lookup("java:comp/env/jdbc/sample");
	Connection conn=ds.getConnection();

查找語句執行

pstmt = conn. prepareStatement( "SELECT * FROM musicarray WHERE musicid=?");
		pstmt.setString(1, musicid);//獲取頁面文字
		rst = pstmt.executeQuery() ;

返回信息在rst包裹
插入語句執行

pstmt = conn.prepareStatement("INSERT INTO musicarray VALUES(?,?,?)");
		pstmt.setString(1, music. getMusicid());
		pstmt.setString(2, music. getName());
		pstmt.setString(3, music. getSinger()); 
		pstmt.executeUpdate();

2.musicbean

是一個對象。數據中一條信息包裹musicbean裏。
代碼:

package com.beans;
import java. io.*;

public class musicBean implements Serializable{
      private String musicid = null;
      private String name = null;
      private String singer = null;
      public musicBean(){}
      public musicBean(String musicid, String name,String singer){
    	  this.musicid = musicid;
    	  this.name = name;
    	  this.singer = singer;
      }
      public String getMusicid(){return this.musicid;}
      public String getName(){return name;}
      public String getSinger() { return this.singer;}
      public void setMusicid(String musicid){ this.musicid=musicid; }
      public void setName(String name){this.name=name; }
      public  void setSinger(String singer){ this.singer = singer;}
}

沒什麼核心代碼。
servlet:
1.musicinsertservlet

package com.control;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.beans.musicBean;
import com.beans.musicDAO;

public class musicInsertServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public musicInsertServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		request.setCharacterEncoding("UTF-8");
		String message=null;
		musicBean music=new musicBean(
				request.getParameter("musicid"),
				request.getParameter("name"),
				request.getParameter("singer")
				);
		musicDAO musicdao=new musicDAO();
		boolean success=musicdao.insertMusic(music);
		if(success) {
			message="成功插入一條記錄!";
		}else {
			message="插入記錄錯誤!";
		}
		request.setAttribute("result", message);
		RequestDispatcher view=request.getRequestDispatcher("/musicInsert.jsp");
		view.forward(request, response);
	}

}

獲取信息

musicBean music=new musicBean(
				request.getParameter("musicid"),
				request.getParameter("name"),
				request.getParameter("singer")
				);

執行插入

musicDAO musicdao=new musicDAO();
		boolean success=musicdao.insertMusic(music);

跳轉頁面

request.setAttribute("result", message);//通過rusult傳輸信息。可以在musicinsert頁面輸出message
		RequestDispatcher view=request.getRequestDispatcher("/musicInsert.jsp");
		view.forward(request, response);

關於setattribute
https://jingyan.baidu.com/article/4d58d5410ab9ea9dd5e9c047.html
2。musicqueryservlet

package com.control;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.beans.musicBean;
import com.beans.musicDAO;

public class musicQueryServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public musicQueryServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String musicid=request.getParameter("musicid");//獲取
		musicDAO musicdao=new musicDAO();//使用beans連接數據庫
		musicBean music=musicdao.searchMusic(musicid);
		
		if(music!=null) {
			request.setAttribute("music", music);//
			RequestDispatcher view=request.getRequestDispatcher("/display.jsp");//跳轉頁面
			view.forward(request, response);
		}else {
			RequestDispatcher view=request.getRequestDispatcher("/errorPage.jsp");
			view.forward(request, response);
		}
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doPost(request,response);
	}

}

獲取信息

String musicid=request.getParameter("musicid");//獲取

調用找尋

musicDAO musicdao=new musicDAO();//使用beans連接數據庫
		musicBean music=musicdao.searchMusic(musicid);

跳轉頁面並把music(musicbean)這個傳給下給頁面展示。

request.setAttribute("music", music);
			RequestDispatcher view=request.getRequestDispatcher("/display.jsp");//跳轉頁面
			view.forward(request, response);

這裏接受的代碼還沒搞清楚不知道是怎麼接受的
錯誤跳轉頁面

RequestDispatcher view=request.getRequestDispatcher("/errorPage.jsp");
			view.forward(request, response);

3.jsp
這個沒什麼特別難的。
1.display

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <jsp:useBean id="music" class="com.beans.musicBean" scope="request"/>
    <jsp:setProperty name="music" property="musicid" value="lisi"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Music Display</title>
</head>
<body>
	id號:<jsp:getProperty property="musicid" name="music"/>
	歌曲名:<jsp:getProperty property="name" name="music"/>
	歌手:<jsp:getProperty property="singer" name="music"/>
</body>
</html>

核心代碼:
接受serlvlet然後下列代碼進行輸出property是對象,name是它的屬性。

<jsp:useBean id="music" class="com.beans.musicBean" scope="request"/>
<jsp:setProperty name="music" property="musicid" value="lisi"/>
<jsp:getProperty property="musicid" name="music"/>

2.errorpage

<%@ page contentType="text/html;charset=UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Error</title>
</head>
<body>
	對不起,您查的歌曲不存在!	
</body>
</html>

3.musicinsert

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Music Insert</title>
</head>
<body>
	<h3>請輸入一個歌曲信息:</h3>
	<%if(request.getAttribute("result")!=null)
		out.println(request.getAttribute("result"));
	%>
	<form action="musicinsert.do" method="post">
		<table>
			<tr><td>id號</td><td><input type="text" name="musicid"></td></tr>
			<tr><td>歌曲名</td><td><input type="text" name="name"></td></tr>
			<tr><td>歌手</td><td><input type="text" name="singer"></td></tr>
			<tr><td><input type="submit" value="提交"></td>
				<td><input type="reset" value="重置"></td>
				</tr>
		</table>
	</form>
</body>
</html>

正常的接收信息

<%if(request.getAttribute("result")!=null)
		out.println(request.getAttribute("result"));
	%>

4musicicquery

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Music Query</title>
</head>
<body>
	請輸入一個書號:<br>
	<form action="musicquery.do" method="post">
		<input type="text" name="musicid"><br>
		<input type="submit" value="提交">
	</form>
</body>
</html>

然後重視一下最後兩個form的格式

<form action="musicinsert.do" method="post">
<form action="musicquery.do" method="post">

具體知識點不清楚到時候學下

發佈了110 篇原創文章 · 獲贊 8 · 訪問量 4696
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章