该demo实现的功能有:

1.用户注册:
注册时输入两次密码,若两次输入不一致,则注册失败,需要重新输入。若用户名被注册过,则提示用户重新输入用户名;
2.用户登录:
需要验证数据库中是否有对应的用户名和密码,若密码输错三次,则终止用户的登录操作;
3.文件上传:
从本地上传文件到文件数据库中
4.文件下载:
从数据库中下载文件到本地
5.文件更新:
根据id可更新数据库中的文件名
6.文件删除:
根据id删除数据库中某一个文件
7.看数据库所有文件;
8.查看文件(根据用户名);
9.查看文件(根据文件id);
代码分为如下四个部分:Entity,Service,Socket,Util
实体包Entity中主要存放用户实体和文件实体
User类:
package Entity;
import java.io.Serializable;
/**
* 用户类
* @author Administrator
*
*/
public class User implements Serializable{
//属性
private int id;
private String username;
private String password;
//方法
//构造方法
public User(){
super();
}
public User(String username, String password) {
super();
this.username = username;
this.password = password;
}
//Getter,Setter方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
文件类:
package Entity;
import java.io.Serializable;
import java.util.Arrays;
/**
* 文件实体类
* @author Administrator
*
*/
public class FileEntity implements Serializable {
//属性
private int fid;
private String username;// 用户名,方便查看某个用户上传的文件
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
private String fname;
private byte[] fcontent;
//方法
//构造方法
public FileEntity(){
super();
}
public FileEntity(String username,String fname, byte[] fcontent) {
super();
this.username=username;
this.fname = fname;
this.fcontent = fcontent;
}
//Getter,Setter方法
public int getFid() {
return fid;
}
public void setFid(int fid) {
this.fid = fid;
}
public String getFname() {
return fname;
}
public void setFname(String fname) {
this.fname = fname;
}
public byte[] getFcontent() {
return fcontent;
}
public void setFcontent(byte[] fcontent) {
this.fcontent = fcontent;
}
@Override
public String toString() {
return "FileEntity [fid=" + fid + ", username=" + username + ", fname="
+ fname + "]";
}
}
Service包:包括用户服务类和文件服务类
UserSevice类包括了与用户相关的注册和登录功能相关的方法
package Service;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import Util.DBUtil;
import Entity.User;
public class UserService {
private Connection conn=null;
private PreparedStatement pstmt=null;
private ResultSet rs=null;
/**
* 登陆
*/
public boolean login(User user){
String sql="select * from tb_user where username=? and password=?";
try{
conn=DBUtil.getConnection();
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
rs=pstmt.executeQuery();
if(rs.next()){
return true;
}
}catch(SQLException e){
e.printStackTrace();
}finally{
DBUtil.CloseAll(rs, pstmt, conn);
}
return false;
}
/**
* 注册
*/
public void register(User user){
String sql="insert into tb_user(username,password)value(?,?)";
try {
conn=DBUtil.getConnection();
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBUtil.CloseAll(rs, pstmt, conn);
}
}
/**
* 查找tb_user,查看用户是否已经注册过
*/
public boolean queryByUsername(String username){
conn=DBUtil.getConnection();
String sql="select * from tb_user where username=?";
try {
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, username);
rs=pstmt.executeQuery();
if(rs.next()){
//说明已经被注册过,要求重新填写用户名
return true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
}
文件服务类:
package Service;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import Entity.FileEntity;
import Util.DBUtil;
public class FileService {
private Connection conn=null;
private PreparedStatement pstmt=null;
private ResultSet rs=null;
/**
* 保存文件到数据库,类似用户的注册功能
* @param fileEntity
*/
以上所述是小编给大家介绍的Socket+JDBC+IO实现Java文件上传下载器DEMO详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# socket
# jdbc
# io
# java
# 文件上传下载器
# Java 基于TCP Socket 实现文件上传
# Java中用Socket实现HTTP文件上传实例
# Java Socket+mysql实现简易文件上传器的代码
# JavaWeb实现文件上传下载功能实例解析
# JAVA中使用FTPClient实现文件上传下载实例代码
# java实现FTP文件上传与文件下载
# JavaWeb实现文件上传下载功能实例详解
# java web图片上传和文件上传实例
# Java实现文件上传至服务器的方法
# java使用Socket实现文件上传功能
# 数据库中
# 两次
# 小编
# 文件上传
# 重新输入
# 在此
# 给大家
# 用户登录
# 所述
# 用户注册
# 给我留言
# 感谢大家
# 上传文件
# 疑问请
# 有任何
# 下载器
# 保存文件
# 上传
# 实体类
# username
相关文章:
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
建站主机选购指南:核心配置优化与品牌推荐方案
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
Android自定义listview布局实现上拉加载下拉刷新功能
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
网站微信制作软件,如何制作微信链接?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
代刷网站制作软件,别人代刷火车票靠谱吗?
C++中引用和指针有什么区别?(代码说明)
建站之星后台密码遗忘或太弱?如何重置与强化?
C++时间戳转换成日期时间的步骤和示例代码
装修招标网站设计制作流程,装修招标流程?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
制作门户网站的参考文献在哪,小说网站怎么建立?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
如何通过WDCP绑定主域名及创建子域名站点?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
平台云上自主建站:模板化设计与智能工具打造高效网站
如何规划企业建站流程的关键步骤?
建站VPS能否同时实现高效与安全翻墙?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
黑客入侵网站服务器的常见手法有哪些?
头像制作网站在线制作软件,dw网页背景图像怎么设置?
如何在万网自助建站平台快速创建网站?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
建站之星好吗?新手能否轻松上手建站?
Swift中循环语句中的转移语句 break 和 continue
微信小程序 五星评分(包括半颗星评分)实例代码
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
建站主机如何选?高性价比方案全解析
如何快速使用云服务器搭建个人网站?
如何高效搭建专业期货交易平台网站?
网站制作软件有哪些,制图软件有哪些?
网站制作壁纸教程视频,电脑壁纸网站?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
如何在服务器上三步完成建站并提升流量?
高防服务器:AI智能防御DDoS攻击与数据安全保障
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
如何用VPS主机快速搭建个人网站?
如何选择建站程序?包含哪些必备功能与类型?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何在企业微信快速生成手机电脑官网?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
如何快速搭建高效香港服务器网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。