商城项目整理(三)JDBC增删改查
商品表的增加,修改,删除,订单表的增加,确认,用户表的查看,日志表的增加,查看
商品表建表语句:
create table TEST.GOODS_TABLE ( gid NUMBER not null, gname ), gdetails CLOB, gpicture ), gprice NUMBER, gleixing NUMBER, gpinpai ) ) tablespace USERS pctfree initrans maxtrans storage ( initial 64K next 1M minextents maxextents unlimited ); comment on column TEST.GOODS_TABLE.gid is '商品ID'; comment on column TEST.GOODS_TABLE.gname is '商品名称'; comment on column TEST.GOODS_TABLE.gdetails is '商品详情'; comment on column TEST.GOODS_TABLE.gpicture is '商品图片'; comment on column TEST.GOODS_TABLE.gprice is '商品价格'; comment on column TEST.GOODS_TABLE.gleixing is '商品类型'; comment on column TEST.GOODS_TABLE.gpinpai is '商品品牌'; alter table TEST.GOODS_TABLE add constraint PK_GOODSID primary key (GID) using index tablespace USERS pctfree initrans maxtrans storage ( initial 64K next 1M minextents maxextents unlimited );
订单表建表语句:
create table TEST.SHOPORDER ( scid ), scuser ), scgid ), scnum NUMBER, scmoney NUMBER, sctime ), sczt ) ) tablespace SYSTEM pctfree pctused initrans maxtrans storage ( initial 64K next 1M minextents maxextents unlimited ); comment on column TEST.SHOPORDER.scid is '订单号'; comment on column TEST.SHOPORDER.scuser is '用户名'; comment on column TEST.SHOPORDER.scgid is '商品ID'; comment on column TEST.SHOPORDER.scnum is '商品数量'; comment on column TEST.SHOPORDER.scmoney is '商品总价'; comment on column TEST.SHOPORDER.sctime is '交易时间'; comment on column TEST.SHOPORDER.sczt is '订单状态';
用户表建表语句:
create table TEST.USER_TABLE ( userid NUMBER not null, uname ), upassword ), unickname ), uemail ), utime ) ) tablespace USERS pctfree initrans maxtrans storage ( initial 64K next 1M minextents maxextents unlimited ); comment on column TEST.USER_TABLE.userid is '用户id'; comment on column TEST.USER_TABLE.uname is '用户名'; comment on column TEST.USER_TABLE.upassword is '用户密码'; comment on column TEST.USER_TABLE.unickname is '用户昵称'; comment on column TEST.USER_TABLE.uemail is '用户邮箱'; comment on column TEST.USER_TABLE.utime is '注册时间';
日志表建表语句:
create table TEST.SHOPLOG ( pname ), pugroup ), puptime ), pip ), plog ) ) tablespace SYSTEM pctfree pctused initrans maxtrans storage ( initial 64K next 1M minextents maxextents unlimited ); comment on column TEST.SHOPLOG.pname is '用户名'; comment on column TEST.SHOPLOG.pugroup is '用户组'; comment on column TEST.SHOPLOG.puptime is '登陆时间'; comment on column TEST.SHOPLOG.pip is 'IP'; comment on column TEST.SHOPLOG.plog is '操作';
数据库链接驱动类:
package com.hanqi.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * 数据库驱动连接类 * @author ZBK */ public class DBHelper { /** * 数据库用户名 */ public static final String USERNAME = "test"; /** * 数据库密码 */ public static final String PASSWORD = "test"; /** * 数据库驱动类 */ public static final String DRIVER = "oracle.jdbc.OracleDriver"; /** * 数据库地址URL */ public static final String URL = "jdbc:oracle:thin:@localhost:1521:xe"; /** * 获取数据库连接 * @return */ public static Connection getConnection() { Connection conn = null; try { Class.forName(DRIVER); conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } /** * 释放资源 * @param conn 数据库连接对象 * @param sm Statement对象 * @param rs ResultSet结果集对象 */ public static void destroy(Connection conn, Statement sm, ResultSet rs) { if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } conn = null; } if (sm != null) { try { sm.close(); } catch (SQLException e) { e.printStackTrace(); } sm = null; } if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } rs = null; } } /** * 验证前台传入的参数是否为空 * @param args * @return */ public static boolean checkParam(String... args) { for (String s : args) { if (s == null || s.trim().length() < 1) { return false; } } return true; } }
数据库操作方法类:
package com.hanqi.dal; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.hanqi.model.Goods; import com.hanqi.model.Log; import com.hanqi.model.Order; import com.hanqi.model.TradingStatusFile; import com.hanqi.model.User; import com.hanqi.util.DBHelper; public class MethodDal { private Connection conn; private PreparedStatement ps; private ResultSet rs; private static int scnum=1000; //初始化链接 public void init(String sql) { conn = DBHelper.getConnection(); try { ps = conn.prepareStatement(sql); } catch (SQLException e) { e.printStackTrace(); } } //释放资源 public void close(){ DBHelper.destroy(conn, ps, rs); } //判断传入的参数有没有空的方法,只要有空的就返回false public boolean checkParam(String... args){//这样传参数代表参数个数不确定,传几个都可以 for(String s : args){ if("".equals(s)||s==null){ return false; } } return true; } /** * 返回所有商品 * @return */ public List<Goods> getAllGoods(){ String sql = "select * from GOODS_TABLE g"; init(sql); List<Goods> list = new ArrayList<Goods>(); try { rs = ps.executeQuery(); while (rs.next()) { Goods good=new Goods(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getInt(5),rs.getInt(6),rs.getString(7)); list.add(good); } } catch (SQLException e) { e.printStackTrace(); } return list; } /** * 增加一条商品信息 * @param g * @return */ public int insertGoods(Goods g) { String sql = "insert into GOODS_TABLE values(tablexulie.nextval,?,?,?,?,?,?)"; init(sql); int a = -1; try { ps.setString(1, g.getGname()); ps.setString(2, g.getGdetails()); ps.setString(3, g.getGpicture()); ps.setInt(4, g.getGprice()); ps.setInt(5, g.getGleixing()); ps.setString(6, g.getGpinpai()); a = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return a; } /** * 删除商品信息 */ public int deleteGoods(int gid) { String sql = "delete from GOODS_TABLE g where g.gid=? "; init(sql); int a = -1; try { ps.setInt(1, gid); a = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return a; } //修改商品信息 public int UpdateGood(Goods g) { String sql = "update GOODS_TABLE g set g.gname=?,g.gdetails=?,g.gpicture=?,g.gprice=?,g.gleixing=?,g.gpinpai=? where g.gid=?"; init(sql); int a = -1; try { ps.setString(1, g.getGname()); ps.setString(2, g.getGdetails()); ps.setString(3, g.getGpicture()); ps.setInt(4, g.getGprice()); ps.setInt(5, g.getGleixing()); ps.setString(6, g.getGpinpai()); ps.setInt(7, g.getGid()); a = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return a; } public int UpdateGoodNP(Goods g) { String sql = "update GOODS_TABLE g set g.gname=?,g.gdetails=?,g.gprice=?,g.gleixing=?,g.gpinpai=? where g.gid=?"; init(sql); int a = -1; try { ps.setString(1, g.getGname()); ps.setString(2, g.getGdetails()); ps.setInt(3, g.getGprice()); ps.setInt(4, g.getGleixing()); ps.setString(5, g.getGpinpai()); ps.setInt(6, g.getGid()); a = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return a; } //获取数量 public int getGoodsSum(String scuser) { String sql = "select s.scnum from SHOPPINGCAR s where s.scuser=?"; int sum=0; init(sql); try { ps.setString(1, scuser); rs = ps.executeQuery(); while (rs.next()) { sum+=rs.getInt("scnum"); } } catch (SQLException e) { e.printStackTrace(); } return sum; } public Goods getGoods(String gid) { String sql = "select * from GOODS_TABLE g where g.gid="+gid; init(sql); Goods good=new Goods(); try { rs = ps.executeQuery(); while (rs.next()) { good=new Goods(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getInt(5),rs.getInt(6),rs.getString(7)); } } catch (SQLException e) { e.printStackTrace(); } return good; } /** * 增加日志记录 * @param g * @return */ public int insertLog(Log l) { String sql = "insert into ShopLog values(?,?,?,?,?)"; init(sql); int a = -1; try { ps.setString(1, l.getPname()); ps.setString(2, l.getPugroup()); ps.setString(3, l.getPuptime()); ps.setString(4, l.getPip()); ps.setString(5, l.getPlog()); a = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return a; } /** * 返回所有日志 * @return */ public List<Log> getAllLogs(){ String sql = "select * from ShopLog s order by s.puptime desc"; init(sql); List<Log> list = new ArrayList<Log>(); try { rs = ps.executeQuery(); while (rs.next()) { Log l=new Log(); l.setPname(rs.getString(1)); l.setPugroup(rs.getString(2)); l.setPuptime(rs.getString(3)); l.setPip(rs.getString(4)); l.setPlog(rs.getString(5)); list.add(l); } } catch (SQLException e) { e.printStackTrace(); } return list; } /** * 返回购物车数据 * @return */ public List<Order> getAllOrder(String username){ String sql = "select t.* from SHOPPINGCAR t where t.scuser=?"; init(sql); List<Order> list = new ArrayList<Order>(); try { ps.setString(1, username); rs = ps.executeQuery(); while (rs.next()) { Order l=new Order(); l.setScid(rs.getString(1)); l.setScuser(rs.getString(4)); l.setScgid(rs.getString(5)); l.setScnum(rs.getInt(3)); l.setSctime((new Date()).toLocaleString()); list.add(l); } } catch (SQLException e) { e.printStackTrace(); } return list; } /** * 删除购物车已经提交的信息 */ public int deleteSCar(String username) { String sql = "delete from SHOPPINGCAR g where g.scuser=? "; init(sql); int a = -1; try { ps.setString(1, username); a = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return a; } /** * 增加订单记录 * @param g * @return */ public int insertOrder(Order l) { String sql = "insert into SHOPORDER values(?,?,?,?,?,?,?)"; init(sql); int a = -1; try { ps.setString(1, l.getScid()); ps.setString(2, l.getScuser()); ps.setString(3, l.getScgid()); ps.setInt(4, l.getScnum()); ps.setInt(5, l.getScmoney()); ps.setString(6, l.getSctime()); ps.setString(7, l.getSczt()); a = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return a; } /** * 返回未确认订单 * @return */ public List<Order> getAllOrder(){ String sql = "select t.* from SHOPORDER t where t.sczt='待确认' order by t.sctime desc"; init(sql); List<Order> list = new ArrayList<Order>(); try { rs = ps.executeQuery(); while (rs.next()) { Order l=new Order(); l.setScid(rs.getString(1)); l.setScuser(rs.getString(2)); l.setScgid(rs.getString(3)); l.setScnum(rs.getInt(4)); l.setScmoney(rs.getInt(5)); l.setSctime(rs.getString(6)); l.setSczt(rs.getString(7)); list.add(l); } } catch (SQLException e) { e.printStackTrace(); } return list; } /** * 返回确认订单 * @return */ public List<Order> getAllOrder1(){ String sql = "select t.* from SHOPORDER t where t.sczt='已确认' order by t.sctime desc"; init(sql); List<Order> list = new ArrayList<Order>(); try { rs = ps.executeQuery(); while (rs.next()) { Order l=new Order(); l.setScid(rs.getString(1)); l.setScuser(rs.getString(2)); l.setScgid(rs.getString(3)); l.setScnum(rs.getInt(4)); l.setScmoney(rs.getInt(5)); l.setSctime(rs.getString(6)); l.setSczt(rs.getString(7)); list.add(l); } } catch (SQLException e) { e.printStackTrace(); } return list; } /** * 修改订单状态 * @return */ public void UpdateOrder(String sctime){ String sql = "update SHOPORDER s set s.sczt='已确认' where s.sctime=?"; init(sql); try { ps.setString(1, sctime); ps.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } } /** * 返回用户信息 * @return */ public List<User> getAllUsers(){ String sql = "select t.*, t.rowid from USER_TABLE t order by t.utime desc"; init(sql); List<User> list = new ArrayList<User>(); try { rs = ps.executeQuery(); while (rs.next()) { User l=new User(); l.setUserid(rs.getInt(1)); l.setUname(rs.getString(2)); l.setUpassword(rs.getString(3)); l.setUnickname(rs.getString(4)); l.setUemail(rs.getString(5)); l.setUtime(rs.getString(6)); list.add(l); } } catch (SQLException e) { e.printStackTrace(); } return list; } }
商城项目整理(三)JDBC增删改查的更多相关文章
- JDBC增删改查,PreparedStatement和Statement的区别
此篇是在上一篇的基础上使用PreparedStatement对象来实现JDBC增删改查的 具体工具类JDBCTools和实现类和配置文件在上一篇Statement对象实现的时候有写. 上一篇地址htt ...
- ssm项目框架搭建(增删改查案例实现)——(SpringMVC+Spring+mybatis项目整合)
Spring 常用注解 内容 一.基本概念 1. Spring 2. SpringMVC 3. MyBatis 二.开发环境搭建 1. 创建 maven 项目 2. SSM整合 2.1 项目结构图 2 ...
- JDBC增删改查和查唯一的完整代码
第一部分代码(实体类) package com.wf.entity; public class Hehe{ private int hehe_id; private String hehe_name; ...
- jdbc增删改查进行封装
jdbc封装 1 dao (代码分层) com.aaa.dao 存放dao相关的类型 例如 StudentDAOImpl 处理 数据库的链接 存取数据 com.aaa.servlet 存放servle ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 自定义仓储之增删改查
上一篇文章(https://www.cnblogs.com/meowv/p/12913676.html)我们用Code-First的方式创建了博客所需的实体类,生成了数据库表,完成了对EF Core的 ...
- Java项目——模拟电话薄联系人增删改查
该项目模拟了电话本记录联系人的业务功能,用来练习对数据库的增删改查等操作. 菜单类:Menu -- 用来封装主菜单和个选项的子菜单 Person类: Person--联系人的实体类 TelNoteRe ...
- JDBC增删改查
/* db.properties的配置 driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/day14 username=root ...
- jdbc 增删改查以及遇见的 数据库报错Can't get hostname for your address如何解决
最近开始复习以前学过的JDBC今天肝了一晚上 来睡睡回笼觉,长话短说 我们现在开始. 我们先写一个获取数据库连接的jdbc封装类 以后可以用 如果不是maven环境的话在src文件下新建一个db.pr ...
- JAVA JDBC 增删改查简单例子
1.数据库配置文件jdbc.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test username= ...
- JavaJDBC【三、增删改查】
获取数据库连接后,可进行增删改查操作 语句生成: Statement s = con.createStatement(sql); //生成语句 PreparedStatement ps = (Prep ...
随机推荐
- 我从.net转到java的心得和体会
前言:由于有不少人咨询过我如果从.net转java,有什么技巧吗,我现在就分享我从.net转java的历程,这里不涉及两门语言的比较,记录的都是我个人的观点. 一:从.net转java的初衷 我是20 ...
- 《HelloGitHub》第 20 期
前言 HelloGitHub 项目已经累积到 3k+ Stars.本项能够走到今天,帮助到越来越多的人.少不了热爱开源.不断为本项目贡献项目的小伙伴们. 贡献者列表 很多人都有想法,付诸于行动在少数, ...
- Django框架的安装
下载Django框架 创建一个django项目 在E盘Mysite文件夹下创建了一个django项目叫mysite 当前文件夹下会产生一个mysite的文件夹,目录结构如下: manage.py -- ...
- linux磁盘管理系列-LVM的使用
LVM是什么 LVM是Linux操作系统的逻辑卷管理器. 现在有两个Linux版本的LVM,分别是 LVM1,LVM2.LVM1是一种已经被认为稳定了几年的成熟产品,LVM2 是最新最好的LVM版本. ...
- openstack高可用haproxy配置
#openstack高可用haproxy配置openstack pike 部署 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html #openstack高可 ...
- NYOJ-2359: 巴什博弈?
2359: 巴什博弈? 时间限制: 1 Sec 内存限制: 30 MB 提交: 263 解决: 55 [提交][状态][讨论版] 题目描述 有n个石子,有两人轮流从中取石子,最少a个最多b个,谁没 ...
- 算法训练 最大的算式 DP
算法训练 最大的算式 时间限制:1.0s 内存限制:256.0MB 问题描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果 ...
- linux安装redis(转)
一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...
- nignx 测试配置文件
nginx -t nginx: the configuration file /usr/local/nginx-1.2.9/conf/nginx.conf syntax is ok nginx: co ...
- 深入理解java虚拟机_第三章(上)----->垃圾收集器与内存分配策略
1. 前言 这一版块内容比较多,分为两篇文章来做笔记.本文讲述上半部分垃圾收集部分;下一篇文章写内存分配部分. 概述 对象已死吗? 引用技术算法 可达性分析算法 再谈引用 两次标记 回收方法区 2. ...