You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
2.0 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.crawler.mapper.NewsDataMapper">
<insert id="insert" parameterType="com.example.crawler.model.NewsData">
INSERT INTO news_data (title, content, publish_time, related_commodity,
sentiment, create_time, source)
VALUES (#{title}, #{content}, #{publishTime}, #{relatedCommodity},
#{sentiment}, CURRENT_TIMESTAMP, #{source})
</insert>
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO news_data (title, content, publish_time, related_commodity,
sentiment, create_time, source)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.title}, #{item.content}, #{item.publishTime}, #{item.relatedCommodity},
#{item.sentiment}, CURRENT_TIMESTAMP, #{item.source})
</foreach>
</insert>
<select id="selectAll" resultType="com.example.crawler.model.NewsData">
SELECT * FROM news_data ORDER BY publish_time DESC
</select>
<select id="selectByCommodity" resultType="com.example.crawler.model.NewsData">
SELECT * FROM news_data WHERE related_commodity = #{commodity} ORDER BY publish_time DESC
</select>
<select id="selectByDateRange" resultType="com.example.crawler.model.NewsData">
SELECT * FROM news_data WHERE publish_time BETWEEN #{startDate} AND #{endDate} ORDER BY publish_time DESC
</select>
<select id="selectByTitleAndTime" resultType="com.example.crawler.model.NewsData">
SELECT * FROM news_data WHERE title = #{title} AND publish_time = #{publishTime}
</select>
<select id="countBySentiment" resultType="int">
SELECT COUNT(*) FROM news_data WHERE sentiment = #{sentiment}
</select>
<delete id="deleteAll">
DELETE FROM news_data
</delete>
</mapper>