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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章