📄 bookmark.java
字号:
/**
*
* Bookmark.java
*
*/
import java.io.*;
import java.sql.*;
/*
@author Liyan
*/
public class Bookmark
{
//书签基本信息:
String sUserName,sName,sAttrib,sContent,sAddition;
int nBookmarkID,nParentID;
//数据库要用到的变量:
String sSql,sQuery="";
SingleTemplate cardTemplate;
DBOperater DB;
ResultSet rs;
//构造函数:
Bookmark()
{
sUserName="";
nBookmarkID=0;
sName="";
sAttrib="";
nParentID=0;
sContent="";
sAddition="";
sSql="";
sQuery="";
}
//清空所有变量:
public void clear()
{
sUserName="";
nBookmarkID=0;
sName="";
sAttrib="";
nParentID=0;
sContent="";
sAddition="";
sSql="";
sQuery="";
if(DB!=null)
DB.close();
}
//设置书签值
public void setValues ( String tmpUserName,
int tmpBookmarkID,
String tmpName,
String tmpAttrib,
int tmpParentID,
String tmpContent,
String tmpAddition)
{
sUserName=tmpUserName.trim();
nBookmarkID=tmpBookmarkID;
sName=tmpName.trim();
sAttrib=tmpAttrib.trim();
nParentID=tmpParentID;
sContent=tmpContent.trim();
sAddition=tmpAddition.trim();
}
//书签信息,单值设置:
public void setUserName(String tmpUserName) {sUserName=tmpUserName;}
public void setBookmarkId(int tmpBookmarkID) {nBookmarkID=tmpBookmarkID;}
public void setName(String tmpName) {sName=tmpName;}
public void setAttrib(String tmpAttrib) {sAttrib=tmpAttrib;}
public void setParentID(int tmpParentID){nParentID=tmpParentID;}
public void setContent(String tmpContent){sContent=tmpContent;}
public void setAddition(String tmpAddition){sAddition=tmpAddition;}
//书签信息,单值取出:
public String getUserName() {return sUserName;}
public int getBookmarkId() {return nBookmarkID;}
public String getName() {return sName;}
public String getAttrib() {return sAttrib;}
public int getParentID(){return nParentID;}
public String getContent(){return sContent;}
public String getAddition(){return sAddition;}
//查询设置:
public void setQuery(String qType,String qValue)
{
sQuery+=" and " + qType.trim() + " like '" + qValue.trim() + "'";
}
//执行数据库操作:
public boolean query(String user)
{
DB = new DBOperater("Bookmark");
sSql = "select username,bookmarkID,Name,Attrib,parentID,Content,addition from Bookmark where UserName='" + user + "' ";
sSql+=sQuery+"order by attrib";
rs = DB.executeQuery(sSql);
return true;
}
public boolean read()
{
if(rs==null){
DB.close();
return false;
}
try
{
if(!rs.next())
{ // 记录已空
DB.close();
return false;
}
//"UserName"
sUserName=rs.getString(1);
//"BookmarkID"
nBookmarkID=rs.getInt(2);
//"Name"
sName=rs.getString(3);
//"Attrib"
sAttrib=rs.getString(4);
//"ParentID"
nParentID=rs.getInt(5);
//"Content"
sContent=rs.getString(6);
//"Addition"
sAddition=rs.getString(7);
} catch(Exception ex) {
System.err.println("Get Bookmark Exception: " + ex.toString());
DB.close();
return false;
}
return true;
}
//移动Bookmark
public boolean move(String sUserName,String sFrom,String sTo)
{
//判断是否可以移动;
//不能移动的目录:
//自身
//找出目的目录的所有支系父目录:
//设目录深度不大于20:nDepth
int i,nTmp,nDepth=20;
int[] nParent = new int[nDepth];
nTmp=CommonMethods.GetInt(sTo,10);
nParent[0]=nTmp;
for (i=1;i<nDepth;i++) {
DB = new DBOperater("Bookmark");
rs=DB.executeQuery("Select ParentID From Bookmark Where UserName='"+sUserName+"' and BookmarkID='"+nTmp+"'");
if(rs==null){
DB.close();
return false;
}
try {
if(rs.next())
//"ParentID"
nTmp=rs.getInt(1);
//if(i==9) break;
nParent[i]=nTmp;
if (nTmp==0) break;
}
catch (Exception ex) {
System.err.println("Exception: " + ex.toString());
DB.close();
return false;
}
DB.close();
}
//如果sSource不是sDest的父目录,把sSourse的ParentId置成sDest
for(int j=0;j<i;j++) {
if (sFrom.compareTo(""+nParent[j])==0) {
return false;
}
}
//重名的处理:
DB = new DBOperater("Bookmark");
sSql="SELECT name FROM Bookmark WHERE parentid = "+sTo+" AND BookmarkID <> "+sFrom;
sSql+=" AND username ='"+sUserName+"' AND name =";
sSql+="(SELECT name FROM bookmark WHERE BookmarkID = "+sFrom+" AND username = '"+sUserName+"')";
rs=DB.executeQuery(sSql);
if(rs==null){
DB.close();
return false;
}
try{
if(rs.next())
{
//"name"
sName=rs.getString(1)+sFrom;
}
}
catch (Exception ex) {
System.err.println("Exception: " + ex.toString());
DB.close();
return false;
}
DB.close();
//移动:
String sMove;
if(sName.compareTo("")==0){
sMove="UPDATE Bookmark SET parentid ="+sTo+" WHERE username = '";
sMove+=sUserName+"' AND bookmarkid ="+sFrom;
}else{
sMove="UPDATE Bookmark SET name='"+sName+"',parentid ="+sTo+" WHERE username = '";
sMove+=sUserName+"' AND bookmarkid ="+sFrom;
}
DB = new DBOperater("Bookmark");
DB.executeUpdate(sMove);
DB.close();
return true;
}
//书签存储:
public boolean save()
{
if (sName.compareTo("")==0||sName.indexOf("'")!=-1)
return false;
if (sContent.indexOf("'")!=-1)
return false;
if (nBookmarkID==0)//新书签入库:
{
//寻找最大BookmarkID
DB = new DBOperater("Bookmark");
rs=DB.executeQuery("Select BookmarkID From Bookmark Where UserName='"+sUserName+"' order by BookmarkID Desc");
if(rs==null){
DB.close();
return false;
}
try
{
if (rs.next())
//"ParentID"
nBookmarkID=rs.getInt(1);
nBookmarkID++;
} catch(Exception ex) {
System.err.println("Exception: " + ex.toString());
}
DB.close();
//重名的避免:
DB = new DBOperater("Bookmark");
rs=DB.executeQuery("Select Name From Bookmark Where UserName='"+sUserName+"' AND Name='"+sName+"' AND ParentID="+nParentID);
if(rs==null){
DB.close();
return false;
}
try
{
if (rs.next())
//"Name"
sName=rs.getString(1)+nBookmarkID;
} catch(Exception ex) {
System.err.println("Exception: " + ex.toString());
}
DB.close();
//添加:
sSql="INSERT INTO Bookmark (username,bookmarkid,name,attrib,parentid,content,addition)";
sSql+="VALUES ('"+sUserName+"',"+nBookmarkID+",'"+sName+"','"+sAttrib+"',"+nParentID+",'";
sSql+=sContent+"','"+sAddition+"')";
} else {
//重名的避免:
DB = new DBOperater("Bookmark");
rs=DB.executeQuery("Select Name From Bookmark Where UserName='"+sUserName+"' AND Name='"+sName+"' AND ParentID="+nParentID+" AND BookmarkID<>"+nBookmarkID);
if(rs==null){
DB.close();
return false;
}
try
{
if (rs.next())
//"Name"
sName=rs.getString(1)+nBookmarkID;
} catch(Exception ex) {
System.err.println("Exception: " + ex.toString());
}
DB.close();
//更新数据库:
sSql="update Bookmark set Name='"+sName+"',Attrib='"+sAttrib+"',ParentID="+nParentID;
sSql+=",Content='"+sContent+"',Addition='"+sAddition+"'";
sSql+="where bookmarkid="+ nBookmarkID + " and username='"+sUserName+"'";
}
//数据库中的操作:
DB = new DBOperater("Bookmark");
DB.executeUpdate(sSql);
DB.close();
return true;
}
//书签或目录的删除:
public boolean delete(String user,int Id)
{
if(Id==0)
return false;
DBOperater DB2 = new DBOperater("Bookmark");
try
{
String sSql2="Select BookmarkID From Bookmark where username='"+user;
sSql2+="' and ParentID="+Id;
ResultSet rs2=DB2.executeQuery(sSql2);
int nDelID;
if(rs2==null) {
DB2.close();
return false;
}
while (rs2.next()) {
//"ParentID"
nDelID=rs2.getInt(1);
if(nDelID!=0)
delete(user,nDelID);
}
}catch(Exception ex) {
System.err.println("Exception: " + ex.toString());
DB2.close();
return false;
}
DB2.close();
DB = new DBOperater("Bookmark");
sSql="Delete From Bookmark Where UserName='" + user + "' AND Bookmarkid=" + Id;
DB.executeUpdate(sSql);
DB.close();
return true;
}
//显示文件夹中的内容:
public boolean showFolder(String user,int Id,int nLayer,String sName,HtmlOut out)
{
DBOperater DB2 = new DBOperater("Bookmark");
try
{
String sSql2="Select BookmarkID,Name From Bookmark where username='"+user;
sSql2+="' and ParentID="+Id +"and attrib='folder'";
ResultSet rs2=DB2.executeQuery(sSql2);
int nShowID;
String sTree="";
for (int i=0;i<nLayer;i++)
sTree+=" ";
out.addString(sTree+"<img src=/img/folder.gif> <input type=radio name=dest value="+Id+">"+sName+"<br>");
if(rs2==null){
DB2.close();
return false;
}
while (rs2.next()) {
//"BookmarkID"
nShowID=rs2.getInt(1);
//"Name"
sName=rs2.getString(2);
showFolder(user,nShowID,nLayer+1,sName,out);
}
}catch(Exception ex) {
System.err.println("Exception: " + ex.getMessage());
DB2.close();
return false;
}
DB2.close();
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -