全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Socket+JDBC+IO实现Java文件上传下载器DEMO详解

该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小时内与您取得联系。