谁知道struts2做增删改查的详细步骤。

 我来答
WinsonTe
2015-01-06 · 超过53用户采纳过TA的回答
知道小有建树答主
回答量:95
采纳率:0%
帮助的人:92.8万
展开全部

那要看你使用了那些框架咯,一般来说分为三层

第一层是表层:就是action那部分,响应jsp操作

第二层是service层:就是进行逻辑操作的。

第三层是持久层(DAO):就是进行数据库操作的


比如,增加一个留言(Message)的操作。在action层中将这个Message封装好,重写excute()方法。

调用Service层的方法,进行一些逻辑性的操作,最后到持久层DAO将这个Message对象加入数据库。

我有一个SSH的代码可以看下。 (只贴出了代码,还有一些配置文件省略了)

action:

public class AddMessage extends ActionSupport {

private String content;

private String username;

private String visior;

private MessageService messageService;

public String getContent() {

return content;

}


public void setContent(String content) {

this.content = content;

}

。。。。。//还有其他的set() get()方法省略

@Override

public String execute() throws Exception {

Map session = ActionContext.getContext().getSession();

HttpServletRequest request = ServletActionContext.getRequest();

String username = (String) session.get("username");

String visitor = (String)session.get("visitor");

if (null == username || "".equals(username)) {

return ERROR;

} else {


  • // 封装Message

  • Message message = new Message();

  • message.setUsername(username);

  • message.setContent(content);

  • if(visitor == null){

  • message.setVisitor("游客");

  • }else{

  • message.setVisitor(visitor);

  • }

  • message.setDate(new Date());

  • messageService.addMessage(message);  //这里调用Service层的方法

  • return this.SUCCESS;

}

}

}


service层:

接口:

public interface MessageService {

//添加留言

public void addMessage(Message message);

//删除留言

public void deleteMessage(int id);

//分页查询留言

public Result showUserMessageByPage(String username,Page page);

}


实现类:

public class MessageServiceImpl implements MessageService {

private MessageDAO messageDAO;


public MessageDAO getMessageDAO() {

return messageDAO;

}


public void setMessageDAO(MessageDAO messageDAO) {

this.messageDAO = messageDAO;

}


  • //刚刚调用的service方法

  • public void addMessage(Message message) {

  • messageDAO.add(message);//这里调用了DAO层的方法,将数据保存到数据库

  • }


public void deleteMessage(int id) {

messageDAO.deleteMessage(id);

}


public Result showUserMessageByPage(String username, Page page) {

page = PageUtil.createPage(page,messageDAO.queryUserAllCount(username));

List<Message> all = messageDAO.queryByPage(username, page);

Result result = new Result();

result.setPage(page);

result.setList(all);

return result;

}

}


DAO层:

(接口)

public interface MessageDAO {

//添加留言

public void add(Message message);

//删除留言

public boolean deleteMessage(int id);

//查询某个用会员的全部留言

public List<Message> queryByPage(String username,Page page);

//按照ID俩查询留言

public Message queryById(int id);

//查询数据库中某用户所有留言数目

public int queryUserAllCount(String username);

//获取所访问的用户ID

public int UserID();

}


(实现类)

public class MessageDAOImpl extends HibernateDaoSupport implements MessageDAO {

  • //这里是刚刚调用的add方法

  • public void add(Message message) {

  • this.getHibernateTemplate().save(message);//这里就把message存入数据库中了

  • }


public boolean deleteMessage(int id) {

this.getHibernateTemplate().delete(this.queryById(id));

return false;

}


public Message queryById(int id) {

List<Message> find = this.getHibernateTemplate().find("select meg from Message meg where meg.id = ?", id);

return (Message) find.get(0);

}


public List<Message> queryByPage(final String username,final Page page) {

return this.getHibernateTemplate().executeFind(new HibernateCallback() {

public Object doInHibernate(Session session)

throws HibernateException, SQLException {

Query query = session.createQuery("select meg from Message meg where meg.username = ? order by meg.date desc");

//设置查询的用户

query.setParameter(0, username);

//设置查询的最大数

query.setMaxResults(page.getEveryPage());

//设置从哪里开始查询

query.setFirstResult(page.getBeginIndex());

return query.list();

}

});

}


public int queryUserAllCount(String username) {

List find = this.getHibernateTemplate().find("select count(*) from Message meg where meg.username = ?",username);

return ((Long)find.get(0)).intValue();

}


public int UserID() {

// TODO Auto-generated method stub

return 0;

}

}

其他的操作类似

Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
an0011121
推荐于2017-11-27 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3948
采纳率:55%
帮助的人:2337万
展开全部
struts2本身做不了数据库的增删改查的。struts2是控制器,是接收前台请求,并把请求传给下层处理。增删改查就在这个下层,一般用hibernate或者spring(比如spring的hibernatetemplate)来做。
如果你费用struts,那么只能用jdbc了。
这个时候你需要学习jdbc和dao模式(可选)来完成仅有struts的增删改查。其实你这样的需求用个servlet也ok。
先学jdbc和dao吧。我也不太明白你的需求,有问题再追问吧。
追问
嗯,谢了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式