📄 attachment.java
字号:
package cn.js.fan.module.cms;
import java.io.File;
import java.sql.*;
import cn.js.fan.db.Conn;
import cn.js.fan.web.Global;
import org.apache.log4j.Logger;
import cn.js.fan.util.StrUtil;
public class Attachment implements java.io.Serializable {
int id;
int docId;
String name;
String fullPath;
String diskName;
String visualPath;
String connname;
String LOAD = "SELECT doc_id, name, fullpath, diskname, visualpath, orders, page_num,downloadCount FROM document_attach WHERE id=?";
String SAVE = "update document_attach set doc_id=?, name=?, fullpath=?, diskname=?, visualpath=?, orders=?, page_num=?,downloadCount=? WHERE id=?";
Logger logger = Logger.getLogger(Attachment.class.getName());
public Attachment(int id) {
connname = Global.defaultDB;
if (connname.equals(""))
logger.info("Attachment:DB is empty!");
this.id = id;
loadFromDb();
}
public Attachment(int orders, int docId, int pageNum) {
connname = Global.defaultDB;
if (connname.equals(""))
logger.info("Attachment:DB is empty!");
this.orders = orders;
this.docId = docId;
this.pageNum = pageNum;
loadFromDbByOrders();
}
public boolean del() {
String sql = "delete from document_attach where id=?";
Conn conn = new Conn(connname);
boolean re = false;
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
re = conn.executePreUpdate()==1?true:false;
pstmt.close();
// 更新其后的附件的orders
sql = "update document_attach set orders=orders-1 where doc_id=? and page_num=? and orders>?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, docId);
pstmt.setInt(2, pageNum);
pstmt.setInt(3, orders);
conn.executePreUpdate();
}
catch (SQLException e) {
logger.error("del:" + e.getMessage());
return false;
}
finally {
if (conn!=null) {
conn.close(); conn = null;
}
}
// 删除文件
File fl = new File(this.fullPath);
fl.delete();
return re;
}
public boolean save() {
Conn conn = new Conn(connname);
boolean re = false;
try {
PreparedStatement pstmt = conn.prepareStatement(SAVE);
pstmt.setInt(1, docId);
pstmt.setString(2, name);
pstmt.setString(3, fullPath);
pstmt.setString(4, diskName);
pstmt.setString(5, visualPath);
pstmt.setInt(6, orders);
pstmt.setInt(7, pageNum);
pstmt.setInt(8, downloadCount);
pstmt.setInt(9, id);
re = conn.executePreUpdate()==1?true:false;
}
catch (SQLException e) {
logger.error("save:" + e.getMessage());
}
finally {
if (conn!=null) {
conn.close(); conn = null;
}
DocCacheMgr dcm = new DocCacheMgr();
dcm.refreshUpdate(docId);
}
return re;
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public int getDocId() {
return this.docId;
}
public void setDocId(int di) {
this.docId = di;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getDiskName() {
return this.diskName;
}
public void setDiskName(String dn) {
this.diskName = dn;
}
public String getFullPath() {
return this.fullPath;
}
public void setFullPath(String f) {
this.fullPath = f;
}
public String getVisualPath() {
return this.visualPath;
}
public int getOrders() {
return orders;
}
public int getPageNum() {
return pageNum;
}
public boolean isLoaded() {
return loaded;
}
public int getDownloadCount() {
return downloadCount;
}
public void setVisualPath(String vp) {
this.visualPath = vp;
}
public void setOrders(int orders) {
this.orders = orders;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public void setLoaded(boolean loaded) {
this.loaded = loaded;
}
public void setDownloadCount(int downloadCount) {
this.downloadCount = downloadCount;
}
public void loadFromDb() {
Conn conn = new Conn(connname);
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = conn.prepareStatement(LOAD);
pstmt.setInt(1, id);
rs = conn.executePreQuery();
if (rs != null && rs.next()) {
docId = rs.getInt(1);
name = rs.getString(2);
fullPath = rs.getString(3);
diskName = rs.getString(4);
visualPath = rs.getString(5);
orders = rs.getInt(6);
pageNum = rs.getInt(7);
downloadCount = rs.getInt(8);
loaded = true;
}
} catch (SQLException e) {
logger.error(e.getMessage());
} finally {
if (rs != null) {
try {
rs.close();
} catch (Exception e) {}
rs = null;
}
if (conn != null) {
conn.close();
conn = null;
}
}
}
public void loadFromDbByOrders() {
Conn conn = new Conn(connname);
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
String LOADBYORDERS = "SELECT id, name, fullpath, diskname, visualpath, downloadCount FROM document_attach WHERE orders=? and doc_id=? and page_num=?";
pstmt = conn.prepareStatement(LOADBYORDERS);
pstmt.setInt(1, orders);
pstmt.setInt(2, docId);
pstmt.setInt(3, pageNum);
rs = conn.executePreQuery();
if (rs != null && rs.next()) {
id = rs.getInt(1);
name = rs.getString(2);
fullPath = rs.getString(3);
diskName = rs.getString(4);
visualPath = rs.getString(5);
downloadCount = rs.getInt(6);
loaded = true;
}
} catch (SQLException e) {
logger.error(e.getMessage());
} finally {
if (rs != null) {
try {
rs.close();
} catch (Exception e) {}
rs = null;
}
if (conn != null) {
conn.close();
conn = null;
}
}
}
public String getFileExt() {
return StrUtil.getFileExt(getDiskName());
}
private int orders = 0;
private int pageNum;
private boolean loaded = false;
private int downloadCount = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -