最近用ssm框架在尝试做一个关于新闻网站的设计时,需要用到对某条新闻的点赞功能,具体要求如下:
1、当已登录用户进入新闻详情页面时,需要直接显示用户是否点过赞,如果点过,则显示取消点赞,否则显示点赞
2、当用户点赞后,显示为取消点赞,再次点击后显示为点赞,不断变化,并同时动态修改数据库。
方法如下:
1、首先建立一张表,里面是用户id,新闻id,序号
2、然后建立相应的dao层,如图:
package bs.dao;
import org.apache.ibatis.annotations.Param;
import bs.bean.Prise;
public interface PriseDao {
public int priseUpdate(Prise prise);
public int priseDelete(@Param("prise_id") int prise_id);
public Prise selectByUserAndNews(@Param("news_id")int news_id,@Param("user_id")int user_id);
}
然后建立相应的service层和serviceImpl层,主要是serviceimpl层,这里只放上这个代码
package bs.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import bs.bean.News;
import bs.bean.Prise;
import bs.dao.NewsDao;
import bs.dao.PriseDao;
import bs.service.PriseService;
@Service
@Transactional
public class PriseServiceImpl implements PriseService {
@Autowired
private PriseDao prisedao;
@Autowired
private NewsDao newsdao;
@Override
public int priseUpdate(int news_id,int user_id) {
Prise prise = prisedao.selectByUserAndNews(news_id, user_id);
News news = newsdao.findById(news_id);
System.out.println(prise);
if(prise==null){
Prise prise1 = new Prise();
prise1.setNews_id(news_id);
prise1.setUser_id(user_id);
prisedao.priseUpdate(prise1);
System.out.println("prise更新了");
prise1 = prisedao