zoukankan      html  css  js  c++  java
  • 后端开发日志(二):商品信息输出

    在学校奋斗了两周,目前能够实现的功能有登录、注册、查看商品信息、按关键字查询商品、下单、按用户名查询订单这几个。暑假要继续把这些功能做得更友好,还要加上购物车,任重而道远……

    说正题之前先说一下别的。注册部分有一些修改,用户名不能为空、不能与数据库里已有的重复、必须要是3-8位的字母。这个方法存在与用户有关的实现类里,代码如下:

    	public int addUser(User user) throws Exception {
    		int flag = 1;
    		String sql = "select * from userinfo where username=?";
    		String sqlAdd="insert into javawebdb.userinfo values(?,?)";
    		PreparedStatement pstmt = null;
    		DBConnect dbc = null;
    		//DBConnect是专门用来连接数据库的类
    		try{
    			//连接数据库
    			dbc = new DBConnect();
    			pstmt = dbc.getConnection().prepareStatement(sql);
    			pstmt.setString(1,user.getUsername());
    			//查询用户名
    			ResultSet rs = pstmt.executeQuery();
    			
    			//make the query info to person
    			if(rs.next()) {
    				if(rs.getString("username").equals(user.getUsername())) {
    					flag = 0;
                           //不能重复
    				}				
    			}
    			if (user.getUsername() == null || user.getUsername().trim().equals("")) {
    				flag = 0;
                      //不能为空 } if (!user.getUsername().matches("[a-zA-Z]{3,8}")) { flag = 0;                   //必须是3-8位字母 } if(flag == 1){ pstmt = dbc.getConnection().prepareStatement(sqlAdd); pstmt.setString(1,user.getUsername()); pstmt.setString(2,user.getPassword()); pstmt.executeUpdate(); //在数据库中写入新用户信息 } rs.close(); pstmt.close(); } catch (SQLException e) { System.out.println(e.getMessage()); } finally { //close DB dbc.close(); } return flag; }

      商品信息输出也是基于数据库的操作,在表格里按照一定顺序输出数据库里的所有元组就行,不过老师要求最终要在html上实现,我还要去自学JS和Ajax才行,现在知识储备不够,只能把结果显示到jsp页面,伤心=。=

      千万不要把数据库的相关操作直接写到jsp文件里面!

      千万不要把数据库的相关操作直接写到jsp文件里面!

      千万不要把数据库的相关操作直接写到jsp文件里面!

      重要的事情说三遍。

      这是后台实现类里的方法:

    	public ArrayList showProduct() throws Exception{
    		String sql = "select * from productinfo";
    		PreparedStatement pstmt = null;
    		DBConnect dbc = null;
    		ArrayList arraylist = new ArrayList();		
    		try
    		{
    			dbc = new DBConnect();
    			pstmt = dbc.getConnection().prepareStatement(sql);
    			ResultSet rs = pstmt.executeQuery();	      
    			while(rs.next())
    			{
    			        Product pro=new Product();
    			        pro.setId(rs.getInt(1));
    			        arraylist.add(0,pro.getId());
                      //实际写的时候,product里面有很多属性,这里只举其中一个例子,产品编号			        
    				        
    			 }
    			 rs.close();
    		}
    		catch(Exception ee)
    		{
    			ee.printStackTrace();
    		}
    		 finally {
    				dbc.close();
    		}		
    		return arraylist;
              //注意返回值的类型
    	}	   
    

      之前试过在arraylist里面直接存对象,但是到了前台输出就变成地址了,很神烦,然而并不会解决,于是就用这种存取String的粗暴方法了。求指教啊求指教……

      jsp里只列一下java代码:

      List list = (ArrayList)session.getAttribute("list"); //调取传过来的arraylist

      for(int i=list.size()-1;i>=0;i=i--) {

        out.print(list.get(i));

      }//上面的方法里我只存了产品id,所以这里也跟着改一下,只输出一列

      

  • 相关阅读:
    Kubernetes 集成研发笔记
    Rust 1.44.0 发布
    Rust 1.43.0 发布
    PAT 甲级 1108 Finding Average (20分)
    PAT 甲级 1107 Social Clusters (30分)(并查集)
    PAT 甲级 1106 Lowest Price in Supply Chain (25分) (bfs)
    PAT 甲级 1105 Spiral Matrix (25分)(螺旋矩阵,简单模拟)
    PAT 甲级 1104 Sum of Number Segments (20分)(有坑,int *int 可能会溢出)
    java 多线程 26 : 线程池
    OpenCV_Python —— (4)形态学操作
  • 原文地址:https://www.cnblogs.com/zxysmalleyes/p/4657802.html
Copyright © 2011-2022 走看看