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

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

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

  

时间: 2024-08-10 19:18:55

后端开发日志(二):商品信息输出的相关文章

仿酷狗音乐播放器开发日志二十一 开发动态调色板控件(附源代码)

转载请说明原出处,谢谢~~ 上一篇仿酷狗日志结束后,整个换肤功能就仅仅剩下调色板功能没有做了.我本以为会非常easy.可是研究了酷狗的调色板功能后发现不是那么简单的事情.首先看一下酷狗的调色板的样子: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1aG9uZ3NodQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" > waterm

团队开发日志二

##日志二 ****作者:姜娇英 周佩 时间:2017-1-2 ***** 2 梯形插值数学模型建立和公式推导 * 上次对题目和模型的理解有偏差,这次进行了一些修正. * 原题对轨迹的规划是一个多解问题,为了简化问题,加快项目进程,暂时默认加速度=减速度=最大允许加速度. * 将对加速度的优化选择作为进阶要求. * 暂不考虑其他导致轨迹规划无法进行的特殊情况.******* 3 编程实现及编译通过 * 根据2中的条件,结合理解本项目小组PM之前的轨迹生成器练习程序,提交并编译通过了初始版本代码.

Servlet作业2-将表单提交的商品信息输出到页面中

1,表单页面 shangpin.html 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>商品信息</title> 6 </head> 7 <body> 8 9 商品信息<br> 10 11 <form action="Shp" method="post

仿酷狗音乐播放器开发日志二十四 选项设置窗体的实现(附328行xml布局源码)

转载请说明原出处,谢谢~~ 花了两天时间把仿酷狗的选项设置窗体做出来了,当然了只是做了外观.现在开学了,写代码的时间减少,所以整个仿酷狗的工程开发速度减慢了.今天把仿酷狗的选项设置窗体的布局代码分享出来,给学习duilib布局的朋友做个demo.现在编写的仿酷狗选项设置窗体和原酷狗的窗体不细看几乎看不出差别,控件的布局位置和原酷狗最多只有几个像素的位置差别. 先来看一下原酷狗的选项设置窗体的其中一个页面: 如果还不太会布局的朋友可以先看我前些日子写的关于duilib布局的博客<duilib各种布

后端开发日志(一):用户注册

大致要求是做一个台灯项目,三个专业各有分工,我们被派去做一个在线购物网站.组内本专业一共三名同学,都是妹子……看到这个情况我的直觉就是“糟糕,要去做后台开发了”……预感没错,果然是这个样子. 7月7.8两天,老师讲了一个简单的JavaWeb例子:用户登录.数据库里存有username和password,匹配成功之后才可以登录,跳转到欢迎界面,显示用户名. 架构如下: |-jspServlet |-src |-jspservlet.dao//存放接口 UserDAO.java |-jspservl

Kinect For Windows V2开发日志二:Kinect V2的基本参数

以下内容节选自Heresy的博客: 彩色影像:1920 x 1080 @ 30 / 15 FPS(根据环境亮度) 深度影像:512 x 424 @ 30 FPS.16bit 距离值(mm).可侦测范围0.5 ~ 8 M 红外线影像:512 x 424 @ 30 FPS.16bit 强度值 声音资讯 根据上面的原始资料,则可以再透过软体,进行人体的追踪.骨架的辨识(0.5 ~ 4.5 M).在K4Wv2 下,最多六个人.每个人25 个关节点(右图),其中每个关节点都可以取得空间中的位置.以及方向性

pilipili在线视频网站开发日志(二)

今天在进行文件上传逻辑的编写 在jsp页面加上了enctype="multipart/form-data" 1 <form action="doUpload" method="post" enctype="multipart/form-data"> 2 <div class="form-group fg1" style="margin-top: 30px; ">

商品信息数据分析及展现系统

基于数据挖掘技术的智能化数据分析系统设计与开发 潍坊物价信息数据分析及展现 背景: 商品价格和人们生活息息相关,比如农产品价格波动不仅会对农民收入和农民生产积极性产生直接影响,更关乎百姓的日常生活和切身利益.经常看新闻看到农民辛苦了一个季度的农作物全都烂在地里,因为价格太低廉,或者没有销路.虽然说物价波动是一种正常的经济现象,但是在一定程度上物价稳,人心才稳,社会才稳.为保持经济平稳健康发展.保障群众生活,稳定物价,信息公开显得尤为重要.价格监测和预测是维持物价稳定的一个重要环节.而对于商品价格

安卓开发技巧二:自定义日志工具类XLog的实现

我们在开发过程中,打印日志是必不可少的一个调试环节,然而,直接使用系统自带的Log日志类,并不能满足我们实际项目的需求:假如我们现在在开发一款比较大的项目,用到打印日志的地方肯定特别多,等到真正上线的时候,我们是不希望日志依旧能够打印出的,原因很简单,不仅多少有些影响效率,更有可能导致信息的泄露,所以我们就需要把所有的日志打印语句全部取消掉,难道我们真的一个一个的去删除这些打印日志的语句吗?项目那么大,就是想删除,也得耗费大量的时间和精力!大家不用怕,笔者这就给大家带来一款控制线上版本和线下版本