案例项目 实现浏览商品记录的开发步骤

本文介绍了一个案例项目,通过实现DBHelper类获取数据库连接,创建实体类、业务逻辑类(DAO)和页面层,利用JavaSE的JDBC技术和JavaEE的Cookie保存浏览商品记录。详细阐述了数据库表结构、DBHelper类的配置以及商品实体类的创建,重点讨论了如何在Cookie中存储和读取浏览记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

案例项目

目录

案例项目

实现DBHelper类,来获得数据库连接等

创建实体类,对应了数据库中的表

创建业务逻辑类(DAO)

创建页面层


采用Model1(JSP+JavaBean)来实现浏览商品记录的开发步骤:

用到JavaSE部分的JDBC技术,JavaEE部分的cookie保存浏览记录,JSP+JavaBean的分层架构思想

实现DBHelper类,来获得数据库连接等

MySQL数据库创建

数据库名:mydatabase;数据库密码admin

语句:

SET FOREIGN_KEY_CHECKS=0;

 

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

-- Table structure for items

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

DROP TABLE IF EXISTS `items`;

CREATE TABLE `items` (

  `id` int(11) NOT NULL auto_increment,

  `name` varchar(50) default NULL,

  `city` varchar(50) default NULL,

  `price` int(11) default NULL,

  `number` int(11) default NULL,

  `picture` varchar(500) default NULL,

  PRIMARY KEY  (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

 

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

-- Records of items

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

INSERT INTO `items` VALUES ('1', '沃特篮球鞋', '佛山', '180', '500', '001.jpg');

INSERT INTO `items` VALUES ('2', '安踏运动鞋', '福州', '120', '800', '002.jpg');

INSERT INTO `items` VALUES ('3', '耐克运动鞋', '广州', '500', '1000', '003.jpg');

INSERT INTO `items` VALUES ('4', '阿迪达斯T血衫', '上海', '388', '600', '004.jpg');

INSERT INTO `items` VALUES ('5', '李宁文化衫', '广州', '180', '900', '005.jpg');

INSERT INTO `items` VALUES ('6', '小米3', '北京', '1999', '3000', '006.jpg');

INSERT INTO `items` VALUES ('7', '小米2S', '北京', '1299', '1000', '007.jpg');

INSERT INTO `items` VALUES ('8', 'thinkpad笔记本', '北京', '6999', '500', '008.jpg');

INSERT INTO `items` VALUES ('9', 'dell笔记本', '北京', '3999', '500', '009.jpg');

INSERT INTO `items` VALUES ('10', 'ipad5', '北京', '5999', '500', '010.jpg');

DBHelper类

package util;



import java.sql.Connection;

import java.sql.DriverManager;



public class DBHelper {

   

    private static final String driver="com.mysql.cj.jdbc.Driver";//数据库驱动

    //连接数据库的URL地址

    private static final String url="jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";

    private static final String username="root";//数据库的用户名

    private static final String password="admin";//数据库的密码

   

    private static Connection conn=null;

    //静态代码块负责加载驱动

    static {

        try {

            Class.forName(driver);

        }catch (Exception ex) {

            ex.printStackTrace();

        }

    }

    //单例模式返回数据库连接对象

     public static Connection getConnection() throws Exception{

         if(conn==null) {

             conn= DriverManager.getConnection(url, username, password);

             return conn;

         }

         return conn;

         

     }

     public static void main(String[] args) {

        try {

             Connection conn=DBHelper.getConnection();

             if(conn!=null) {

                 System.out.println("数据库连接正常");

             }

             else {

                 System.out.println("数据库连接异常");

             }

        } catch (Exception ex) {

            ex.printStackTrace();

        }

       

    }  

}

 

注:

driver="com.mysql.cj.jdbc.Driver";

url="jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";

创建实体类,对应了数据库中的表

创建完实体类后-点击source-点击format格式化代码

package entity;



//商品类

public class Items {



    private int id;// 商品编号

    private String name;// 商品名称

    private String city;// 产地

    private int price;// 商品价格

    private int number;// 商品数量

    private String picture;// 商品图片



    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 getCity() {

        return city;

    }



    public void setCity(String city) {

        this.city = city;

    }



    public int getPrice() {

        return price;

    }



    public void setPrice(int price) {

        this.price = price;

    }



    public int getNumber() {

        return number;

    }



    public void setNumber(int number) {

        this.number = number;

    }



    public String getPicture() {

        return picture;

    }



    public void setPicture(String picture) {

        this.picture = picture;

    }



}

 

创建业务逻辑类(DAO)

注意在写代码时,尽可能引进一些SQL类的包

package dao;



import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.util.ArrayList;





import entity.Items;

import util.DBHelper;



//商品的业务逻辑类

public class ItemsDAO {



         // 获得所有的商品信息

         public ArrayList<Items> getAllItems() {

                   Connection conn = null;

                   PreparedStatement stmt = null;

                   ResultSet rs = null;

                   ArrayList<Items> list = new ArrayList<Items>();// 商品集合

                   try {

                        &nb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值