⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bookmark.java

📁 JAVA邮件系统
💻 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+="&nbsp;&nbsp;";
			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 + -