zoukankan      html  css  js  c++  java
  • jsp实现仿QQ空间新建多个相冊名称,向相冊中加入照片

    工具: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%>"> 
        <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%>">
        <title>person message</title>
      </head>
      
      <body>
        <center>相冊界面</center>
       	 当前用户:<%=request.getSession().getAttribute("username")%> <br>
        <a href="cre.jsp">去创建相冊</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() %>">加入照片</a></td>
      	<td><a href="show.jsp?phid=<%=pojo.getId() %>">查看照片</a></td>
      	<td><a href="del.jsp?aid=<%=pojo.getId() %>">删除相冊</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%>">
        <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%>">
        <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%>">
        <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() %>">删除照片:</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%>">
        
        <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%>">
        
        <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包,没有的童鞋能够去下载:http://download.csdn.net/detail/weixin_36380516/9807953

    不积硅步无以至千里。努力。





  • 相关阅读:
    osgearth 编译日志
    osg Error osgearth_viewerd fails with "Loaded scene graph does not contain a MapNode
    多自由度机械臂模拟-吊绳伸缩
    多自由度机械臂模拟7
    osgViewer
    多自由度机械臂模拟6
    多自由度机械臂模拟5
    多自由度机械臂模拟4
    多自由度机械臂模拟3
    多自由度机械臂模拟2
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7289710.html
Copyright © 2011-2022 走看看