• 后端开发日志(二):商品信息输出


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

    说正题之前先说一下别的。注册部分有一些修改,用户名不能为空、不能与数据库里已有的重复、必须要是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,所以这里也跟着改一下,只输出一列

      

  • 相关阅读:
    Java8 Stream Function
    PLINQ (C#/.Net 4.5.1) vs Stream (JDK/Java 8) Performance
    罗素 尊重 《事实》
    小品 《研发的一天》
    Java8 λ表达式 stream group by max then Option then PlainObject
    这人好像一条狗啊。什么是共识?
    TOGAF TheOpenGroup引领开发厂商中立的开放技术标准和认证
    OpenMP vs. MPI
    BPMN2 online draw tools 在线作图工具
    DecisionCamp 2019, Decision Manager, AI, and the Future
  • 原文地址:https://www.cnblogs.com/zxysmalleyes/p/4657802.html
Copyright © 2020-2023  润新知