当前位置: 首页 > news >正文

城阳网站开发/网上的推广

城阳网站开发,网上的推广,网址导航浏览器最新的2021年,广州市建设工程检测中心网站前言: 上篇文章使用Java基于MVC模式开发一个简单商品管理系统给很多java web初学者(1-3个月)提供了些许帮助,不久前又有读者问我能不能开发一个纯java控制台版的简易管理系统,遂写下此文。 持续更新…… 2019年12月25…

前言: 上篇文章使用Java基于MVC模式开发一个简单商品管理系统给很多java web初学者(1-3个月)提供了些许帮助,不久前又有读者问我能不能开发一个纯java控制台版的简易管理系统,遂写下此文。

持续更新……

2019年12月25日 23:09:25

文章已贴上全部源码

效果图:
在这里插入图片描述
开发环境:

  • Eclipse Oxygen
  • JDK 1.8.0_112

打包全部源码:
地址: https://pan.baidu.com/s/1tXr8Y_32WlEXYZrMBWKK0A
密钥: 6rpa

功能:

  • 商品查询(全部查询、根据商品名模糊查询、根据商品产地模糊查询)
  • 商品添加(输入商品名、商品产地、商品价格即可添加)
  • 商品删除(输入商品编号,根据商品编号进行删除)
  • 商品更新(输入待更新商品的编号,再输入新名称,新产地信息,新价格,完成更新)

不足:

  • 控制台版本,格式化的输出需要优化,用户操作需要优化,时间有限,先把功能完成了

优点:

  • 适用于java初学者,学习JDBC相关操作,理解增加(Insert)、删除(Delete)、修改(Update)、查询(Retrive)的过程。
  • 代码根据之前MVC版本的DAO代码改造,避免了一个业务方法中写过多的DAO代码,一定程度上降低了代码的耦合性,基本符合开闭原则,可快速进行功能迭代,添加相关DAO实现后,使用工厂类注册,方便业务层调用等。

项目树结构:

项目树结构,及jar包引用:
在这里插入图片描述
数据表结构:
在这里插入图片描述
示例数据:
在这里插入图片描述
FAQ:

  • 如何构建项目,运行起来?

    使用一个集成开发环境(如:Eclipse、MyEclipse、Intellij IDEA等)创建java project → 将本文src中的全部包导入 → 为项目引用jdbc jar包 → 使用数据库脚本创建数据库表结构→检查数据库链接字符串 → 运行test类检查数据库连接是否正常,运行程序com.mysql.jdbc.JDBC4Connection@2c2a5319看到此输出,则证明数据库链接正常

  • 注意事项有哪些?

    暂未优化控制台输出的版本,因此格式稍有凌乱,建议使用鼠标将光标定位到末尾输入,则可以看到较为整齐的输出

    如果使用了本文中已打包的程序,注意配置jdk、数据库连接jar包的引用

在这里插入图片描述


源码:

1.实体类

package com.zjl.bean;
/*** 商品实体类* @author Administrator**/
public class Product {private int id;private String name;private String addr;private double price;public Product() {super();}public Product(int id, String name, String addr, double price) {super();this.id = id;this.name = name;this.addr = addr;this.price = price;}public Product(String name, String addr, double price) {super();this.name = name;this.addr = addr;this.price = price;}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 getAddr() {return addr;}public void setAddr(String addr) {this.addr = addr;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}@Overridepublic String toString() {return "Product [id=" + id + ", name=" + name + ", addr=" + addr + ", price=" + price + "]";}}

2.数据库连接工具类

package com.zjl.conn;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/*** 数据库连接工具类* @author Administrator**/
public class ConnectDatabase {private static final String DRIVER_STRING="com.mysql.jdbc.Driver";private static final String URL_STRING="jdbc:mysql://47.105.159.27:3306/dbms";private static final String USER_STRING="root";private static final String PASS_STRING="admin";public static Connection getConnection(){Connection connection=null;try {Class.forName(DRIVER_STRING);connection=DriverManager.getConnection(URL_STRING, USER_STRING, PASS_STRING);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}return connection;}public void realse(Connection conn,PreparedStatement ps,ResultSet rs){if(conn!=null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}}if(ps!=null){try {ps.close();} catch (SQLException e) {e.printStackTrace();}}if(rs!=null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}}
}

3.菜单及入口程序

package com.zjl.console;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;import com.zjl.bean.Product;
import com.zjl.conn.ConnectDatabase;
import com.zjl.dao.DaoFactory;
import com.zjl.service.IProductDao;public class Menu {/*** 控制台版,简易商品管理系统,含商品增加、删除、修改、查询* 含用户登录* 使用了mysql数据库* 基于Java20180130MVC进行了改造,使用了原有的包结构和DAO*/static Scanner sc = new Scanner(System.in);static List<Product> pList = new ArrayList<Product>();static Product product = new Product();static IProductDao pDao = DaoFactory.getProductDao();public static void main(String[] args) {menu();}public static void menu(){	while(true){System.out.println("------商品管理系统-------");System.out.println("1.测试数据库连接");System.out.println("2.查询商品");System.out.println("3.添加商品");System.out.println("4.删除商品");System.out.println("5.更新商品");System.out.println("-------------------------");System.out.println("请输入操作序号,按下回车,等待程序执行");System.out.println();int choice = sc.nextInt();switch (choice) {case 1:// 1.测试数据库连接System.out.println(ConnectDatabase.getConnection());break;case 2://2.查询商品retrive();break;case 3://3.添加商品insert();break;case 4://4.删除商品delete();break;case 5://5.更新商品update();break;}}}/*** 商品查询,全部查询,模糊查询*/private static void retrive() {Map<String , Object> map =new HashMap<String, Object>();System.out.println("1.查询全部商品");System.out.println("2.按商品名称模糊查询");System.out.println("3.按商品产地模糊查询");int choice1 = sc.nextInt();switch (choice1) {case 1://查询全部try {map=null;pList = pDao.queryProduct(map);} catch (Exception e) {e.printStackTrace();}System.out.println("\t编号\t名称\t产地\t价格\n");System.out.println("\t----------------------------------------------------");for (int i = 0; i < pList.size(); i++) {System.out.println(pList.get(i));}break;case 2:System.out.println("请输入商品名称,进行模糊查询:");String name = sc.next();//按名称模糊查询map.put("name",name);try {pList = pDao.queryProduct(map);System.out.println("\t编号\t名称\t产地\t价格\n");for (int i = 0; i < pList.size(); i++) {System.out.println(pList.get(i));}} catch (Exception e1) {e1.printStackTrace();}break;case 3://按产地模糊查询System.out.println("请输入商品产地,进行模糊查询:");String addr = sc.next();				map.put("addr", addr);try {pList = pDao.queryProduct(map);} catch (Exception e1) {e1.printStackTrace();}System.out.println("\t编号\t名称\t产地\t价格\n");for (int i = 0; i < pList.size(); i++) {System.out.println(pList.get(i));}}}/*** 添加商品*/private static void insert() {System.out.println("请输入要增加的商品信息:");Scanner sc = new Scanner(System.in);System.out.println("请输入商品名称:");String name = sc.next();System.out.println("请输入商品产地:");String addr = sc.next();System.out.println("请输入商品价格:");Double price = sc.nextDouble();product.setName(name);product.setAddr(addr);product.setPrice(price);try {if(pDao.insert(product)){System.out.println("商品添加成功");}else{System.out.println("商品添加失败");}} catch (Exception e) {e.printStackTrace();}}/*** 删除商品*/private static void delete() {System.out.println("请输入要删除的商品编号:");Scanner sc = new Scanner(System.in);int id = sc.nextInt();product.setId(id);try {if(pDao.delete(product)){System.out.println("删除商品成功");}else{System.out.println("删除商品失败");}} catch (Exception e) {e.printStackTrace();}}/*** 更新商品*/private static void update() {System.out.println("请输入要更新的商品编号:");Scanner sc =new Scanner(System.in);int id = sc.nextInt();product.setId(id);try {product = pDao.queryById(product);if(product==null){System.out.println("数据不存在");}else{System.out.println("请输入新的商品名称:");String name = sc.next();System.out.println("请输入新的商品产地:");String addr = sc.next();System.out.println("请输入新的价格:");Double price = sc.nextDouble();product.setName(name);product.setAddr(addr);product.setPrice(price);if(pDao.update(product)){System.out.println("商品信息更新成功");}else{System.out.println("商品信息更新失败");}}} catch (Exception e) {e.printStackTrace();}}
}

4.工厂类

package com.zjl.dao;import com.zjl.service.IProductDao;
import com.zjl.service.IUserDao;
/*** DAO工厂类,为DAO调用者提供DAO实例对象* @author Administrator**/
public class DaoFactory {public static IUserDao getUserDao(){return new UserDaoImp();}public static IProductDao getProductDao(){return new ProductImp();}
}

5.商品DAO实现类

package com.zjl.dao;import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;import com.zjl.bean.Product;
import com.zjl.bean.User;
import com.zjl.conn.ConnectDatabase;
import com.zjl.service.IProductDao;
/*** 商品操作接口实现类,实现商品的增加、删除、更新、添加等操作* @author Administrator**/
public class ProductImp implements IProductDao {PreparedStatement ps = null;public boolean insert(Product p) {String sql ="insert into product(name,addr,price) values(?,?,?)";int n =0;try{ps = ConnectDatabase.getConnection().prepareStatement(sql);ps.setString(1, p.getName());ps.setString(2, p.getAddr());ps.setDouble(3, p.getPrice());n=ps.executeUpdate();}catch (Exception e) {e.printStackTrace();}return n>0;}public boolean delete(Product p) {String sql ="delete from product where id="+p.getId();int n=0;try{ps=ConnectDatabase.getConnection().prepareStatement(sql);n=ps.executeUpdate();}catch (Exception e) {e.printStackTrace();}return n>0;}public boolean update(Product p) {String sql = "update product set name=?,addr=?,price=? where id=?";int n = 0;try{ps=ConnectDatabase.getConnection().prepareStatement(sql);ps.setString(1, p.getName());ps.setString(2, p.getAddr());ps.setDouble(3, p.getPrice());ps.setInt(4, p.getId());n=ps.executeUpdate();}catch(Exception e){e.printStackTrace();}return n>0;}public List<Product> queryProduct(Map<String, Object> map) {StringBuffer sql= new StringBuffer("select * from product where 1 =1");// 判断Map,根据name模糊查询if (map != null && map.get("name") != null) {// map不为空,即为模糊查询,append增加sql查询语句sql.append(" and name like '").append("%").append(map.get("name")).append("%'");// 根据addr模糊查询} else if (map != null && map.get("addr") != null) {sql.append(" and addr like '").append("%").append(map.get("addr")).append("%'");}List<Product> list = new ArrayList<Product>();try{ps = ConnectDatabase.getConnection().prepareStatement(sql.toString());ResultSet rs = ps.executeQuery();while(rs.next()){Product p = new Product();p.setId(rs.getInt("id"));p.setName(rs.getString("name"));p.setAddr(rs.getString("addr"));p.setPrice(rs.getDouble("price"));list.add(p);}}catch (Exception e) {e.printStackTrace();}return list;}public Product queryById(Product p) {Product product = null;String sql = "select * from product where id="+p.getId();try{ps = ConnectDatabase.getConnection().prepareStatement(sql);ResultSet rs = ps.executeQuery();if(rs.next()){product  = new Product();product.setId(rs.getInt("id"));product.setName(rs.getString("name"));product.setAddr(rs.getString("addr"));product.setPrice(rs.getDouble("price"));}}catch(Exception e){e.printStackTrace();}return product;}}

6.商品DAO接口

package com.zjl.service;import java.util.List;
import java.util.Map;import com.zjl.bean.Product;
import com.zjl.bean.User;
/**商品操作接口* @author Administrator**/
public interface IProductDao {public boolean insert(Product p);public boolean delete(Product p);public boolean update(Product p);public List<Product> queryProduct(Map<String, Object> map);public Product queryById(Product p);
}

7.测试类

package com.zjl.test;import com.zjl.bean.User;
import com.zjl.conn.ConnectDatabase;
import com.zjl.dao.DaoFactory;
import com.zjl.service.IUserDao;public class test {/*** @param args*/public static void main(String[] args) {ConnectDatabase conn = new ConnectDatabase();System.out.println(conn);IUserDao userDao =DaoFactory.getUserDao();User user = new User("李四","123456");System.out.println(userDao.insert(user));}}

8.sql脚本

/*
SQLyog v10.2 
MySQL - 5.0.96-community-nt : Database - dbms
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`dbms` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `dbms`;/*Table structure for table `product` */DROP TABLE IF EXISTS `product`;CREATE TABLE `product` (`id` int(11) NOT NULL auto_increment,`name` varchar(20) NOT NULL,`addr` varchar(50) NOT NULL,`price` double NOT NULL,PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;/*Data for the table `product` */insert  into `product`(`id`,`name`,`addr`,`price`) 
values (1,'冰红茶','广东',3.5),
(2,'娃哈哈','四川',1),
(3,'农夫山泉','泉州',2),
(4,'怡宝','武汉',2),
(5,'红牛','四川',4.5);
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

后记:文章适用于初学java不久的读者,可以帮助理解jdbc 相关的Create、Retrive、Update、Delete相关操作,且代码经过精简,分离了DAO,冗余性较低。如在阅读中遇到疑惑、发现不恰当之处,欢迎指正。

http://www.jmfq.cn/news/4840705.html

相关文章:

  • 广州自助网站制作/天桥区seo全网宣传
  • 建设企业网站的公司/深圳百度百科
  • 无锡网站设计多少钱/论文收录网站有哪些
  • 合肥网站建站/百度惠生活怎么优化排名
  • 网站规划和构成/微博推广费用
  • 网站建设商务通什么意思/seo关键词快速排名前三位
  • 潍坊网站排名公司/沈阳百度seo排名优化软件
  • 荔湾区pc端网站建设/苏州网站排名推广
  • 打鱼网站开发/商务网站如何推广
  • wordpress集团网站/百度站长统计工具
  • wordpress搜索屏蔽/百度爱采购优化
  • app开发模板网站/企业网络推广
  • 武汉市江岸区建设局网站/四种基本营销模式
  • 怀化网站优化多少钱/杭州网站优化流程
  • 在线ps图/衡阳网站优化公司
  • 广告册设计公司/seocui cn
  • 百度网站架构/真正免费建站网站
  • 网站建立者/神马推广登录
  • 网站后台管理模块/深圳全网推广平台
  • 深圳网站建设 营销/站长工具友链查询
  • 网站建设方案ppt 枫子科技/台州seo排名扣费
  • 怎么用文本做网站/搜索引擎推广文案
  • 济南网站制作 泉诺/谷歌搜索引擎大全
  • 进出口贸易公司网站建设/360优化大师官方下载
  • 青岛网站建设 百度/搭建网站平台
  • ajaxjsp网站开发从入门到精通/网页设计模板网站免费
  • 企业网站建设哪家效果好/舆情监测系统
  • 杭州网站建设价格/百度app官方正式版
  • 互联网医院/东莞seo优化案例
  • 用自己的名字设计头像/江苏seo推广