1.功能說明
在這一部分中,我們先將數據庫相關的地方設計好,分別是mysql數據庫的內容,數據庫中對應的商品實體類(JavaBean),以及我們連接的數據庫工具類DBHelper。
2.MySQL數據庫
使用navicat建立數據庫:goods_database,然後建立表:good,在這裏送上good的sql腳本
/*
Navicat MySQL Data Transfer
Source Server : Local
Source Server Version : 50720
Source Host : localhost:3306
Source Database : goods_database
Target Server Type : MYSQL
Target Server Version : 50720
File Encoding : 65001
Date: 2018-04-20 18:00:16
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for good
-- ----------------------------
DROP TABLE IF EXISTS `good`;
CREATE TABLE `good` (
`id` int(11) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
`price` decimal(10,2) DEFAULT NULL,
`image` varchar(255) DEFAULT NULL,
`infor` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of good
-- ----------------------------
INSERT INTO `good` VALUES ('1', '老王筆記本', '2888.00', '1.gif', '感人的聯想筆記本電腦廣告,1000人看了,至少999會哭.搭載第八代英特爾酷睿i5處理器. 八代酷睿TM, 讓電腦更快,更薄,更樂!搶購上京東!處理器及MX150顯卡雙滿血,100% sRGB高色域屏,Turbo Drive固態硬盤,超強性能,一戰到底');
INSERT INTO `good` VALUES ('2', '超輕超長山寨機', '520.00', '2.gif', ' 眼界大開。聯合設計。4000萬像素徠卡三鏡頭,AI攝影大師,暗光更出色。');
INSERT INTO `good` VALUES ('3', '某牌照相機', '1000.00', '3.gif', '咔嚓卡擦擦,拍照選我就對了,看在我這麼便宜的份上~');
INSERT INTO `good` VALUES ('4', '華麗麗手機', '250.00', '4.jpg', '相比於樓上的山寨機,我們一直被模仿,從未被超越!!!');
INSERT INTO `good` VALUES ('5', '大哥大', '100.00', '5.jpg', '砸核桃,開鎖,敲人一應俱全,爲您提供人生保障~');
INSERT INTO `good` VALUES ('6', '最脆弱的U盤', '20.00', '6.jpg', '別被我華麗麗的外表矇蔽了,其實我是紙做的。。。');
然後介紹一下我們的good表中的字段:
其中,id,name,price,infor就不多介紹了,這裏的image保存的是我們在工程中WebRoot->image這個文件夾下面圖片名字。其實呢,保存的是一個路徑,當我們訪問的時候,其實就通過路徑訪問該資源,然後顯示出來。
3.商品實體類(模型層)
我們用一個類來保存我們數據庫中對應的表。new這個類的對象就相當於數據庫中的一條記錄,具體是哪個記錄,我們可以通過set,get方法來實現。總而言之,我們爲了簡便,每次從數據庫中獲得的內容將其保存到我們的實體類中,到時候用的時候可以直接get。廢話不多說了,接下來是我們Good.java商品實體類的代碼:
package com.model;
//商品實體類,對應數據庫中的表goods
public class Good {
private int id;
private String name;
private double price;
private String image;
private String infor;
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 String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getInfor() {
return infor;
}
public void setInfor(String infor) {
this.infor = infor;
}
}
3.數據庫連接工具類:DBHelper.java
單例模式,用於連接數據庫,具體如下:
package com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import com.mysql.jdbc.Driver; /* * 數據庫連接的工具類 * 2018.4.16 * 單例模式 */ public class DBHelper { private static final String url="jdbc:mysql://localhost:3306/goods_database"; private static final String name="root"; private static final String password="root"; private static Connection conn = null; static{ try { //註冊數據庫驅動 Class.forName("com.mysql.jdbc.Driver");// 動態加載mysql驅動 DriverManager.registerDriver(new Driver()); //獲取數據庫連接 conn=(Connection) DriverManager.getConnection(url, name, password); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static Connection getConnection(){ System.out.println("數據庫連接成功"); return conn; } }
ok,前期準備我們做好了,接下來就是如何去實現我們的功能了,好啦,讓我們愉快地進入下一節吧~