圖書管理系統專案(初學者必看的小專案)

萌新Java程式猿發表於2018-01-08

圖書管理系統專案

第一天:準備把整個框架順一遍,第一次獨立寫這個算是我人生中第一個java小專案,不清楚多少天能完成,我會堅持把自己的心得寫在這裡,主要是給自己看(不是學文的,文筆很差見諒,爭取把註釋寫詳細點),如果能幫助其他初學者更好了  一起加油!

點選開啟連結

DriverManager.getConnection(String url,String user,String password)  我之前不太理解 特意查了下API

 

第一天搭建一個資料庫實現基本功能  (因為前三步都需要連線資料庫,定義一個資料庫連線)
在類中建立一個建構函式初始化資料庫的連線 
(PS: 為什麼要建立資料庫,為了初始化資料庫,在後面會經常用的到)
1.建立資料庫  createDatabase()   
2.建立表        createTable()
3.建立檔案     addData(String filename)

我標記紅色的請留意

package javastudy;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class DBLib {
	//因為三個方法都需要連線資料庫
	Connection conn;   //定義一個變數
	Statement st;      
	public DBLib() throws ClassNotFoundException//定義一個建構函式 初始化資料庫連線 
, SQLException
	{
		Class.forName("com.mysql.jdbc.Driver");  //載入驅動程式
		//需要得到三個引數
		String url="jdbc:mysql://127.0.0.1:3306?useUnicode=true&characterEncoding=utf-8";//本機ip地址 本機埠  防止資料庫亂碼(若無亂碼無須新增)
		String user="root";           //資料庫的名字
		String pwd="521125";          //資料庫密碼
		conn=(Connection) DriverManager.getConnection(url, user, pwd); //初始化資料庫  拿到三個引數
		st=(Statement) conn.createStatement();   //建立一個 Statement 物件來將 SQL 語句傳送到資料庫。
	}
	public void createDatabase() throws SQLException   //建立一個資料庫
	{
		String sql="drop database if exists Book;";    //判斷資料庫存在刪除
		st.executeUpdate(sql);//執行給定 SQL 語句
		sql="create database Book;";   //建立表
		st.executeUpdate(sql);//執行
			
		
	}
	public void createTable() throws SQLException     //建立一個表
	{
		String sql="use Book;";//使用表
		st.executeQuery(sql);//執行
		sql="create table BOOKS"; 
		sql+="(";
		sql+="  ID int(4) not null primary key auto_increment,";
		sql+="  Name	varchar(100),";
		sql+="  Author varchar(50),";
		sql+="  Price  decimal,";
	    sql+="Publisher varchar(100)";
		sql+=") ENGINE=InnoDB DEFAULT CHARSET=utf8;";//我額外加的 因為我安裝資料庫未設定UTF-8 出現亂碼
		st.executeUpdate(sql);//執行語句
	}
	public void addData(String filename) throws SQLException//建立一個文件
, IOException
	{
		String sql="use Book;";//使用表
		st.executeUpdate(sql);//執行
		FileReader fr=new FileReader(filename);      //讀取
		BufferedReader br=new BufferedReader(fr);   //緩衝區(包裝類)
		String line;
		sql=" INSERT INTO BOOKS (Name,Author,Price,Publisher) VALUES(?,?,?,?)";  //sql語句
		PreparedStatement ps=conn.prepareStatement(sql);
		
		while((line=br.readLine())!=null)   //判斷是否讀完
		{
			String[] values=line.split(",");                //以逗號拆分 用一個字串陣列接收          
			ps.setString(1, values[0]);						//欄位從1陣列從0開始
			ps.setString(2, values[1]);
			ps.setDouble(3, Double.parseDouble(values[2]));//把字串強制 轉換Double
			ps.setString(4, values[3]);
			st.executeUpdate(sql);//執行
		}
		br.close(); 			//關閉資源
	}
}

2.建立一個init  初始化測試建立資料庫是否成功

第一個問題:

遇到一個錯誤 建立資料實現,無法向裡面加入資料,顯示程式碼錯誤 


解決方法

由於粗心,和對程式碼的不熟悉浪費了十分鐘去查錯誤,特意去看了API把
1.executeUpdate()  2.executeQuery();



上面錯誤程式碼我沒有修改!複製時需要注意

第二個問題 資料庫在建立時 生成的不是utf-8 

解決方法1:

第3個問題 匯入文字出現亂碼 

解決方法1:去根目錄找檔案把屬性改成utf-8   C:\Users\Administrator\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\圖書管理專案 (未成功)

解決方案2:去官網找了一篇大佬的資料 

 jsp用來顯示結果,用來做頁面呈現
 邏輯處理用Servlet來做。

 jsp:用來顯示結果

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="javastudy.*"%>
<!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>Insert title here</title> 
<script type="text/javascript" src="pytjon/jquery-1.11.1.js"></script>
<script type="text/javascript">
$(function(){
	$("input[type='button']").click(function(data){               //當按鈕被點選
	$.post("initDB.jsp",function(data){                           //進入initDB。jsp
			$("#info").html(data);
		});	
	});	
});
</script>

</head>
<body>
<input type="button" value="初始化資料">
<div id="info"></div>
</body>

 servlet:處理邏輯,處理業務,

package javastudy;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class InitIt
 */
@WebServlet("/InitIt")
public class InitIt extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public InitIt() {
        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
		//response.getWriter().append("Served at: ").append(request.getContextPath());

		DBLib lib;
		try {
			lib = new DBLib();
			lib.createDatabase();
			lib.createTable();
			lib.addData(this.getServletContext().getRealPath("") + "\\data\\data.txt");
			response.setCharacterEncoding("utf-8");
			PrintWriter out=response.getWriter();
			out.print("初始化成功!");
		} catch (ClassNotFoundException | SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

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

}
Servlet解決亂碼的方法

response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");

註解配置Servlet
Annotation=註解


    web.xml配置servlet的方法

    <servlet>  
            <servlet-name>a</servlet-name>  
            <servlet-class>javastudy.InitIt</servlet-class>  
    </servlet>  
    <servlet-mapping>  
            <servlet-name>a</servlet-name>  
            <url-pattern>/myservlet</url-pattern>  
     </servlet-mapping>  

前面的資料庫建立測試通過,資料庫成功搭建

把整個專案步驟寫一下:

JSP網站開發模式二:JSP+JavaBeans+Servlet Model II MVC的思想(Model=模型,View=檢視,Control=控制)
  將控制業務邏輯的程式碼寫到Servlet中,講頁面的展現(HTML)和業務邏輯的控制(Java)分離開來。


步驟:1.建立一個JavaBean,它是一個類Book

package javastudy;

public class Book {
	int id;
	String name;
	String author;
	float price;
	String publisher;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
	public float getPrice() {
		return price;
	}
	public void setPrice(float price) {
		this.price = price;
	}
	public String getPublisher() {
		return publisher;
	}
	public void setPublisher(String publisher) {
		this.publisher = publisher;
	}
}


      2.建立一類叫做BookDAO ,這是資料訪問層DAO=Data Access Object=資料訪問介面連線資料庫,實現以下方法。

    2.1BookDAO()

	Connection conn;   //定義公共變數
		Statement st;   
		String sql; 
		PreparedStatement ps;
		public BookDAO() throws ClassNotFoundException,SQLException//定義一個建構函式 初始化資料庫連線
		{
		Class.forName("com.mysql.jdbc.Driver");  //載入驅動程式
			//需要得到三個引數
			String url="jdbc:mysql://127.0.0.1:3306/book?useUnicode=true&characterEncoding=utf-8";//本機ip地址 本機埠  防止資料庫亂碼
			String user="root";           //資料庫的名字
			String pwd="521125";          //資料庫密碼
			conn=DriverManager.getConnection(url,user,pwd); //初始化資料庫  拿到三個引數
			st=conn.createStatement();    //建立一個 Statement 物件來將 SQL 語句傳送到資料庫。
			
		}

 2.2 addBook(Book book)

//增加
		public int addBook(Book book) throws Exception
		{
			sql="insert into BOOKS(name,author,price,publisher) values(?,?,?,?)";
			ps=conn.prepareStatement(sql);//建立一個 PreparedStatement 物件來將引數化的 SQL 語句傳送到資料庫。
			ps.setString(1,book.getName());
			ps.setString(2,book.getAuthor());
			ps.setDouble(3,book.getPrice());
			ps.setString(4,book.getPublisher());
			
			return ps.executeUpdate();
		}

 2.3 deleteBook(int id)

//刪除
		public int deleteBook(int id) throws Exception //通過ID查詢
		{
			sql="delete from books where id=?";             
			ps=conn.prepareStatement(sql);
			ps.setInt(1, id);
			return ps.executeUpdate();
			// 在此 PreparedStatement 物件中執行 SQL 語句,該語句必須是一個 SQL 資料操作語言語句,或者是無返回內容的 SQL 語句
		}
  2.4 ArrayList<Book> getBooks()
//拿到所有 的圖書
		public ArrayList<Book> getbooks() throws Exception {
			sql="select * from books";
			ps=conn.prepareStatement(sql);
			ResultSet rs = ps.executeQuery();
			ArrayList<Book> list=new ArrayList<Book>();
			
			while(rs.next()) {
				Book book=new Book();
				book.setId(rs.getInt(1));
				book.setName(rs.getString(2));
				book.setAuthor(rs.getString(3));
				book.setPrice(rs.getFloat(4)); 
				book.setPublisher(rs.getString(5));
				list.add(book);
			}
			return list;
		}
  2.5 modifyBook(int id,Book newbook)

 //修改一本書
		public int modifyBook(int id, Book newbook) throws Exception {
			// TODO Auto-generated method stub
			sql="update books set name=?,author=?,price=?,publisher=? where id=?";
			ps=conn.prepareStatement(sql);
			ps.setString(1, newbook.getName());
			ps.setString(2, newbook.getAuthor());
			ps.setDouble(3, newbook.getPrice());
			ps.setString(4, newbook.getPublisher());
			ps.setInt(5, id);
			return ps.executeUpdate();	
		}
  2.6getBookById(int id)
//通過一本書得到資訊
		 public Book getBookById(int id) throws SQLException
		{
			String sql="select * from books where id=?";
			ps=conn.prepareStatement(sql);
			ps.setInt(1, id);
			ResultSet rs=ps.executeQuery();
			rs.next();
			Book book=new Book();
			book.setId(rs.getInt(1));
			book.setName(rs.getString(2));
			book.setAuthor(rs.getString(3));
			book.setPrice(rs.getFloat(4));
			book.setPublisher(rs.getString(5));
			return book;
			
					
		}
 2.7getBooks(String bookName)

		//搜尋圖書
		public ArrayList<Book> getBook(String books) throws Exception {
		//	SELECT * FROM users WHERE username LIKE '%三%'
			//sql="select * from books where name=?";
			//select * from table_name where id like '83%58193';
			//sql:select id,name from tablename where contains( address, '上海' );
		/*	SELECT student_id,student_name
			FROM students
			WHERE CONTAINS( address, 'beijing' )*/
		 
			sql="SELECT * FROM books WHERE name LIKE '%?%'";
			ps=conn.prepareStatement(sql);
			ps.setString(1, books);
			ResultSet rs = ps.executeQuery(sql);
			ArrayList<Book> list=new ArrayList<Book>();
			while(rs.next()) {
				Book book=new Book();
				book.setId(rs.getInt(1));
				book.setName(rs.getString(2));
				book.setAuthor(rs.getString(3));
				book.setPrice(rs.getFloat(4)); 
				book.setPublisher(rs.getString(5));
				list.add(book);
			}
			return list;
		}     

搜尋功能待更新 

3.做一個jsp頁面,bookList.jsp。

    整體給大家看一下:


  <input type="hidden" name="id">  隱藏 
   booklist.jsp,頁面載入時,列表顯示所有的圖書
    3.1【樣式表+Js程式碼】
<script type="text/javascript">

function altRows(id){
	if(document.getElementsByTagName){  
		
		var table = document.getElementById(id);  
		var rows = table.getElementsByTagName("tr"); 
		 
		for(i = 0; i < rows.length; i++){          
			if(i % 2 == 0){
				rows[i].className = "evenrowcolor";
			}else{
				rows[i].className = "oddrowcolor";
			}      
		}
	}
}

window.onload=function(){
	altRows('gridtable');
}
</script>
<style type="text/css">


table.gridtable {
	font-family: verdana,arial,sans-serif;
	font-size:11px;
	color:#333333;
	border-width: 1px;
	border-color: #a9c6c9;
	border-collapse: collapse;
}
table.gridtable th {
	border-width: 1px;
	padding: 8px;
	border-style: solid;
	border-color: #a9c6c9;
}
table.gridtable td {
	border-width: 1px;
	padding: 8px;
	border-style: solid;
	border-color: #a9c6c9;
}
.oddrowcolor{
	background-color:#d4e3e5;
}
.evenrowcolor{
	background-color:#c3dde0;
}
*{margin:0;padding:0;}
			body{overflow:hidden;background:url("images/2.jpg");}
</style>
    3.2【增】頁面有一個增加圖書按鈕,可以增加圖書


$("#btnAdd").click(function(){
	location.href="add.jsp";
});
<embed src="music/4.mp3" width="0.01" height="0.01"></embed>
     <form method="post" action="AddIt">
     <table class="gridtable" id="gridtable">
     <tr><td colspan="2">新增圖書資訊</td></tr>
     <tr><td>名稱</td><td><input type="text" name="name" ></td></tr>
     <tr><td>作者</td><td><input type="text" name="author" ></td></tr>
     <tr><td>價格</td><td><input type="text" name="price" ></td></tr>
     <tr><td>出版社</td><td><input type="text" name="publisher"></td></tr>
     <tr><td colspan="2"><input type="submit" value="新增圖書資訊"><div id="info">     </div></td></tr>
</table>
</form>
</body>
response.setCharacterEncoding("utf-8");
		request.setCharacterEncoding("utf-8");
		//int id=Integer.parseInt(request.getParameter("id"));  //得到ID
		String name=request.getParameter("name");
		String author=request.getParameter("author");
		float price=Float.parseFloat(request.getParameter("price"));
		String publisher=request.getParameter("publisher");
		Book newbook=new Book();
		newbook.name=name;
		newbook.author=author;
		newbook.price=price;
		newbook.publisher=publisher;
		BookDAO dao;
		try {
			dao=new BookDAO();
			dao.addBook(newbook);
			response.sendRedirect("BookList.jsp");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	
    3.2【刪】頁面上有一個刪除按鈕,可以刪除圖書

$("#btnDelete").click(function(){
	//將被選中的圖書的id收集起來
	var ids="";
	var i=0;
	$("input[type='checkbox'][name='selectit']").each(function(index, element) {
        if(index>0)
		{
			if($(this).prop("checked"))
			{
				var id= $(this).parent().parent().children()
					.eq(0).children().eq(0).val();
				ids+=id;
				i++;
				if(!$(this).is(":last"))
				{
					ids+=",";
				}
			}
		}
    });
	var answer=confirm("你確定要刪除選定的這" +  i+ "本圖書嗎?");
	if(!answer)
	{
		return;
	}
	location.href="DeleteIt?ids=" + ids;
});
response.setCharacterEncoding("utf-8");
		String ids=request.getParameter("ids");
		String [] id=ids.split(",");
	
		
			try {
				BookDAO dao =new BookDAO();
				for(int i=0;i<id.length;i++)
				{
				dao.deleteBook(Integer.parseInt(id[i]));
				}
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		response.sendRedirect("BookList.jsp");
		
		
		
		//response.getWriter().append("Served at: ").append(request.getContextPath());
	}
    3.3【改】每本圖書後面有一個修改按鈕,可以修改圖書


$("input[type='button'][name='modifyit']").click(function(){
		//獲取id
		var id= $(this).parent().parent().children()
		.eq(0).children().eq(0).val();
		//頁面跳轉
		location.href="modify.jsp?id="+id;
	});	
<body>
<embed src="music/3.mp3" width="0.01" height="0.01"></embed>
<%  
 int id=Integer.parseInt(request.getParameter("id"));  //需要封裝 
 BookDAO dao=new BookDAO();
 	Book book=dao.getBookById(id);  //得到ID


%>
<form method="post" action="Modify">
<table class="gridtable" id="gridtable" >
<tr><td colspan="2">修改圖書資訊</td></tr>
  	<tr><td><input type="hidden" name="id" value="<%=book.getId()%>"></td></tr>
    <tr><td>名稱</td><td><input type="text" name="name"value="<%=book.getName() %>"></td></tr>
    <tr><td>作者</td><td><input type="text" name="author"value="<%=book.getAuthor() %>"></td></tr>
    <tr><td>價格</td><td><input type="text" name="price"value="<%=book.getPrice() %>"></td></tr>
    <tr><td>出版社</td><td><input type="text" name="publisher"value="<%=book.getPublisher() %>"></td></tr>
  <tr><td colspan="2"><input type="submit" value="修改圖書資訊"><div id="info"></div></td></tr>
</table>


</form>
</body>
response.setCharacterEncoding("utf-8");
		request.setCharacterEncoding("utf-8");
		int id=Integer.parseInt(request.getParameter("id"));  //得到ID
		String name=request.getParameter("name");
		String author=request.getParameter("author");
		float price=Float.parseFloat(request.getParameter("price"));
		String publisher=request.getParameter("publisher");
		Book newbook=new Book();
		newbook.name=name;
		newbook.author=author;
		newbook.price=price;
		newbook.publisher=publisher;
		BookDAO dao;
		
		
		
		try {dao=new BookDAO();
			dao.modifyBook(id,newbook);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		response.sendRedirect("BookList.jsp");
		
		//response.getWriter().append("Served at: ").append(request.getContextPath());
	}
 3.4【查】頁面上有一個選中按鈕,可以根據圖書的是否被選中查詢顯示圖書



$("#query").click(function(){
	//將被選中的圖書的id收集起來
/*	var ids="";
	var i=0;
 	var 
	$("input[type='checkbox'][name='selectit']").each(function(index, element) {
        if(index>0)
		{
			if($(this).prop("checked"))
			{
				var id= $(this).parent().parent().children()
					.eq(0).children().eq(0).val();
				ids+=id;
				i++;
				if(!$(this).is(":last"))
				{
					ids+=",";
				}
			}
		}
    });
 	*/
    var arr=[];
    $("input[type='checkbox']:checked").each(function(){ 
         arr.push(this.value);
    })
    var json = JSON.stringify(arr);//陣列轉換成json,都在了,陣列和json
    alert(json + arr);

	var answer=confirm("你確定要查詢選定的這" +  arr.length + "本圖書嗎?");
	if(!answer)
	{
		return;
	}
	location.href="reveal.jsp?ids="+arr;
});
     無須處理 只需要判斷選中多少 遍歷出來 沒用到Servlet


3.5【搜】頁面上有一個搜尋按鈕,可以根據圖書的名稱和作者,來搜尋並顯示圖書

(待)修改

$("#search").click(function(){
	location.href="search.jsp";
});
<body>
<center>
 <marquee width="300" direction=left height="50"><center><font color="pink" size="7" face="華文彩雲"><b>圖書資訊</b></font></center></marquee>
<embed src="music/3.mp3" width="0.01" height="0.01"></embed>
<table class="gridtable" id="gridtable" height="400" width="30%">
	 <%	
	request.setCharacterEncoding("UTF-8");
	response.setCharacterEncoding("UTF-8");
	String name=request.getParameter("name"); 
    String condition=request.getParameter("condition"); 
    out.print(name);

	%>	
	<%	
		BookDAO dao=new BookDAO();
		ArrayList<Book> list=dao.getbooks();
		for(int i=0;i<list.size();i++){
			Book book=list.get(i);
	%>	
	<tr>
	<td><%=i+1 %><input type="hidden" name="id" value="<%=book.getId()%>"></td>
	<td><h3><%=book.getName() %></h3></td>
	<td><h3><%=book.getAuthor() %></h3></td>
	<td><h3><%=book.getPrice() %></h3></td>
	<td><h3><%=book.getPublisher() %></h3></td>
	</tr>
	<%
		}
	%>

</table>
</center>
</body>

建立一個BookDAO的類實現資料庫的基本功能 增刪改查,新建個類aaa做測試
package javastudy;

import java.util.ArrayList;

public class aaa {

	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		BookDAO dao=new BookDAO();
		ArrayList<Book> list = dao.getbooks();
		for (Book book : list) {
			System.out.println(book);
		}
		dao.getbooks();
	}

}

        基本框架已經實現,開始寫其功能 可能會遇到很多問題加油!
目前是1.0  等今後有時間升級2.0   有興趣的可以問我要程式碼  專案沒完成就不在這發了  下週一在去完善 
通宵把我之前寫的東西重新捋一遍   好累 會的太少  完成2.0 就準備往下學 等以後在此基礎上 升級  
看我部落格的同學 如果有興趣的可以和我一起研究          今天通宵把其他功能全部實現,就差最後一步(搜尋還有點小BUG) 加了很多圖片音樂 加了個數字時鐘          我打算以後做一個UI使用者登入  今後學到新的知識再往上加 (本人菜鳥一隻  希望大佬指點一二)
<body>
<center>
 <marquee width="300" direction=left height="50"><center><font color="pink" size="7" face="華文彩雲"><b>圖書資訊</b></font></center></marquee>
<embed src="music/3.mp3" width="0.01" height="0.01"></embed>
<table class="gridtable" id="gridtable" height="400" width="30%">
	 <%	
	request.setCharacterEncoding("UTF-8");
	response.setCharacterEncoding("UTF-8");
	String name=request.getParameter("name"); 
	//name+="%"+name+"%";
    String condition=request.getParameter("condition"); 
 //   out.print(name);
    BookDAO dao=new BookDAO();
	ArrayList<Book> list=dao.serachBook(name);
	if(list==null || list.size()==0){
		out.print("沒用找到相應的圖書");
	}
	for(int i=0;i<list.size();i++){
		Book book=list.get(i);
	%>	

	<tr>
	<td><%=i+1 %><input type="hidden" name="id" value="<%=book.getId()%>"></td>
	<td><h3><%=book.getName() %></h3></td>
	<td><h3><%=book.getAuthor() %></h3></td>
	<td><h3><%=book.getPrice() %></h3></td>
	<td><h3><%=book.getPublisher() %></h3></td>
	</tr>
	<%
		}
	%>

</table>
</center>
</body>
     
<body>
<embed src="music/3.mp3" width="0.01" height="0.01"></embed>
<center>
 <div class="divMain">	
 <marquee width="300" direction=left height="50"><center><font color="#0000ff" size="7" face="華文彩雲"><b>跟小劉學java   從入門到精通!</b></font></center></marquee>

<h1 align="center" class="STYLE1">請輸入要查詢的關鍵字</h1>
 <form action="seek.jsp" method="post">
<h2><span class="STYLE2">  請選擇查詢條件</span></h2>
<select name="condition">
<option value ="author">作者</option>
<option value ="name" selected="selected">書名</option>
</select>
<span class="STYLE3">請輸入</span>
<input type="text" name="name" /><br />
<input type="submit" value="提交資訊 " />
</form>

</div>
</center>
</body>



 搜尋功能完善。 圖書管理就這麼告一段落! 感謝任老師,範老師的細心指導答疑 
       在觀看遇到問題的可以聯絡我 我QQ1443509763
 全部程式碼都放在我部落格上了,可以去下載完整的專案 



相關文章