资源准备:
首先得下载对应数据库的连接包
我用的mySQl数据库所用的驱动是mysql-connector-java-8.0.18.jar
官网的下载地址是https://dev.mysql.com/downloads/connector/j/
1.加载驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
2.建立连接对象
String dburl = "jdbc:mysql://127.0.0.1:3306/数据库名?useSSL=false&serverTimezone=UTC"
Connection conn = DriverManager.getConnection(dburl,"用户名","口令");
3.创建语句对象
几种对象的创建方式不同:
Statement对象->createStatement()
PreparedStatement对象->prepareStatement()
比如创建Statement对象Statement stmt = conn.createStatement();
4.执行SQL语句并处理结果
ResultSet result = stmt.executeQuery(sql);
while(result.next()){
out.println(result.getString(1)+"\t");
}
5.关闭建立的对象
dbconn.close();
示例:
使用PreparedStatement对象来进行SQL语句操作
数据库结构
javaBean结构:
逻辑处理的Servlet
package com.demol;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
@WebServlet(name = "ProductQueryServlet",urlPatterns={"/query-product"})
public class ProductQueryServlet extends HttpServlet {
Connection dbconn = null;
public void init() {
String dburl = "jdbc:mysql://127.0.0.1:3306/new_schema?useSSL=false&serverTimezone=UTC";
String username ="用户名";
String password = "密码";
try{
Class.forName("com.mysql.cj.jdbc.Driver");
dbconn = DriverManager.getConnection(dburl,username,password);
System.out.println("数据库连接成功");
}catch (ClassNotFoundException e1){
System.out.println(e1+"驱动程序找不到");
}catch(SQLException e2){
System.out.println(e2);
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//返回所有商品
ArrayList<Product> productList = null;
productList = new ArrayList<Product>();
try{
String sql = "select * from products";
PreparedStatement pstmt = dbconn.prepareStatement(sql);
ResultSet result = pstmt.executeQuery();
while(result.next()){
Product product = new Product();
product.setId(result.getInt("id"));
product.setPname(result.getString("pname"));
product.setBrand(result.getString("brand"));
product.setPrice(result.getFloat("price"));
product.setStock(result.getInt("stock"));
productList.add(product);
}
if(!productList.isEmpty()){
request.getSession().setAttribute("productList",productList);
response.sendRedirect("/displayAllProduct.jsp");
}else{
response.sendRedirect("error.jsp");
}
}catch (SQLException e){
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String productid = request.getParameter("productid");
try{
String sql = "select * from products where id= ?";
PreparedStatement pstmt = dbconn.prepareStatement(sql);
pstmt.setString(1,productid);
ResultSet result = pstmt.executeQuery();
if(result.next()){
Product product = new Product();
product.setId(result.getInt("id"));
product.setPname(result.getString("pname"));
product.setBrand(result.getString("brand"));
product.setPrice(result.getFloat("price"));
product.setStock(result.getInt("stock"));
request.getSession().setAttribute("product",product);
response.sendRedirect("displayProduct.jsp");
}else{
response.sendRedirect("error.jsp");
}
}catch(SQLException e){
e.printStackTrace();
}
}
public void destroy(){
try{
dbconn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}