数码商城小项目
DBCP
package com.blueshuma.DAO.Util;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import org.apache.commons.dbcp2.BasicDataSource;
public class Dbcp {
public static final String DB_CONFIG_FILEPATH = "db0828.properties";
private static Properties pro;
private static Dbcp dbcp;
static {
try {
pro = new Properties();
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(DB_CONFIG_FILEPATH);
pro.load(is);
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
private BasicDataSource dataScource = null;
private Dbcp() {
dataScource = new BasicDataSource();
dataScource.setDriverClassName(pro.getProperty("jdbc.driver"));
dataScource.setUrl(pro.getProperty("jdbc.url"));
dataScource.setUsername(pro.getProperty("jdbc.user"));
dataScource.setPassword(pro.getProperty("jdbc.password"));
dataScource.setInitialSize(Integer.parseInt(pro.getProperty("jdbc.initialSize")));// 设置初始化容量
dataScource.setMaxTotal(Integer.parseInt(pro.getProperty("jdbc.maxTotal")));// 最大活动数
dataScource.setMaxIdle(Integer.parseInt(pro.getProperty("jdbc.maxIdle")));// 最大空闲数
dataScource.setMaxWaitMillis(Long.parseLong(pro.getProperty("jdbc.maxWaitMillis")));// 最大等待时间
}
public static Dbcp getInstance() {
if (dbcp == null) {
dbcp = new Dbcp();
}
return dbcp;
}
public BasicDataSource getDataScource() {
return dataScource;
}
public Connection getConnection() throws SQLException {
return dataScource == null ? null : dataScource.getConnection();
}
public void close(Connection conn, Statement stmt) {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
public void close(Connection conn, Statement stmt, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
close(conn, stmt);
}
}
JDBCTemp
package com.blueshuma.DAO.Util;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JDBCTemp {
public static final int update(PsmtCreater creater) {
int result = -1;
Connection conn = null;
PreparedStatement psmt = null;
try {
conn = Dbcp.getInstance().getConnection();
conn.setAutoCommit(false);
psmt = creater.create(conn);
result = psmt.executeUpdate();
conn.commit();
} catch (SQLException e) {
if (conn != null) {
try {
conn.rollback();
} catch (SQLException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
}
} finally {
Dbcp.getInstance().close(conn, psmt);
}
return result;
}
public static final Object query(PsmtCreater creater, RsSetCreater ex) {
Connection conn = null;
PreparedStatement psmt = null;
ResultSet rs = null;
Object result = null;
try {
conn = Dbcp.getInstance().getConnection();
conn.setAutoCommit(false);
psmt = creater.create(conn);
rs = psmt.executeQuery();
// 提取
result = ex.extractor(rs);
conn.commit();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
if (conn != null) {
try {
conn.rollback();
} catch (SQLException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
}
e.printStackTrace();
} finally {
Dbcp.getInstance().close(conn, psmt, rs);
}
return result;
}
}
回调 谁调用谁实现
package com.blueshuma.DAO.Util;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public interface PsmtCreater {
PreparedStatement create(Connection conn) throws SQLException;
}
package com.blueshuma.DAO.Util;
import java.sql.ResultSet;
import java.sql.SQLException;
public interface RsSetCreater {
Object extractor(ResultSet rs) throws SQLException;
}
方法目录
package com.blueshuma.Test;
import com.blueshuma.Bean.User;
import com.blueshuma.Control.AdUserControl;
import com.blueshuma.Control.UserControl;
import com.blueshuma.Service.ADShopService;
import com.blueshuma.Service.AdOrderService;
import com.blueshuma.Service.OrdersService;
import com.blueshuma.Service.ShopService;
import com.blueshuma.Service.UserService;
public class Test {
/**
*
* @author blue
*
* @date 2020年8月28日
*
*/
public static void main(String[] args) {
UserService usv = new UserService();
ADShopService adsv = new ADShopService();
OrdersService ods = new OrdersService();
AdUserControl ac = new AdUserControl();
ShopService ssv = new ShopService();
UserControl uc = new UserControl();
AdOrderService adosv = new AdOrderService();
// ac.AdUserLogIn();//管理员集成模块
// uc.userLogin();//用户集成模块
// usv.addUser();//添加用户
// usv.addMoney("test01");//交易
// System.out.println(usv.logIn());//用户登录
// adsv.findAll();//管理员查找所有商品
// adsv.findNow();//管理员查看当天 上架
// adsv.findShopByid();//管理员按照id查找商品
// adsv.findByname();//管理员按照名字查找查找商品
// adsv.addShop();//管理员添加商品
//adsv.alShop();//管理修改商品信息
// adsv.delShop();//管理员删除商品
// ssv.findAll();//用户查找所有商品
// ssv.findByname();用户按名字查找商品
// ssv.findShopByid();//用户按照id查找商品
// ssv.findNow();//用户查看今日上新
// User user=new User(1,"test", "124r", 50000);
// dc.makeDeal(user);//用户创建订单
// ods.findMyOrders("test");//用户查找订单
// ods.findMyDetail("3c1712ba-5e5a-47cb-af24-ce010ca013d0");//用户查看订单详细
// adosv.findAll();//管理员查看所有订单
// adosv.findMs();//管理员查看订单详细
// adosv.TodaySum();//管理员员查看今日交易额
}
}
配置文件properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/dbwork0828?serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
jdbc.user=root
jdbc.password=852012
jdbc.initialSize=10
jdbc.maxTotal=5
jdbc.maxIdle=5
jdbc.maxWaitMillis=5000
详细下载链接
https://download.csdn.net/download/weixin_44052919/12816695