This commit is contained in:
Your Name
2026-04-07 19:42:25 +07:00
commit c130218fa1
16 changed files with 315 additions and 0 deletions

30
.gitignore vendored Normal file
View File

@@ -0,0 +1,30 @@
### IntelliJ IDEA ###
out/
!**/src/main/**/out/
!**/src/test/**/out/
.kotlin
### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
### VS Code ###
.vscode/
### Mac OS ###
.DS_Store

10
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,10 @@
# Default ignored files
/shelf/
/workspace.xml
# Ignored default folder with query files
/queries/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

View File

@@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="SqlNoDataSourceInspection" enabled="false" level="WARNING" enabled_by_default="false" />
</profile>
</component>

View File

@@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="mysql-connector-j-9.6.0">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/mysql-connector-j-9.6.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

6
.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_19" default="true" project-jdk-name="19" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/qlsp.iml" filepath="$PROJECT_DIR$/qlsp.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

Binary file not shown.

12
qlsp.iml Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="mysql-connector-j-9.6.0" level="project" />
</component>
</module>

8
src/Main.java Normal file
View File

@@ -0,0 +1,8 @@
import menus.ProductMgMenu;
public class Main {
public static void main(String[] args) {
ProductMgMenu productMgMenu = new ProductMgMenu();
productMgMenu.load();
}
}

44
src/dao/ProductDAO.java Normal file
View File

@@ -0,0 +1,44 @@
package dao;
import model.Product;
import utils.MysqlConnect;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class ProductDAO {
public List<Product> getProductList() throws SQLException {
List<Product> result = new ArrayList<>();
String sql = "SELECT * FROM products";
Connection c = MysqlConnect.getConnecton();
PreparedStatement pt = c.prepareStatement(sql);
ResultSet rs = pt.executeQuery();
while (rs.next()) {
Product p = new Product(
rs.getInt("id"),
rs.getString("name"),
rs.getDouble("price"),
rs.getString("title"),
rs.getDate("created"),
rs.getString("catalog"),
rs.getBoolean("status")
);
result.add(p);
}
return result;
}
}

12
src/db.sql Normal file
View File

@@ -0,0 +1,12 @@
create database product_management_db;
use database product_management_db;
CREATE TABLE `products` (
`id` int NOT NULL,
`name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
`price` float NOT NULL,
`title` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL,
`created` date NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '1'
);

View File

@@ -0,0 +1,41 @@
package menus;
import services.ProductService;
import java.util.Scanner;
public class ProductMgMenu {
ProductService ps = new ProductService();
public void load() {
int choice;
Scanner sc = new Scanner(System.in);
do {
System.out.println("1/ Danh sách sản phẩm");
System.out.println("2/ Thêm mới sản phẩm");
System.out.println("3/ Cập nhật sản phẩm");
System.out.println("4/ Xóa sản phẩm");
System.out.println("5/ Tìm kiếm sản phẩm theo tên sản phẩm");
System.out.println("6/ Sắp xếp sản phẩm theo giá tăng dần");
System.out.println("7/ Thống kê số lượng sản phẩm theo danh mục");
System.out.println("0. Thoát");
System.out.println("Lựa chọn của bạn: ");
choice = sc.nextInt();
switch (choice) {
case 1:
ps.showProductList();
System.out.println("DSSP");
break;
default:
System.out.println("Lựa chọn kg phù hợp!");
}
}while (choice != 0);
}
}

89
src/model/Product.java Normal file
View File

@@ -0,0 +1,89 @@
package model;
import java.util.Date;
public class Product {
int id;
String name;
Double price;
String title;
Date created;
String catalog;
Boolean status;
public Product(){
};
public Product(int id, String name, Double price, String title, Date created, String catalog, Boolean status) {
this.id = id;
this.name = name;
this.price = price;
this.title = title;
this.created = created;
this.catalog = catalog;
this.status = status;
}
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 getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
public String getCatalog() {
return catalog;
}
public void setCatalog(String catalog) {
this.catalog = catalog;
}
public Boolean getStatus() {
return status;
}
public void setStatus(Boolean status) {
this.status = status;
}
@Override
public String toString() {
return "Tên SP " + this.name + " giá: " + this.price;
}
}

View File

@@ -0,0 +1,16 @@
package services;
import dao.ProductDAO;
public class ProductService {
ProductDAO productDAO = new ProductDAO();
public void showProductList() {
try {
System.out.println(productDAO.getProductList());
}catch (Exception e) {
System.out.println("Không thể đọc dữ liệu từ CSDL!");
}
}
}

View File

@@ -0,0 +1,18 @@
package utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class MysqlConnect {
public static Connection getConnecton() {
try {
return DriverManager.getConnection("jdbc:mysql://localhost:3306/product_management_db?" + "user=root&password=");
} catch (SQLException ex) {
System.out.println("loi " + ex);
}
return null;
}
}