焦点速看:jsp实现仿QQ空间新建多个相册名称并向相册中添加照片功能

时间:2022-09-27 15:50:41       来源:互联网

工具:Eclipse,Oracle,smartupload.jar;语言:jsp,Java;数据存储:Oracle。

实现功能介绍:


(资料图)

主要是新建相册,可以建多个相册,在相册中添加多张照片,删除照片,删除相册,当相册下有照片时先删除照片才能删除相册。

因为每个相册和照片要有所属人,所以顺带有登录功能。

声明:只是后端实现代码,前台无任何样式,代码测试可行,仅供参考。

代码:

数据库连接帮助类:

public class JDBCHelper {  public static final String DRIVER = "oracle.jdbc.driver.OracleDriver";  public static final String URL = "jdbc:oracle:thin:@localhost:1521:xxxx";  public static final String DBNAME = "scott";  public static final String PASSWORD = "xxxx";  public static Connection getConn() throws Exception{  Class.forName(DRIVER);  Connection conn = DriverManager.getConnection(URL, DBNAME, PASSWORD);  return conn;  } } 

图片上传时,要修改图片名称,防止上传重名图片将上一张覆盖,这里的做法是将图片名改为由用户ID和精确到毫秒的时间组成,修改图片名的帮助类:

public class PhotoName {  private String ip;  public PhotoName(String ip) {  super();  this.ip = ip;  }  public String getIp() {  return ip;  }  public void setIp(String ip) {  this.ip = ip;  }  public String getTime(){  Date date = new Date();  DateFormat df = new SimpleDateFormat("yyyyMMddHHmmssSSS");  return df.format(date);  }  public String getPhotoName(){  return this.ip + this.getTime();  } } 

实现所有这些的接口类:

public interface UpDAO {  /**  * 创建相册名称  *  */  public int creAlbum(AlbumPOJO ap);  /**  *显示所创建的所有相册名称  */  public List<AlbumPOJO> findAllAlbum(int id);  public List<PhotoPOJO> findAllPhoto(int id);  /**  * 上传照片  */  public int upPhoto(PhotoPOJO pp);  /**  * 删除相册  * @param id 相册id  * @return  */  public int delAlbum(int id);  /**  * 删除照片  * @param id 照片id  * @return  */  public int delPhoto(int id);  /**  * 登录  * @param username  * @param password  * @return  */  public UserPOJO login(String username,String password); } 

接口的具体实现类:

public class UpDAOImpl implements UpDAO {  /* (non-Javadoc)  * @see cn.jvsun.DAO.UpDAO#creAlbum(cn.jvsun.POJO.AlbumPOJO)  * 创建相册名称  */  public int creAlbum(AlbumPOJO ap) {  int albumNum=this.getAlbumNum();  Connection conn = null;  PreparedStatement pstate = null;  try {   conn=JDBCHelper.getConn();   conn.setAutoCommit(false);   String sql="insert into album(id,a_name,user_id)values(?,?,?)";   pstate = conn.prepareStatement(sql);   pstate.setInt(1, albumNum);   pstate.setString(2,ap.getA_name());   pstate.setInt(3, ap.getUser_id());   pstate.execute();   conn.commit();  } catch (Exception e) {   e.printStackTrace();   try {   conn.rollback();//出问题就撤回,全不提交   } catch (SQLException e1) {   e1.printStackTrace();   }  }finally{   try {   pstate.close();   conn.close();   } catch (SQLException e) {   e.printStackTrace();   }  }  return albumNum;  }  /* (non-Javadoc)  * @see cn.jvsun.DAO.UpDAO#upPhoto(java.lang.String, java.lang.String, int)  * 上传照片  */  public int upPhoto(PhotoPOJO pp) {  int pNum=this.getPhotoNum();  Connection conn = null;  PreparedStatement pstate = null;  try {   conn=JDBCHelper.getConn();   conn.setAutoCommit(false);   String sql="insert into photo(id,p_name,p_url,p_albumid)values(?,?,?,?)";   pstate = conn.prepareStatement(sql);   pstate.setInt(1, pNum);   pstate.setString(2,pp.getP_name());   pstate.setString(3, pp.getP_url());   pstate.setInt(4, pp.getP_albumId());   pstate.execute();   conn.commit();  } catch (Exception e) {   e.printStackTrace();   try {   conn.rollback();//出问题就撤回,全不提交   } catch (SQLException e1) {   e1.printStackTrace();   }  }finally{   try {   pstate.close();   conn.close();   } catch (SQLException e) {   e.printStackTrace();   }  }  return pNum;  }  /* (non-Javadoc)  * @see cn.jvsun.DAO.UpDAO#delAlbum(int)  * 删除相册  */  public int delAlbum(int id) {  int result=0;  Connection conn = null;  PreparedStatement pstate = null;  String sql="delete from album where id="+id+"";  try {   conn=JDBCHelper.getConn();   pstate = conn.prepareStatement(sql);   result=pstate.executeUpdate();  } catch (SQLException e) {   e.printStackTrace();  } catch (Exception e) {   // TODO Auto-generated catch block   e.printStackTrace();  }finally{   try {   pstate.close();   conn.close();   } catch (SQLException e) {   // TODO Auto-generated catch block   e.printStackTrace();   }  }  return result;  }  /* (non-Javadoc)  * @see cn.jvsun.DAO.UpDAO#delPhoto(int)  * 删除照片  */  public int delPhoto(int id) {  int result=0;  Connection conn = null;  PreparedStatement pstate = null;  String sql="delete from photo where id="+id+"";  try {   conn=JDBCHelper.getConn();   pstate = conn.prepareStatement(sql);   result=pstate.executeUpdate();  } catch (SQLException e) {   e.printStackTrace();  } catch (Exception e) {   // TODO Auto-generated catch block   e.printStackTrace();  }finally{   try {   pstate.close();   conn.close();   } catch (SQLException e) {   // TODO Auto-generated catch block   e.printStackTrace();   }  }  return result;  }  /* (non-Javadoc)  * @see cn.jvsun.DAO.UpDAO#login(java.lang.String, java.lang.String)  * 用户登录  */  public UserPOJO login(String username, String password) {  UserPOJO user=null;  Connection conn = null;  PreparedStatement pstate = null;  ResultSet res = null;  try {   conn=JDBCHelper.getConn();   String sql="select id,username from userinfo where username=? and password=?";   pstate = conn.prepareStatement(sql);   pstate.setString(1, username);   pstate.setString(2, password);   res = pstate.executeQuery();   while(res.next()){   user=new UserPOJO(res.getInt(1),username,null);   }  } catch (Exception e) {   e.printStackTrace();  }finally{   try {   res.close();   pstate.close();   conn.close();   } catch (SQLException e) {   e.printStackTrace();   }  }  return user;  }  /**  * 相册序列号  */  public int getAlbumNum(){  int albumNum=-1;  Connection conn = null;  PreparedStatement pstate = null;  ResultSet res = null;  try {   conn=JDBCHelper.getConn();   String sql="select aid.nextval from dual";   pstate=conn.prepareStatement(sql);   res=pstate.executeQuery();   while(res.next()){   albumNum=res.getInt(1);   }  } catch (Exception e) {   e.printStackTrace();  }finally{   try {   res.close();   pstate.close();   conn.close();   } catch (SQLException e) {   e.printStackTrace();   }  }  return albumNum;  }  /**  *照片序列号  */  public int getPhotoNum(){  int photoNum=-1;  Connection conn = null;  PreparedStatement pstate = null;  ResultSet res = null;  try {   conn=JDBCHelper.getConn();   String sql="select pid.nextval from dual";   pstate=conn.prepareStatement(sql);   res=pstate.executeQuery();   while(res.next()){   photoNum=res.getInt(1);   }  } catch (Exception e) {   e.printStackTrace();  }finally{   try {   res.close();   pstate.close();   conn.close();   } catch (SQLException e) {   e.printStackTrace();   }  }  return photoNum;  }  /* (non-Javadoc)  * @see cn.jvsun.DAO.UpDAO#findAll()  * 显示所创建的相册名  */  public List<AlbumPOJO> findAllAlbum(int id) {  List<AlbumPOJO> list= new ArrayList<AlbumPOJO>();  Connection conn = null;  PreparedStatement pstate = null;  ResultSet res = null;  try {   conn=JDBCHelper.getConn();   String sql="select id,a_name,user_id from album where user_id=?";   pstate = conn.prepareStatement(sql);   pstate.setInt(1, id);   res = pstate.executeQuery();   while(res.next()){   AlbumPOJO ap=new AlbumPOJO(res.getInt(1),res.getString(2),res.getInt(3));   list.add(ap);   }  } catch (Exception e) {   e.printStackTrace();  }finally{   try {   res.close();   pstate.close();   conn.close();   } catch (SQLException e) {   e.printStackTrace();   }  }  return list;  }  /* (non-Javadoc)  * @see cn.jvsun.DAO.UpDAO#findAllPhoto(int)  * 显示照片  */  public List<PhotoPOJO> findAllPhoto(int aid) {  List<PhotoPOJO> list= new ArrayList<PhotoPOJO>();  Connection conn = null;  PreparedStatement pstate = null;  ResultSet res = null;  try {   conn=JDBCHelper.getConn();   String sql="select id,p_name,p_url from photo where P_ALBUMID=?";   pstate = conn.prepareStatement(sql);   pstate.setInt(1, aid);   res = pstate.executeQuery();   while(res.next()){   PhotoPOJO pojo=new PhotoPOJO(res.getInt(1),res.getString(2),res.getString(3), aid);   list.add(pojo);   }  } catch (Exception e) {   e.printStackTrace();  }finally{   try {   res.close();   pstate.close();   conn.close();   } catch (SQLException e) {   e.printStackTrace();   }  }  return list;  } } 

用户,相册,照片三个POJO类:

/** * 用户实体类  *  */ public class UserPOJO implements Serializable{  private static final long serialVersionUID = 7554548269035753256L;  private int id;  private String username;  private String password;  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;  }  public UserPOJO(int id, String username, String password) {  super();  this.id = id;  this.username = username;  this.password = password;  }  public UserPOJO(String username, String password) {  this.username = username;  this.password = password;  }  public UserPOJO() {  super();  // TODO Auto-generated constructor stub  } } 
/**  * 相册实体类  *  */ public class AlbumPOJO implements Serializable{  private int id;  private String a_name;  private int user_id;  public int getId() {  return id;  }  public void setId(int id) {  this.id = id;  }  public String getA_name() {  return a_name;  }  public void setA_name(String a_name) {  this.a_name = a_name;  }  public int getUser_id() {  return user_id;  }  public void setUser_id(int user_id) {  this.user_id = user_id;  }  public AlbumPOJO(int id, String a_name, int user_id) {  super();  this.id = id;  this.a_name = a_name;  this.user_id = user_id;  }  public AlbumPOJO(String a_name, int user_id) {  this.a_name = a_name;  this.user_id = user_id;  }  public AlbumPOJO() {  super();  // TODO Auto-generated constructor stub  } } 
/**  *照片实体类  *  */ public class PhotoPOJO implements Serializable{  private static final long serialVersionUID = 5937149639009957458L;  private int id;  private String p_name;  private String p_url;  private int p_albumId;  public int getId() {  return id;  }  public void setId(int id) {  this.id = id;  }  public String getP_name() {  return p_name;  }  public void setP_name(String p_name) {  this.p_name = p_name;  }  public String getP_url() {  return p_url;  }  public void setP_url(String p_url) {  this.p_url = p_url;  }  public int getP_albumId() {  return p_albumId;  }  public void setP_albumId(int p_albumId) {  this.p_albumId = p_albumId;  }  public PhotoPOJO(int id, String p_name, String p_url, int p_albumId) {  super();  this.id = id;  this.p_name = p_name;  this.p_url = p_url;  this.p_albumId = p_albumId;  }  public PhotoPOJO(String p_name, String p_url, int p_albumId) {  this.p_name = p_name;  this.p_url = p_url;  this.p_albumId = p_albumId;  }  public PhotoPOJO() {  super();  // TODO Auto-generated constructor stub  } } 

login.jsp实现登录

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="cn.jvsun.DAO.Impl.*" %> <%@ page import="cn.jvsun.POJO.*" %> <%@ page import="cn.jvsun.DAO.*" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>  <head>  <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >  <title>login</title>  </head>  <body>  <%  request.setCharacterEncoding("utf-8");  String action=request.getParameter("action");  UpDAO ud=new UpDAOImpl();  String username=request.getParameter("username");  String password=request.getParameter("password");  UserPOJO pojo=ud.login(username, password);  if("log".equals(action)){  if(pojo==null){   %>   <h1>登录失败</h1>   <%  }else{   request.getSession().setAttribute("username", username);   request.getSession().setAttribute("userid", pojo.getId());   response.sendRedirect("index.jsp");  }  }  %>  <form action="login.jsp?action=log" method="post">  <input type="text" name="username" placeholder="请输入用户名"/>  <input type="password" name="password" placeholder="请输入密码"/>  <input type="submit"/>  </form>  </body> </html> 

index.jsp实现显示相册

代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="cn.jvsun.DAO.Impl.*" %> <%@ page import="cn.jvsun.POJO.*" %> <%@ page import="cn.jvsun.DAO.*" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>  <head>  <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >  <title>person message</title>  </head>  <body>  <center>相册界面</center>  当前用户:<%=request.getSession().getAttribute("username")%> <br>  <a href="cre.jsp" rel="external nofollow" >去创建相册</a><br>  我的所有相册:<br>  <%  int userid=(Integer)request.getSession().getAttribute("userid");  UpDAO dao=new UpDAOImpl();  List<AlbumPOJO> list=dao.findAllAlbum(userid);  for(AlbumPOJO pojo:list){  %>  <tr>  <a>相册id:</a><td><%=pojo.getId() %></td>  <a>相册名称:</a><td><%=pojo.getA_name() %></td>  <a>创建者id:</a><td><%=pojo.getUser_id() %></td>  <td><a href="up.jsp?aid=<%=pojo.getId() %>" rel="external nofollow" >添加照片</a></td>  <td><a href="show.jsp?phid=<%=pojo.getId() %>" rel="external nofollow" >查看照片</a></td>  <td><a href="del.jsp?aid=<%=pojo.getId() %>" rel="external nofollow" >删除相册</a></td>  </tr><br>  <%  }  %>  </body> </html> 

cre.jsp创建相册

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="cn.jvsun.DAO.Impl.*" %> <%@ page import="cn.jvsun.POJO.*" %> <%@ page import="cn.jvsun.DAO.*" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>  <head>  <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >  <title>up photo</title>  </head>  <body>  <%  request.setCharacterEncoding("utf-8");  String action=request.getParameter("action");  UpDAO ud=new UpDAOImpl();  String toCre=request.getParameter("cre");  int userId=(Integer)request.getSession().getAttribute("userid");  if("cre".equals(action)){  AlbumPOJO ap=new AlbumPOJO(toCre,userId);  int aNum=ud.creAlbum(ap);  if(aNum!=-1){   response.sendRedirect("index.jsp");  }else{   %>   <h1>创建相册失败</h1>   <%  }  }  %>  <form action="cre.jsp?action=cre" method="post">  <input type="text" name="cre" placeholder="请输入您要创建的相册名称"/>  <input type="submit" value="确定">  </form>  </body> </html> 

up.jsp上传照片

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="cn.jvsun.DAO.Impl.*" %> <%@ page import="cn.jvsun.POJO.*" %> <%@ page import="cn.jvsun.DAO.*" %> <%@ page import="cn.jvsun.tools.*" %> <%@page import="org.lxh.smart.*" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>  <head>  <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >  <title>上传照片</title>  </head>  <body>  <%  int aid=Integer.parseInt(request.getParameter("aid"));  %>  <form action="upCheck.jsp" method="post" enctype="multipart/form-data">  <input type="hidden" name="aid" value="<%=aid %>"/>  <input type="file" name="photo"/>  <input type="submit" value="确认上传"/>  </form>  </body> </html> 

upCheck.jsp上传照片的处理页

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="cn.jvsun.DAO.Impl.*" %> <%@ page import="cn.jvsun.POJO.*" %> <%@ page import="cn.jvsun.DAO.*" %> <%@ page import="cn.jvsun.tools.*" %> <%@page import="org.lxh.smart.*" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>  <head>  <title></title>  </head>  <body>  <%  String ip = request.getRemoteAddr();  ip = ip.replaceAll(":","");  PhotoName pn=new PhotoName(ip);  String pName = pn.getPhotoName();//照片名字,是由IP加当前时间组成  SmartUpload smartupload = new SmartUpload();//实例化上传操作的对象  //初始化上传文件  smartupload.initialize(pageContext);  //准备上传  smartupload.upload();  int albumId=Integer.parseInt(smartupload.getRequest().getParameter("aid"));  //取得文件的后缀  String endName = smartupload.getFiles().getFile(0).getFileExt();  //文件保存的路径  /*String p_url = getServletContext().getRealPath("/")+    "file/"+pName+"."+endName;*/  String p_url="K:/workspace/Xiangce/WebRoot/file/"+pName+"."+endName;  //保存文件  smartupload.getFiles().getFile(0).saveAs(p_url);  UpDAO ad=new UpDAOImpl();  PhotoPOJO pojo=new PhotoPOJO(pName+"."+endName,p_url,albumId);  int photoNum=ad.upPhoto(pojo);  if(photoNum != -1){   request.getSession().setAttribute("phid", albumId);   response.sendRedirect("show.jsp");   } else {  %>  上传失败  <%   }  %>  </body> </html> 

show.jsp显示照片及信息页:

代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="cn.jvsun.DAO.Impl.*" %> <%@ page import="cn.jvsun.POJO.*" %> <%@ page import="cn.jvsun.DAO.*" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>  <head>  <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >  <title>My JSP "show.jsp" starting page</title>  </head>  <body>  <center>相册界面</center>  当前用户:<%=request.getSession().getAttribute("username")%> <br>  <%  int phid=(Integer)request.getSession().getAttribute("phid");  UpDAO dao=new UpDAOImpl();  List<PhotoPOJO> list=dao.findAllPhoto(phid);  for(PhotoPOJO pojo:list){  %>  <tr>  <a>照片id:</a><td><%=pojo.getId() %></td><br>  <a>照片名称:</a><td><%=pojo.getP_name() %></td><br>  <a>照片路径:</a><td><%=pojo.getP_url() %></td><br>  <a>照片所属相册名称:</a><td><%=pojo.getP_albumId() %></td><br>  <td><img src="<%=path%>/file/<%=pojo.getP_name() %>" width="100" height="100"/></td>  <a href="photo_del.jsp?pid=<%=pojo.getId() %>" rel="external nofollow" >删除照片:</a></td><br>  </tr><br>  <%} %>  </body> </html> 

photo_del.jsp删除照片

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="cn.jvsun.DAO.Impl.*" %> <%@ page import="cn.jvsun.POJO.*" %> <%@ page import="cn.jvsun.DAO.*" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>  <head>  <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >  <title>del</title>  </head>  <body>  <%  int pid=Integer.parseInt(request.getParameter("pid"));  int result=0;  UpDAO dao=new UpDAOImpl();  result=dao.delPhoto(pid);  if(result==1){  out.println("<script>alert("删除成功");window.location.href("show.jsp");</script>");  }else{  out.println("<script>alert("出错了");window.location.href("show.jsp");</script>");  }  %>  </body> </html> 

del.jsp删除相册

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="cn.jvsun.DAO.Impl.*" %> <%@ page import="cn.jvsun.POJO.*" %> <%@ page import="cn.jvsun.DAO.*" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>  <head>  <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >  <title>del</title>  </head>  <body>  <%  int aid=Integer.parseInt(request.getParameter("aid"));  int result=0;  UpDAO dao=new UpDAOImpl();  result=dao.delAlbum(aid);  if(result==1){  out.println("<script>alert("删除成功");window.location.href("index.jsp");</script>");  }else{  out.println("<script>alert("删除失败,请先把相册中的照片删掉");window.location.href("index.jsp");</script>");  }  %>  </body> </html> 

数据库的建表语句:

-- Create table create table USERINFO (  ID NUMBER,  USERNAME VARCHAR2(30),  PASSWORD VARCHAR2(30) ) tablespace USERS  pctfree 10  initrans 1  maxtrans 255  storage  (  initial 64  minextents 1  maxextents unlimited  ); -- Create/Recreate primary, unique and foreign key constraints alter table USERINFO  add constraint PID primary key (ID)  disable; --上传者 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- Create table create table ALBUM (  ID NUMBER not null,  A_NAME VARCHAR2(30),  USER_ID NUMBER ) tablespace USERS  pctfree 10  initrans 1  maxtrans 255  storage  (  initial 64  minextents 1  maxextents unlimited  ); -- Create/Recreate primary, unique and foreign key constraints alter table ALBUM  add constraint AL_PID primary key (ID)  using index  tablespace USERS  pctfree 10  initrans 2  maxtrans 255  storage  (  initial 64K  minextents 1  maxextents unlimited  ); alter table ALBUM  add constraint USERID foreign key (USER_ID)  references USERINFO (ID)  disable; --相册表 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- Create table create table PHOTO (  ID NUMBER,  P_NAME VARCHAR2(30),  P_URL VARCHAR2(50),  P_ALBUMID NUMBER(30) ) tablespace USERS  pctfree 10  initrans 1  maxtrans 255  storage  (  initial 64  minextents 1  maxextents unlimited  ); -- Create/Recreate primary, unique and foreign key constraints alter table PHOTO  add constraint ALB_ID foreign key (P_ALBUMID)  references ALBUM (ID); --相片表 

好了,所有代码就写完了,切记,需要smartupload.jar包,没有的童鞋可以去下载:

smartuploadjar包

以上所述是小编给大家介绍的jsp实现仿QQ空间新建多个相册名称并向相册中添加照片功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

关键词: jsp仿qq空间新建相册 jsp新建相册