标签:
在学校奋斗了两周,目前能够实现的功能有登录、注册、查看商品信息、按关键字查询商品、下单、按用户名查询订单这几个。暑假要继续把这些功能做得更友好,还要加上购物车,任重而道远……
说正题之前先说一下别的。注册部分有一些修改,用户名不能为空、不能与数据库里已有的重复、必须要是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,所以这里也跟着改一下,只输出一列
标签:
原文地址:http://www.cnblogs.com/zxysmalleyes/p/4657802.html