文章目录

  • 前言
  • 一、第一步创建bean包
  • 二、第二步创建dao包
  • 三、创建servlet
  • 四、创建jsp文件,用来取数据并显示

前言

从数据库读取数据的详细操作,用购物车案例作为例子


提示:以下是本篇文章正文内容,下面案例可供参考

一、第一步创建bean包

可以先写物品属性,例如商品有编号、名称、价格

private Integer id;
private String name;
private Double price;

再使用快捷键alt+shift+s 创建默认构造函数、带参数构造器、get和set方法

package javaweb.bean;public class Goods {private Integer id;private String name;private Double price;public Goods() {super();}public Goods(Integer id, String name, Double price) {super();this.id = id;this.name = name;this.price = price;}public Integer getId() {return id;}public void setId(Integer 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;}}

二、第二步创建dao包


  1. 创建bean的链表,用来接收数据
  2. 3-7是使用用jdbc查询数据库数据的操作
  3. 先连上数据库
  4. 使用username ,password登录
  5. 创建sql语句
  6. 执行sql语句
  7. 取结果集
  8. 用bean创建对象,将取出来的数据封装到在里面
  9. 将封装的数据加到先前创建的list里
  10. 返回list(因为是在一个函数里面写的,所以可以返回值便于后面接收值使用)
package javaweb.dao;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 cn.hutool.json.JSONArray;
import javaweb.bean.Goods;public class GoodsDao {public List<Goods> find(){List<Goods> list=new ArrayList<Goods>();//创建bean的链表,用来接收数据Connection conn=null;//先连上数据库PreparedStatement pstmt=null;ResultSet rs=null;try {Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/javaweb?useUnicode=true&characterEcoding=utf-8";String username = "root";String password = null;conn=DriverManager.getConnection(url,username,password);//使用username ,password登录String sql="select id,name,price from t_goods";//创建sql语句pstmt=conn.prepareStatement(sql);//执行sql语句rs=pstmt.executeQuery();//取结果集while(rs.next()) {Goods i=new Goods();//用bean创建对象,将取出来的数据封装到在里面i.setId(rs.getInt(1));i.setName(rs.getString(2));i.setPrice(rs.getDouble(3));list.add(i);//将封装的数据加到先前创建的list里}} catch (Exception e) {// TODO: handle exception}finally {//使用完,要关闭连接if(pstmt!=null) {try {pstmt.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(conn!=null) {try {conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}return list;}
}

三、创建servlet

package javaweb.servlet;import java.io.IOException;
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 cn.hutool.json.JSONArray;
import javaweb.bean.Goods;
import javaweb.dao.GoodsDao;@WebServlet("/shopping/index")
public class ShoppingServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {GoodsDao dao=new GoodsDao();//创建GoodsDao的对象List<Goods> goods=dao.find();//调用find方法request.setAttribute("goods", goods);//放到request域中request.getRequestDispatcher("/shopping/index.jsp").forward(request, response);//转发给shopping/index.jsp}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

四、创建jsp文件,用来取数据并显示

  1. 取出request域中的数据(这个数据是Goods的链表,request域中取出的object类型,需要强转一下)

  2. 使用jsp拼接语句,达到循环读取数据

<%@page import="java.util.List"%>
<%@page import="javaweb.bean.Goods"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>小红帽商城</title>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/layui/css/layui.css">
<script type="text/javascript" src="${pageContext.request.contextPath }/layui/layui.js"></script>
</head>
<body>
<div class="layui-bg-red"><div class="layui-container"><h3 class="layui-inline ">小红帽商城</h3><div class="layui-nav layui-inline layui-bg-red"><div class="layui-nav-item"><a href="${pageContext.request.contextPath}/shopping">商城首页</a></div></div></div>
</div><div class="layui-container"><table class="layui-table"><thead><tr><th>编号</th><th>商品名称</th><th>价格</th><th></th></tr></thead><tbody><%<%--使用jsp拼接语句,达到循环读取数据--%>List<Goods> goods =(List<Goods>)request.getAttribute("goods");for(Goods i:goods){%><tr><td><%=i.getId() %></td><td><%=i.getName() %></td><td><%=i.getPrice()%></td><td style="width:140px;text-align:center;"><form action="${pageContext.request.contextPath}/shopping/add" class="layui-form layui-inline"><input type="text" value="1" name="number" style="width:60px;" class="layui-input layui-input-inline"><button type="submit" class="layui-btn layui-bg-red "><i class="layui-icon layui-icon-cart"></i></button>                     </form></td></tr><%}%></tbody></table></div>
</body>
</html>

以上为从数据库读取数据的详细操作。
欢迎访问我的个人博客http://dzyblog.xyz/有更好的阅读体验

javaweb 从数据库读取数据的详细操作相关推荐

  1. python pandas 读取数据库_数据分析-pandas从数据库读取数据

    数据分析-pandas从数据库读取数据 使用pandas读取数据到DataFrame,对于只是数据分析来说,重点是读取数据,读取数据过程越简单越好,并不需要写得很复杂显得自己很厉害的样子.最好就是代码 ...

  2. R语言可以直接从数据库读取数据么?R语言读取数据库数据示例

    R语言可以直接从数据库读取数据么?R语言读取数据库数据示例 目录 R语言可以直接从数据库读取数据么?R语言读取数据库数据示例 R语言是解决什么问题的? R语言可以直接从数据库读取数据么?R语言读取数据 ...

  3. 《Clojure数据分析秘笈》——1.6节从JDBC数据库读取数据

    本节书摘来自华章社区<Clojure数据分析秘笈>一书中的第1章,第1.6节从JDBC数据库读取数据,作者(美)Eric Rochester,更多章节内容可以访问云栖社区"华章社 ...

  4. php连接数据库返回数据类型,php从数据库读取数据,并以json格式返回数据的方法...

    php中,从数据库读取数据,并以json格式返回数据.具体方法如下: 第一步,定义相关变量 $servername = "localhost"; $username = " ...

  5. php lpop 返回null,数据库读取数据返回 null 怎么办?

    laravel 5.5, win10+Homestead环境, 项目有两个数据库,一个项目自己的,在Homestead里面,一个外部数据库,在我物理机上.现在我需要从外部数据库读取数据. 业务逻辑是这 ...

  6. mysql数据库读取数据,教你如何从 MySQL 数据库读取数据

    从 MySQL 数据库读取数据 SELECT 语句用于从数据表中读取数据: SELECT column_name(s) FROM table_name 我们可以使用 * 号来读取所有数据表中的字段: ...

  7. mysql数据库实验查询_MySQL数据库表数据的查询操作实验

    实验3.MySQL数据库表数据的查询操作实验(1) 一.实验目的 掌握SELECT 语句的基本语法格式. 掌握SELECT 语句的执行方法. 掌握SELECT 语句的 GROUP BY 和 ORDER ...

  8. Hibernate上传数据到数据库,从数据库读取数据到本地模板代码

    1.Hibernate上传数据到数据库: 1 //创建一个session对象 2 Session session1=HibernateTools.getSession(); 3 //Fenciresu ...

  9. Android中,Sqlite数据库读取数据为空的问题

    公司使用的触摸屏出现了一个奇怪的问题,在app中读取数据,只是简单的select * from table 也查询不到数据. [问题描述] 后来发现是有两个module单例分别连接数据库,一个modu ...

最新文章

  1. 多线程和多进程的差别(小结)
  2. SAP ABAP技能树
  3. ASP.NET Core微服务(三)——【跨域配置】
  4. java对象复制到另一个对象中_spring: beanutils.copyproperties将一个对象的数据塞入到另一个对象中(合并对象)...
  5. poj2480(利用欧拉函数的积性求解)
  6. Java Map集合
  7. java 先入先出,java_阻塞队列(FIFO先进先出)
  8. linux命令行快捷命令及vim常用快捷命令
  9. java坦克大战总体功能设计_java课程设计——坦克大战
  10. Qt应用程序主窗口框架
  11. android官方素材,android Studio 中文社区
  12. ISO 12233和SFR
  13. 在Word中为三位数字设置带圈字符(转)
  14. 微信小程序如何搭建自己的后台(超详细,超完整)(上线必备)!!!
  15. CES这个会下腰的中国机器人火了,大型仿人机器人市场迎来“头号玩家”
  16. UNI-APP_微信授权失败 微信授权第一次失败,需要授权两次才能成功
  17. 识别不同域名访问不同主页
  18. Outlook中Skype会议按钮丢失
  19. 经纬度转换XY坐标,并计算距离
  20. 计算机试图启动宏,win7打开word提示“您试图运行的函数包含宏或需要宏语言支持的内容”如何解决...

热门文章

  1. JAVA练习题:求税后工资问题
  2. 有趣的计算机课作文,一堂有趣的课作文(精选4篇)
  3. RSS精选(一)-文摘
  4. 《自然语言处理:基于预训练模型的方法》读书笔记:第2章 自然语言处理基础
  5. 温度传感器的c语言程序,DS18B20数字温度传感器C语言程序实例
  6. 引用SMTH的一个“坑”!
  7. GD32测量pwm波频率以及占空比
  8. 持续集成Jenkins+Gitlab实现持续集成
  9. sql的简单的增删改查
  10. error: insufficient permission for adding an object...