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,所以这里也跟着改一下,只输出一列

      

  • 相关阅读:
    打开项目遇到Unknown Android Packaging Problem问题
    C# 水波效果
    Adding controls to ToolStrip in C#
    C# 水波效果
    【转】U盘启动奶瓶破解无线WPA加密
    如何破解ROS路由器禁用路由PPPOE拨号?
    打开项目遇到Unknown Android Packaging Problem问题
    各版本.NET委托的写法回顾
    Oracle起动库时1102报错处置
    Windows环境中Kill失落Oracle线程
  • 原文地址:https://www.cnblogs.com/zxysmalleyes/p/4657802.html
Copyright © 2011-2022 走看看