Sockett+JDBC+IOはJavaファイルのアップロードを実現します。
このデモが実現した機能は:
1.ユーザ登録:
登録する時に二回パスワードを入力してください。二回入力が一致しないと登録に失敗します。再入力が必要です。ユーザー名が登録されている場合、ユーザー名の再入力をユーザに促す。
2.ユーザ登録:
データベースに対応するユーザ名とパスワードがあるかどうかを検証したいです。パスワードを3回間違えたら、ユーザの登録操作を終了します。
3.ファイルアップロード:
ローカルからファイルをファイルデータベースにアップロードします。
4.ファイルのダウンロード:
データベースからファイルをローカルにダウンロードします。
5.ファイル更新:
IDによってデータベースのファイル名を更新できます。
6.ファイル削除:
IDに基づいてデータベース中のファイルを削除します。
7.データベースのすべてのファイルを見ます。
8.ファイルを表示する(ユーザ名による);
9.ファイルを見る(ファイルIDによる);
コードは以下の四つの部分に分けられます。Entity、Service、Socket、Util
エンティティーには主にユーザーエンティティとファイルエンティティが格納されています。
Userクラス:
UserSevice類には、ユーザに関する登録や登録機能に関する方法が含まれています。
1.ユーザ登録:
登録する時に二回パスワードを入力してください。二回入力が一致しないと登録に失敗します。再入力が必要です。ユーザー名が登録されている場合、ユーザー名の再入力をユーザに促す。
2.ユーザ登録:
データベースに対応するユーザ名とパスワードがあるかどうかを検証したいです。パスワードを3回間違えたら、ユーザの登録操作を終了します。
3.ファイルアップロード:
ローカルからファイルをファイルデータベースにアップロードします。
4.ファイルのダウンロード:
データベースからファイルをローカルにダウンロードします。
5.ファイル更新:
IDによってデータベースのファイル名を更新できます。
6.ファイル削除:
IDに基づいてデータベース中のファイルを削除します。
7.データベースのすべてのファイルを見ます。
8.ファイルを表示する(ユーザ名による);
9.ファイルを見る(ファイルIDによる);
コードは以下の四つの部分に分けられます。Entity、Service、Socket、Util
エンティティーには主にユーザーエンティティとファイルエンティティが格納されています。
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 + "]";
}
}
サービス:ユーザーサービスとファイルサービスの種類を含む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
*/
以上は小编が绍介したSockett+JDBC+IOがJavaファイルのアップロードを実现してDEMOをダウンロードして详しく解决します。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに皆さんに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。