商城项目整理(三)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 ...
随机推荐
- java 之 代理模式(大话设计模式)
java代理模式顾名思义,就类似于大学,我想和冰可乐,可是我又在玩游戏,于是我让我的室友帮我把可乐带回来,简单的来说我的室友就是代理,而买可乐就是需要做的行为.这是笔者理解的代理模式 大话设计模式-类 ...
- 张高兴的 Xamarin.Forms 开发笔记:TapGestureRecognizer 的简单介绍与应用
最近很少写应用了,一直在忙关于 ASP.NET 的东西(哈欠...).抽点时间对 TapGestureRecognizer 做点总结. 一.简介 TapGestureRecognizer 就是对 Ta ...
- 《Metasploit魔鬼训练营》第四章(上)
p128 wmap 和昨天一样,我用这些漏洞扫描工具去扫testfire.net或者owaspbwa都扫不出漏洞!不明白! 补充:原来是网络不知道啥时候自己断了.连上后再次扫描就成功了:
- sockt套接字编程
一.Socket简介 Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换. 几个定义: (1)IP地址:即依照TCP/IP协议分配给本地主机的 ...
- 自定义控件,上图下字的Button,图片任意指定大小
最近处在安卓培训期,把自己的所学写成博客和大家分享一下,今天学的是这个自定义控件,上图下字的Button安卓自带,但是苦于无法设置图片大小(可以在代码修改),今天自己做了一个,首先看一下效果图,比较实 ...
- C#图片压缩上传
/// <summary> /// 压缩图片 /// </summary> /// <param name="iSource">图片文件< ...
- 校门外的树-poj
问题描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2,……,L,都种 ...
- Jrebel热部署配置完整教程(IntelliJ IDEA、Jrebel、spring boot、springboot、eclipse、Tomcat)
标签:IntelliJ IDEA.Jrebel.spring boot.springboot.eclipse.Tomcat1.安装插件并激活插件安装参考:http://blog.csdn.net/u0 ...
- LCD显示GPS时钟[嵌入式系统]
夏任务102:做一个GPS钟 实验要求 用RPi的串口连接一个GPS模块,从GPS得到实时时间,在7段数码管或LCD上显示 实验工具: Raspberry Pi Model B主机, 8G c10 S ...
- Codeforces 890A - ACM ICPC 暴力
A. ACM ICPCtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputst ...