Java web 数据库 操作

 

======================================================

JSP  页面测试与mysql的连接:

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import = "java.sql.*"%>
<!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>
</head>
<body>
<%
 try {
  // 加载数据库驱动,注册到驱动管理器
  Class.forName("com.mysql.jdbc.Driver");
  // 数据库连接字符串
  String url = "jdbc:mysql://localhost:3306/da_database10";
  // 数据库用户名
  String username = "root";
  // 数据库密码
  String password = "123";
  // 创建Connection连接
  Connection conn = DriverManager.getConnection(url,username,password);
  // 判断 数据库连接是否为空
  if(conn != null){
   // 输出连接信息
   out.println("数据库连接成功!");
   // 关闭数据库连接
   conn.close();
  }else{
   // 输出连接信息
   out.println("数据库连接失败!");
  }
 } catch (ClassNotFoundException e) {
  e.printStackTrace();
 } catch (SQLException e) {
  e.printStackTrace();
 }
%>

</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=UTF-8">
<title>添加图书信息</title>
<script type="text/javascript">
 function check(form){
  with(form){
   if(name.value == ""){
    alert("图书名称不能为空");
    return false;
   }
   if(price.value == ""){
    alert("价格不能为空");
    return false;
   }
   if(author.value == ""){
    alert("作者不能为空");
    return false;
   }
   return true;
  }
 }
</script>
</head>
<body>
 <form action="AddBook.jsp" method="post" οnsubmit="return check(this);">
  <table align="center" width="450">
   <tr>
    <td align="center" colspan="2">
     <h2>添加图书信息</h2>
     <hr>
    </td>
   </tr>
   <tr>
    <td align="right">图书名称:</td>
    <td><input type="text" name="name" /></td>
   </tr>
   <tr>
    <td align="right">价  格:</td>
    <td><input type="text" name="price" /></td>
   </tr>
   <tr>
    <td align="right">数  量:</td>
    <td><input type="text" name="bookCount" /></td>
   </tr>
   <tr>
    <td align="right">作  者:</td>
    <td><input type="text" name="author" /></td>
   </tr>
   <tr>
    <td align="center" colspan="2">
     <input type="submit" value="添 加">
    </td>
   </tr>
  </table>
 </form>
</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">

<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.PreparedStatement"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>添加结果</title>
</head>
<body>
 
 <jsp:useBean id="book" class="com.lyq.bean.Book"></jsp:useBean>
 <jsp:setProperty property="*" name="book"/>
 <%
  try {
   // 加载数据库驱动,注册到驱动管理器
   Class.forName("com.mysql.jdbc.Driver");
   // 数据库连接字符串
   String url = "jdbc:mysql://localhost:3306/da_database10";
   // 数据库用户名
   String username = "root";
   // 数据库密码
   String password = "123";
   // 创建Connection连接
   Connection conn = DriverManager.getConnection(url,username,password);
   // 添加图书信息的SQL语句
   String sql = "insert into tb_books(name,price,bookCount,author) values(?,?,?,?)";
   // 获取PreparedStatement
   PreparedStatement ps = conn.prepareStatement(sql);
   // 对SQL语句中的第1个参数赋值
   ps.setString(1, book.getName());
   System.out.println("name:"+book.getName());
   // 对SQL语句中的第2个参数赋值
   ps.setDouble(2, book.getPrice());
   // 对SQL语句中的第3个参数赋值
   ps.setInt(3,book.getBookCount());
   // 对SQL语句中的第4个参数赋值
   ps.setString(4, book.getAuthor());
   // 执行更新操作,返回所影响的行数
   int row = ps.executeUpdate();
   // 判断是否更新成功
   if(row > 0){
    // 更新成输出信息
    out.print("成功添加了 " + row + "条数据!");
   }
   // 关闭PreparedStatement,释放资源
   ps.close();
   // 关闭Connection,释放资源
   conn.close();
  } catch (Exception e) {
   out.print("图书信息添加失败!");
   e.printStackTrace();
  }
 %>
 <br>
 <a href="index.jsp">返回</a>
</body>
</html>

 

 

package com.lyq.bean;
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;
 }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

====================================

 

 自己做的  录入图书数据

<%@ 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>添加图书信息</title>
<script type="text/javascript">
 function check(form){
  with(form){
   if(name.value == ""){
    alert("图书名称不能为空");
    return false;
   }
   if(price.value == ""){
    alert("价格不能为空");
    return false;
   }
   if(author.value == ""){
    alert("作者不能为空");
    return false;
   }
   return true;
  }
 }
</script>
</head>
<body>
 <form action="AddBook.jsp" method="post" οnsubmit="return check(this);">
  <table align="center" width="450">
   <tr>
    <td align="center" colspan="2">
     <h2>添加图书信息</h2>
     <hr>
    </td>
   </tr>
   <tr>
    <td align="right">图书名称:</td>
    <td><input type="text" name="name" /></td>
   </tr>
   <tr>
    <td align="right">价  格:</td>
    <td><input type="text" name="price" /></td>
   </tr>
   <tr>
    <td align="right">数  量:</td>
    <td><input type="text" name="bookCount" /></td>
   </tr>
   <tr>
    <td align="right">作  者:</td>
    <td><input type="text" name="author" /></td>
   </tr>
   <tr>
    <td align="center" colspan="2">
     <input type="submit" value="添 加">
    </td>
   </tr>
  </table>
 </form>
</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">

<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.PreparedStatement"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>添加结果</title>
</head>
<body>
 
 <jsp:useBean id="book" class="com.lyq.Book"></jsp:useBean>
 <jsp:setProperty property="*" name="book"/>
 <%
  try {
   // 加载数据库驱动,注册到驱动管理器
   Class.forName("com.mysql.jdbc.Driver");
   // 数据库连接字符串
   String url = "jdbc:mysql://localhost:3306/da_database10";
   // 数据库用户名
   String username = "root";
   // 数据库密码
   String password = "123";
   // 创建Connection连接
   Connection conn = DriverManager.getConnection(url,username,password);
   // 添加图书信息的SQL语句
   String sql = "insert into tb_books(name,price,bookCount,author) values(?,?,?,?)";
   // 获取PreparedStatement
   PreparedStatement ps = conn.prepareStatement(sql);
   // 对SQL语句中的第1个参数赋值
   ps.setString(1, book.getName());
   System.out.println("name:"+book.getName());
   // 对SQL语句中的第2个参数赋值
   ps.setDouble(2, book.getPrice());
   // 对SQL语句中的第3个参数赋值
   ps.setInt(3,book.getBookCount());
   // 对SQL语句中的第4个参数赋值
   ps.setString(4, book.getAuthor());
   // 执行更新操作,返回所影响的行数
   int row = ps.executeUpdate();
   // 判断是否更新成功
   if(row > 0){
    // 更新成输出信息
    out.print("成功添加了 " + row + "条数据!");
   }
   // 关闭PreparedStatement,释放资源
   ps.close();
   // 关闭Connection,释放资源
   conn.close();
  } catch (Exception e) {
   out.print("图书信息添加失败!");
   e.printStackTrace();
  }
 %>
 <br>
 <a href="index.jsp">返回</a>
</body>
</html>

-----------------------------------------------------------------------

package com.lyq;

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 com.lyq;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

/**
 * Servlet Filter implementation class CharFilter
 */
@WebFilter(filterName = "char",urlPatterns ="/*")
public class CharFilter implements Filter {

    /**
     * Default constructor.
     */
    public CharFilter() {
        // TODO Auto-generated constructor stub
    }

 /**
  * @see Filter#destroy()
  */
 public void destroy() {
  // TODO Auto-generated method stub
 }

 /**
  * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
  */
 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
  request.setCharacterEncoding("UTF-8");
  request.setCharacterEncoding("UTF-8");  
  System.out.println("sssssssssssss");
  chain.doFilter(request, response);
 }

 /**
  * @see Filter#init(FilterConfig)
  */
 public void init(FilterConfig fConfig) throws ServletException {
  // TODO Auto-generated method stub
 }

}

====================================================================

 

 

 分页查询数据

 

 

 

  

 

各个文档代码如下:

 

<%@ 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>主页</title>
</head>
<body>
 <a href="FindServlet">查看所有商品信息</a>
</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">
<%@page import="java.util.List"%>
<%@page import="com.lyq.bean.Product"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>所有商品信息</title>

<style type="text/css">
 td{font-size: 12px;}
 h2{margin: 0px}
</style>

</head>
<body>

<table align="center" width="450" border="1" height="180" bordercolor="white" bgcolor="black" cellpadding="1" cellspacing="1">
 <tr bgcolor="white">
  <td align="center" colspan="5">
   <h2>所有商品信息</h2>
  </td>
 </tr>
 <tr align="center" bgcolor="#e1ffc1" >
  <td><b>ID</b></td>
  <td><b>商品名称</b></td>
  <td><b>价格</b></td>
  <td><b>数量</b></td>
  <td><b>单位</b></td>
 </tr>
 <%
  List<Product> list = (List<Product>)request.getAttribute("list");
  for(Product p : list){
 %>
 <tr align="center" bgcolor="white">
  <td><%=p.getId()%></td>
  <td><%=p.getName()%></td>
  <td><%=p.getPrice()%></td>
  <td><%=p.getNum()%></td>
  <td><%=p.getUnit()%></td>
 </tr>
 <% 
  }
 %>
 <tr>
  <td align="center" colspan="5" bgcolor="white">
   <%=request.getAttribute("bar")%>
  </td>
 </tr>
</table>


</body>
</html>

 

 

 

--------------------------------------------------------------------------------------------------------------------

 

 

package com.lyq.bean;

/**
 * ��Ʒ
 * @author Li YongQiang
 *
 */
public class Product {
 public static final int PAGE_SIZE = 2;
 // ���
 private int id;
 // ����
 private String name;
 // �۸�
 private double price;
 // ����
 private int num;
 // ��λ
 private String unit;
 
 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 getNum() {
  return num;
 }
 public void setNum(int num) {
  this.num = num;
 }
 public String getUnit() {
  return unit;
 }
 public void setUnit(String unit) {
  this.unit = unit;
 }
}

 

 

 

---------------------------------------------------------------------------------

 

 

package com.lyq.bean;
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;

public class BookDao {

 public Connection getConnection(){
  Connection conn = null;
  try {
   Class.forName("com.mysql.jdbc.Driver");
   String url = "jdbc:mysql://localhost:3306/db_1";
   String username = "root";
   String password = "";
   conn = DriverManager.getConnection(url,username,password);
   
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  
  return conn;
  
  
   
  }
 
 
 public List<Product> find(int page){
  List<Product> list = new ArrayList<Product>();
  Connection conn = getConnection();
  String sql = "select * from tb_product order by id desc limit ?,?";
  try {
   PreparedStatement ps = conn.prepareStatement(sql);
   ps.setInt(1, (page - 1) * Product.PAGE_SIZE);
   ps.setInt(2, Product.PAGE_SIZE);
   ResultSet rs = ps.executeQuery();
   while(rs.next()){
    Product p = new Product();
    p.setId(rs.getInt("id"));
    p.setName(rs.getString("name"));
    p.setNum(rs.getInt("num"));
    p.setPrice(rs.getDouble("price"));
    p.setUnit(rs.getString("unit"));
    list.add(p);
   }
   rs.close();ps.close();conn.close();
  }catch (SQLException e) {
    e.printStackTrace();
   }
   return list;
  
   
  }
  
  
public int findCount(){
 
 int count = 0;
 
 Connection conn = getConnection();
 String sql = "select count(*) from tb_product";
 try {
  Statement stmt = conn.createStatement();
  ResultSet rs = stmt.executeQuery(sql);
  if(rs.next()){
   count = rs.getInt(1);
  }
  rs.close();
  conn.close();
 } catch (SQLException e) {
  e.printStackTrace();
 }
 return count;
}

 }
 
 
 
 

 

 

 

 

------------------------------------------------------------------------------------------------

 

 

package com.lyq.servlet;

import java.io.IOException;
import java.util.List;

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

import com.lyq.bean.Product;
import com.lyq.bean.BookDao;

/**
 * Servlet implementation class FindServlet
 */
public class FindServlet extends HttpServlet {
 private static final long serialVersionUID = 1L;
 

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // 当前页码
  int currPage = 1;
  // 判断传递页码是否有效
  if(request.getParameter("page") != null){
   // 对当前页码赋值
   currPage = Integer.parseInt(request.getParameter("page"));
  }
  // 实例化ProductDao
  BookDao dao = new BookDao();
  // 查询所有商品信息
  List<Product> list = dao.find(currPage);
  // 将list放置到request之中
  request.setAttribute("list", list);
  // 总页数
  int pages ;
  // 查询总记录数
  int count = dao.findCount();
  // 计算总页数
  if(count % Product.PAGE_SIZE == 0){
   // 对总页数赋值
   pages = count / Product.PAGE_SIZE;
  }else{
   // 对总页数赋值
   pages = count / Product.PAGE_SIZE + 1;
  }
  // 实例化StringBuffer
  StringBuffer sb = new StringBuffer();
  // 通过循环构建分页条
  for(int i=1; i <= pages; i++){
   // 判断是否为当前页
   if(i == currPage){
    // 构建分页条
    sb.append("『" + i + "』");
   }else{
    // 构建分页条
    sb.append("<a href='FindServlet?page=" + i + "'>" + i + "</a>");
   }
   // 构建分页条
   sb.append(" ");
  }
  // 将分页条的字符串放置到request之中
  request.setAttribute("bar", sb.toString());
  // 转发到product_list.jsp页面
  request.getRequestDispatcher("2.5.2.product_list.jsp").forward(request, response);
 }

}

 

 

 

---------------------------------------------------------------

 

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/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>my_jsp_servlet_project</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 />
  <display-name>FindServlet</display-name>
  <servlet-name>FindServlet</servlet-name>
  <servlet-class>com.lyq.servlet.FindServlet</servlet-class>
  </servlet>
- <servlet-mapping>
  <servlet-name>FindServlet</servlet-name>
  <url-pattern>/FindServlet</url-pattern>
  </servlet-mapping>
 
</web-app>

 

====================================================================

 

 

 自己给变的 分页查询数据代码:

 

package com.lyq.servlet;

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.util.ArrayList;
import java.util.List;

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.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 com.lyq.bean.Product;

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

 /**
  * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  
  try{
   
  int currPage = 1;
  
  
  Connection conn = null;
  
   Class.forName("com.mysql.jdbc.Driver");
   String url = "jdbc:mysql://localhost:3306/db_1";
   String username = "root";
   String password = "";
   conn = DriverManager.getConnection(url,username,password);
   
  
  
      List<Product> list = new ArrayList<Product>();
  
  
       String sql = "select * from tb_product order by id desc limit ?,?";
 
   PreparedStatement ps = conn.prepareStatement(sql);
  
   
   // ps.setInt(1, (currPage - 1) * Product.PAGE_SIZE);
     // ps.setInt(2, Product.PAGE_SIZE);
   ps.setInt(1,0);
   ps.setInt(2,4);
   
   ResultSet rs = ps.executeQuery();
   while(rs.next()){
    Product p = new Product();
    p.setId(rs.getInt("id"));
    p.setName(rs.getString("name"));
    p.setNum(rs.getInt("num"));
    p.setPrice(rs.getDouble("price"));
    p.setUnit(rs.getString("unit"));
    list.add(p);
   }

    request.setAttribute("list", list);
    
    
    request.getRequestDispatcher("2.5.2.product_list.jsp").forward(request, response);

   
   rs.close();ps.close();conn.close();
  }catch (ClassNotFoundException e) {
   e.printStackTrace();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  
   
   
  
  
 }
  
  
  
  
  

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

}

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值