java servlet jdbc 連線sqlserver資料庫查詢和修改
阿新 • • 發佈:2019-01-11
效果圖:
2、Java類
package shop.hh; public class Book { // 編號 private int id; // 圖書名稱 private String name; // 價格 private double price; // 數量 private int bookCount; // 作者 private String author; 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 double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getBookCount() { return bookCount; } public void setBookCount(int bookCount) { this.bookCount = bookCount; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } }
package shop.hh;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class FindServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
// 載入資料庫驅動,註冊到驅動管理器
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 資料庫連線字串
String url = "jdbc:sqlserver://DESKTOP-EO1BDL6;DatabaseName=hh";
// 資料庫使用者名稱
String username = "sa";
// 資料庫密碼
String password = " [email protected]";
// 建立Connection連線
Connection conn = DriverManager.getConnection(url, username, password);
// 獲取Statement
Statement stmt = conn.createStatement();
// 新增圖書資訊的SQL語句
String sql = "select * from tb_books";
// 執行查詢
ResultSet rs = stmt.executeQuery(sql);
// 例項化List物件
List<Book> list = new ArrayList<Book>();
// 判斷游標向後移動,並判斷是否有效
while (rs.next()) {
// 例項化Book物件
Book book = new Book();
// 對id屬性賦值
book.setId(rs.getInt("id"));
// 對name屬性賦值
book.setName(rs.getString("name"));
// 對price屬性賦值
book.setPrice(rs.getDouble("price"));
// 對bookCount屬性賦值
book.setBookCount(rs.getInt("bookCount"));
// 對author屬性賦值
book.setAuthor(rs.getString("author"));
// 將圖書物件新增到集合中
list.add(book);
}
// 將圖書集合放置到request之中
request.setAttribute("list", list);
rs.close(); // 關閉ResultSet
stmt.close(); // 關閉Statement
conn.close(); // 關閉Connection
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
// 請求轉發到book_list.jsp
request.getRequestDispatcher("book_list.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int id = Integer.valueOf(request.getParameter("id"));
int bookCount=Integer.valueOf(request.getParameter("bookCount"));
try {
// 載入資料庫驅動,註冊到驅動管理器
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 資料庫連線字串
String url = "jdbc:sqlserver://DESKTOP-EO1BDL6;DatabaseName=hh";
// 資料庫使用者名稱
String username = "sa";
// 資料庫密碼
String password = " [email protected]";
Connection conn = DriverManager.getConnection(url, username, password);
String sql="update tb_book set bookcount=? where id=?";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setInt(1, bookCount);
ps.setInt(2, id);
ps.executeUpdate();
ps.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
response.sendRedirect("FindServlet");
}
}
package shop.hh;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UpdateServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
// 載入資料庫驅動,註冊到驅動管理器
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 資料庫連線字串
String url = "jdbc:sqlserver://DESKTOP-EO1BDL6;DatabaseName=hh";
// 資料庫使用者名稱
String username = "sa";
// 資料庫密碼
String password = "[email protected]";
// 建立Connection連線
Connection conn = DriverManager.getConnection(url, username, password);
// 獲取Statement
Statement stmt = conn.createStatement();
// 新增圖書資訊的SQL語句
String sql = "select * from tb_books";
// 執行查詢
ResultSet rs = stmt.executeQuery(sql);
// 例項化List物件
List<Book> list = new ArrayList<Book>();
// 判斷游標向後移動,並判斷是否有效
while (rs.next()) {
// 例項化Book物件
Book book = new Book();
// 對id屬性賦值
book.setId(rs.getInt("id"));
// 對name屬性賦值
book.setName(rs.getString("name"));
// 對price屬性賦值
book.setPrice(rs.getDouble("price"));
// 對bookCount屬性賦值
book.setBookCount(rs.getInt("bookCount"));
// 對author屬性賦值
book.setAuthor(rs.getString("author"));
// 將圖書物件新增到集合中
list.add(book);
}
// 將圖書集合放置到request之中
request.setAttribute("list", list);
rs.close(); // 關閉ResultSet
stmt.close(); // 關閉Statement
conn.close(); // 關閉Connection
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
// 請求轉發到book_list.jsp
request.getRequestDispatcher("book_list.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int id = Integer.valueOf(request.getParameter("id"));
int bookCount=Integer.valueOf(request.getParameter("bookCount"));
try {
// 載入資料庫驅動,註冊到驅動管理器
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 資料庫連線字串
String url = "jdbc:sqlserver://DESKTOP-EO1BDL6;DatabaseName=hh";
// 資料庫使用者名稱
String username = "sa";
// 資料庫密碼
String password = "[email protected]";
Connection conn = DriverManager.getConnection(url, username, password);
String sql="update tb_books set bookcount=? where id=?";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setInt(1, bookCount);
ps.setInt(2, id);
ps.executeUpdate();
ps.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
response.sendRedirect("FindServlet");
}
}
3、 jsp頁面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@page import="java.util.List"%>
<%@page import="shop.hh.Book"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<table align="center" width="450" border="1">
<tr>
<td align="center" colspan="5">
<h2>所有圖書資訊</h2>
</td>
</tr>
<tr align="center">
<td><b>ID</b></td>
<td><b>圖書名稱</b></td>
<td><b>價格</b></td>
<td><b>數量</b></td>
<td><b>作者</b></td>
</tr>
<%
// 獲取圖書資訊集合
List<Book> list=(List<Book>)request.getAttribute("list");
if(list==null || list.size()<1){
out.print("沒有 資料!");
}
else{
for(Book book:list){
%>
<tr align="center">
<td><%=book.getId() %></td>
<td><%=book.getName() %></td>
<td><%=book.getPrice() %></td>
<td><%=book.getBookCount() %></td>
<td><%=book.getAuthor() %></td>
<td>
<form action="UpdateServlet" method="post" onsubmit="return check(this);">
<input type="hidden" name="id" value=<%=book.getId() %>>
<input type="text" name="bookCount" size="3">
<input type="submit" value="修 改">
</form>
</td>
</tr>
<%
}
}
%>
</table>
</body>
</html>
<%@ 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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<a href="FindServlet">檢視所有圖書</a>
</body>
</html>
4、xml檔案
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>11.3</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>FindServlet</display-name>
<servlet-name>FindServlet</servlet-name>
<servlet-class>shop.hh.FindServlet</servlet-class>
<display-name>UpdateServlet</display-name>
<servlet-name>UpdateServlet</servlet-name>
<servlet-class>shop.hh.UpdateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FindServlet</servlet-name>
<url-pattern>/FindServlet</url-pattern>
<servlet-name>UpdateServlet</servlet-name>
<url-pattern>/UpdateServlet</url-pattern>
</servlet-mapping>
</web-app>
5、需要引用servlet包和sqljdbc包