【Java开源代码栏目提醒】:网学会员在Java开源代码频道为大家收集整理了ysfSeat.java提供大家参考,希望对大家有所帮助!
package flashRemoting.ysf;
import java.sql.*;
import java.io.Serializable;
import javax.sql.*;
import org.w3c.dom.*;
import sun.jdbc.rowset.*;
import java.util.Date;
import javax.
xml.parsers.*;
import javax.naming.*;
public class ysfSeat
implements Serializable {
public ysfSeat() {
}
public Document searchSeat(Date timeFrom, Date timeTo) throws
Exception {
//为解析XML作准备,创建DocumentBuilderFactory实例,指定DocumentBuilder
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
}
catch (ParserConfigurationException pce) {
System.err.println(pce);
System.exit(1);
}
Document doc = null;
doc = db.newDocument();
Element root = doc.createElement("seat");
//根元素添加上
文档 doc.appendChild(root);
//令人反感,
查询Access数据库的日期子句必须将日期转换为字符串
String fTime = timeFrom.getMonth() + "/" + timeFrom.getDate() + "/" +
(timeFrom.getYear() + 1900) + " " + timeFrom.getHours() + ":" +
timeFrom.getMinutes();
String tTime = timeTo.getMonth() + "/" + timeTo.getDate() + "/" +
(timeTo.getYear() + 1900) + " " + timeTo.getHours() + ":" +
timeTo.getMinutes();
System.out.println(fTime);
System.out.println(tTime);
Connection connection = null;
PreparedStatement stmt = null;
ResultSet rs = null;
CachedRowSet crs = new CachedRowSet();
String sql = "SELECT * FROM seat WHERE fReserve >= #" + fTime + "# AND tReserve <= #" + tTime + "#";
try {
Context ctx = (Context) new InitialContext().lookup("java:comp/env");
DataSource ds = (DataSource) ctx.lookup("ysfDb");
connection = ds.getConnection();
stmt = connection.prepareStatement(
sql);
rs = stmt.executeQuery();
crs.populate(rs);
System.out.println("RowSet populated.");
while (crs.next()) {
System.out.println("RowSet指针循环");
System.out.println(crs.getObject("id").toString());
System.out.println(crs.getObject("fReserve").toString());
System.out.println(crs.getObject("tReserve").toString());
System.out.println(crs.getObject("reserved").toString());
//创建一个seat_num节点,并为该节点定义属性
Element seat = doc.createElement("seat_num");
seat.setAttribute("id", crs.getObject("id").toString());
seat.setAttribute("timeFrom", crs.getObject("fReserve").toString());
seat.setAttribute("timeTo", crs.getObject("tReserve").toString());
seat.setNodeValue(crs.getObject("reserved").toString());
root.appendChild(seat);
}
crs.close();
}
catch (Exception e) {
System.out.println(e);
}
finally {
try {
rs.close();
stmt.close();
connection.close();
}
catch (Exception e) {}
}
//返回一个XML
文档对象
return doc;
}
public boolean reserveSeat(String userName, String userPass, String id,
String timeFrom, String timeTo, boolean reserved) throws
Exception {
//与前面定义的方法不同,我们将日期参数直接定义为字符串格式
Connection connection = null;
PreparedStatement stmt = null;
boolean maked = false;
boolean logined = ysfLogin.login(userName, userPass);
System.out.println(logined);
if (logined) {
try {
Context ctx = (Context) new InitialContext().lookup("java:comp/env");
DataSource ds = (DataSource) ctx.lookup("ysfDb");
System.out.println("在这里我们使用JDBC连接的JNDI名");
System.out.println("在前面一章,我们创建名为ysfDb的JNDI名");
connection = ds.getConnection();
String sql =
"INSERT INTO seat (id,fReserve,tReserve,reserved) Values ('" +
id + "','" + timeFrom + "','" + timeTo + "'," + reserved + ")";
System.out.println(sql);
stmt = connection.prepareStatement(sql);
stmt.executeUpdate();
maked = true;
}
catch (Exception e) {
System.out.println(e);
}
finally {
try {
stmt.