在学校奋斗了两周,目前能够实现的功能有登录、注册、查看商品信息、按关键字查询商品、下单、按用户名查询订单这几个。暑假要继续把这些功能做得更友好,还要加上购物车,任重而道远……
说正题之前先说一下别的。注册部分有一些修改,用户名不能为空、不能与数据库里已有的重复、必须要是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-10-11 01:04:05