DAO已经写好了,在servlet里实现查询数据库里的数据,并跳转到jsp界面,jsp接收参数,要源码,最好有注释
先声明,明确规定MVC用这个,但是我不知道怎么做这是dao层的代码,我该怎么在servlet里面接收这些值publicListgetAlarmInfoByUserId(S...
先声明,明确规定MVC 用这个,但是我不知道怎么做
这是dao层的代码,我该怎么在servlet里面接收这些值
public List getAlarmInfoByUserId(String userId) {
List list = new ArrayList();
Connection conn = null;
CallableStatement cast = null;
ResultSet rs = null;
try {
//获取数据库的链接
conn = con.getConnection();
//执行函数的语句
String execFun = "{? = call fn_alarm_userid(?)}";
//传参
cast = conn.prepareCall(execFun);
cast.setString(2, userId);
cast.registerOutParameter(1, OracleTypes.CURSOR);
//执行
cast.execute();
//获得函数的返回结果
rs = (ResultSet) cast.getObject(1);
Alarm alarm = null;
//解析返回的数据
while (rs.next()) {
alarm = new Alarm();
alarm.setPlateNo(rs.getString("plate_no"));
alarm.setLat(rs.getDouble("lat"));
alarm.setLon(rs.getDouble("lon"));
alarm.setGpsTime(rs.getString("gps_time"));
alarm.setSpeed(rs.getDouble("speed"));
alarm.setAlarmId(rs.getLong("alarm_id"));
alarm.setAlarmTypeId(rs.getLong("alarm_type_id"));
alarm.setAlarmName(rs.getString("alarm_name"));
list.add(alarm);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
con.CloseCstam(rs, cast, Param.DB_CONN, conn);
}
return list;
} 展开
这是dao层的代码,我该怎么在servlet里面接收这些值
public List getAlarmInfoByUserId(String userId) {
List list = new ArrayList();
Connection conn = null;
CallableStatement cast = null;
ResultSet rs = null;
try {
//获取数据库的链接
conn = con.getConnection();
//执行函数的语句
String execFun = "{? = call fn_alarm_userid(?)}";
//传参
cast = conn.prepareCall(execFun);
cast.setString(2, userId);
cast.registerOutParameter(1, OracleTypes.CURSOR);
//执行
cast.execute();
//获得函数的返回结果
rs = (ResultSet) cast.getObject(1);
Alarm alarm = null;
//解析返回的数据
while (rs.next()) {
alarm = new Alarm();
alarm.setPlateNo(rs.getString("plate_no"));
alarm.setLat(rs.getDouble("lat"));
alarm.setLon(rs.getDouble("lon"));
alarm.setGpsTime(rs.getString("gps_time"));
alarm.setSpeed(rs.getDouble("speed"));
alarm.setAlarmId(rs.getLong("alarm_id"));
alarm.setAlarmTypeId(rs.getLong("alarm_type_id"));
alarm.setAlarmName(rs.getString("alarm_name"));
list.add(alarm);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
con.CloseCstam(rs, cast, Param.DB_CONN, conn);
}
return list;
} 展开
1个回答
展开全部
好吧,之前是写了一大堆的,不过我突然发现 你要的是servlet的 我写的是struts2的...我就删了
servlet就更简单啦 直接建个servlet 继承httpservlet
在dopost()或者doget()里面
先取数据库数据 然后用 dopost()的参数request.setattribute(键,值);就Ok了啊
jsp页面 直接request.getattribute(键);
访问数据库取值,你这个getAlarmInfoByUserId()所在的类名,比如是 BaseDao
BaseDao bd = new basedao();
List<Alarm> list = bd.getxxxById("你的Id");
request.setattribute("去个名字",list);
在jsp中用request.getattrbuite("去个名字")就得到了list
另:既然你是getAlarmInfoByUserId id是唯一的吧 你的返回值应该是实体类名Alarm 不该做list;还有你的jdbc略冗余啊,何不把数据库连接这块做个代码块?
servlet就更简单啦 直接建个servlet 继承httpservlet
在dopost()或者doget()里面
先取数据库数据 然后用 dopost()的参数request.setattribute(键,值);就Ok了啊
jsp页面 直接request.getattribute(键);
访问数据库取值,你这个getAlarmInfoByUserId()所在的类名,比如是 BaseDao
BaseDao bd = new basedao();
List<Alarm> list = bd.getxxxById("你的Id");
request.setattribute("去个名字",list);
在jsp中用request.getattrbuite("去个名字")就得到了list
另:既然你是getAlarmInfoByUserId id是唯一的吧 你的返回值应该是实体类名Alarm 不该做list;还有你的jdbc略冗余啊,何不把数据库连接这块做个代码块?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询