大学课程设计:邮件系统
空闲时间接单代做的,一个java黑框配合交互数据库的程序。
现在看来算是个简易的jdbc工具,代码丢失了很多,不过最核心的还在。就是下面这个DBConnection,写个简单的方法调用这个就可以了。方法的作用注释上都写了。
没什么太大技术含量,不过已经满足课设的需求了、包括了一个自己写的jdbc连接工具和封装了一些访问数据库的基本方法。mysql版本当时是5.5,所以驱动是com.mysql.jdbc.Driver。实现了对邮件订单的增删改查,有基础的用户区分,登录注册功能等。
DBConnection:
public class DBConnection
{
private String user = "root";
private String pwd = "";
private String url = "jdbc:mysql://localhost:3306/db20201111?characterEncoding=UTF-8";
private Connection conn=null;
static {
try {
Class.forName("com.mysql.jdbc.Driver");
//类加载 加载数据库驱动
}catch(ClassNotFoundException e)
{
e.printStackTrace();
}
}
public DBConnection()
{
try {
this.conn=DriverManager.getConnection(url, user, pwd);
}catch(SQLException e)
{
e.printStackTrace();
}
}
/*
insert, update ,delete
参数 : sql语句 占位符参数数组
sql语句就是操作数据库的命令
*/
// select * from mission where missionNum = ? , date = 2 , location = 3 ;
//params [] = { 1 ,2 , 3};
public int executeUpdate( String sql,Object[] params )
{
PreparedStatement pstmt = null;
//mysql给出的处理sql语句的接口
//具有预处理功能
try{
pstmt=this.conn.prepareStatement(sql);
if(params!=null)
for(int i=0;i<params.length;i++)
pstmt.setObject(i+1, params[i]);
// setObject( k , v ) ;
return pstmt.executeUpdate();
}catch(Exception e)
{
e.printStackTrace();
}finally
{
try {
if(pstmt!=null) pstmt.close();
//使用完成后关闭preparedstatement
}catch(Exception e)
{
e.printStackTrace();
}
}
return 0;
}
//select
//使用动态数组来接收结果
public ArrayList<Object[]> executeQuery(String sql, Object[] params)
{
PreparedStatement stmt=null;
ResultSet rs=null;
ArrayList<Object[]> result=new ArrayList<Object[]>();
try{
stmt=this.conn.prepareStatement(sql);
if(params!=null)
for(int i=0;i<params.length;i++)
stmt.setObject(i+1, params[i]);
//占位符填充
rs=stmt.executeQuery();
int cols = rs.getMetaData().getColumnCount();
//对应的每一组数据的列数
while( rs.next() ) // 判断下一跳是否有数据
{
Object[] t=new Object[cols];
for(int i=0;i<cols;i++)
t[i]=rs.getObject(i+1);
/*
填充object【】 起始下标是1
集合的每个元素都是一个object【】
每个object【】对应的是一列数据 cols个一列
*/
result.add(t);
}
}catch(Exception e)
{
e.printStackTrace();
}finally
{
try {
if(rs!=null) rs.close();
if(stmt!=null) stmt.close();
//关闭输入输出流
}catch(Exception e)
{
e.printStackTrace();
}
}
return result;
}
}
POJO类:略