execute()操作
功能:从数据库中查询用户信息。
返回值:boolean型,如果取值成功返回true,否则,返回false。
设计思路:获得数据库连接对象Connection 对象,ResultSet对象和Statement对
象 ――》调用getSql()方法获得sql语句――》执行sql语句。
程序主干部分代码:
public boolean execute() throws Exception { ……… try{
con=DataBase.getConnection(); stmt=con.createStatement(); rs = stmt.executeQuery(getSql()); }catch(Exception e){ e.printStackTrace(); }
while (rs.next()){ if (!isadmin) {
userid = rs.getLong(\ } flag = true; } ………} getSql()操作
功能:根据用户的不同类型获取不同的sql查询语句。 返回值:字符串类型sql语句。
设计思路:判断登录用户是否是管理员――》如果是管理员,则返回从表bookadmin
中的查找sql语句――》否则返回从普通用户表shopuser中的查询sql语句。
程序主干部分代码:
public String getSql() { String sqlStr=null; if (isadmin) {
sqlStr = \ dataFormat.toSql(username) + \
dataFormat.toSql(passwd) + \将普通字符串格式化成数 }else {
sqlStr = \ username + \ } return sqlStr; }
2:op_book.java
该类主要负责图书的管理,包括图书的修改,查询,删除和添加等。 op_book类有以下属性:
private book abooks = new book(); //新的图书类 private javax.servlet.http.HttpServletRequest request; //建立页面请求 private boolean sqlflag = true ; private Vector booklist; private int page = 1; private int pageSize=5;
//对接收到的数据是否正确 //显示图书列表向量数组 //显示的页码
//每页显示的图书数 //页面总数
//查询的记录总数
private int pageCount =0;
private long recordCount =0; public String sqlStr=\
op_book类有以下方法(省去了属性对应的getX()/setX()方法): book_search();完成图书查询,包括分类,关键字查询。 delete();负责图书的删除。
getOnebook();主要完成图书的单本查询,用于支持页面的“查看详细信息”。 insert();负责图书的添加。
to_String();把字符串以“ISO 8859-1”编码形式输出,使页面正常显示。 update();负责修改图书信息。
getRequest();负责接受页面传递过来的参数,分解并将参数存放到abooks对象中。
重要操作:主要介绍getRequest() book_search() insert() update() delete() getRequest()方法
功能:负责从页面接受表单数据并分解,设置abooks对象相应属性。 参数设计:页面传递的Request对象,其中包括表单数据。 返回值:boolean型,true表示成功,否则返回false。
设计思想:获取页面传递的Request对象—》分解Request对象—》获取表单
参数值—》把参数值设置成图书对象abooks相对应的属性值。
程序主干代码: public
boolean
getRequest(javax.servlet.http.HttpServletRequest
newrequest) {
………
request = newrequest;
String BookName = request.getParameter(\
abooks.setBookName(to_String(BookName)); String author = request.getParameter(\ abooks.setAuthor(to_String(author));
String publish = request.getParameter(\ abooks.setPublish(to_String(publish));
String bookclass = request.getParameter(\ abooks.setBookClass(bc);
String bookno = request.getParameter(\ abooks.setBookNo(to_String(bookno)); String picture = request.getParameter(\ abooks.setPicture(to_String(picture));
price =new Float(request.getParameter(\ abooks.setPrice(price);
amount = new Integer(request.getParameter(\ abooks.setAmount(amount);
String Content = request.getParameter(\ abooks.setContent(to_String(Content)); …….. }
book_search()方法
功能:负责图书查询,包括分类,关键字查询。 参数设计:页面传递的Request对象。
返回值:boolean型,成功返回true,否则返回false。
设计思路:获取页面传递的request对象—》分解获取表单数据—》根据参数值判
断是何种询—》组织sql语句—》从数据库中查询数据—》构造图书对象—》设置对象信息。
函数代码:
public boolean book_search(HttpServletRequest res) throws Exception { ……………
sqlStr = \ a.id,a.BookName,a.Bookclass,b.classname,\ \ \ \
if (!classid.equals(\如果类别不为空非查询 sqlStr = sqlStr + \ \
} else if (!keyword.equals(\ //如果是查询资料 if (!classid.equals(\查询某一类 sqlStr = sqlStr + \ classid + \ keyword+ \ keyword + \ order by a.Id desc\ } else {
//查询所有类
sqlStr = sqlStr + \ keyword+ \ keyword + \ }
} else {//非查询,也非分类浏览
sqlStr = sqlStr + \ order by a.Id desc\ } try {
con2=DataBase.getConnection(); stmt2=con2.createStatement(); rs2 = stmt2.executeQuery(sqlStr); // booklist = new Vector(recordCount); int resc=(int)recordCount; booklist = new Vector(resc); while (rs2.next()){
book book = new book();
book.setId(rs2.getLong(\
book.setBookName(rs2.getString(\ book.setBookClass(rs2.getInt(\ book.setClassname(rs2.getString(\ book.setAuthor(rs2.getString(\ book.setPublish(rs2.getString(\ book.setBookNo(rs2.getString(\ book.setContent(rs2.getString(\ book.setPrice(rs2.getFloat(\
book.setAmount(rs2.getInt(\
book.setLeav_number(rs2.getInt(\ book.setRegTime(rs2.getString(\ book.setPicture(rs2.getString(\ booklist.addElement(book); }
Insert()方法
功能:负责图书的添加。 参数设计:无。
返回值:boolean类型,成功返回true,否则返回false。
设计思路:从图书对象中分别获得图书的属性—》组织sql语句—》执行sql语句—》返
回结果
函数代码:
public boolean insert() throws Exception {
sqlStr
=
\
into
book
(BookName,Bookclass,Author,Publish,Bookno,\
\
sqlStr = sqlStr + dataFormat.toSql(abooks.getBookName()) + \ sqlStr = sqlStr + abooks.getBookClass() + \
sqlStr = sqlStr + dataFormat.toSql(abooks.getAuthor()) + \
sqlStr = sqlStr + dataFormat.toSql(abooks.getPublish()) + \
sqlStr = sqlStr + dataFormat.toSql(abooks.getBookNo()) + \ sqlStr = sqlStr + dataFormat.toSql(abooks.getContent()) + \
sqlStr = sqlStr + abooks.getPrice() + \ sqlStr = sqlStr + abooks.getAmount() + \
sqlStr = sqlStr + abooks.getAmount() + \ sqlStr = sqlStr + \ sqlStr = sqlStr + abooks.getPicture()+\ ???
con=DataBase.getConnection(); stmt=con.createStatement(); stmt.executeQuery(sqlStr); ??? } Update() 方法
功能:负责图书的修改。 参数设计:无。