MyBatis中XML和注解的对比及使用
程序员文章站
2022-06-02 13:51:31
MyBatis支持注解和XML两种配置。
1.基于XML的配置
当前新闻页面只显示10条消息的配置代码:
List selectByUserIdAndOffset(@Pa...
MyBatis支持注解和XML两种配置。
1.基于XML的配置
当前新闻页面只显示10条消息的配置代码:
List selectByUserIdAndOffset(@Param("userId") int userId, @Param("offset") int offset, @Param("limit") int limit);
News数据库表显示10个新闻数据:(根据用户userId显示,offset为:当前显示为第几个,limit:为当前页面显示几个用户新闻消息。)
XML配置文件(文件路径要与model中DAO的文件目录一样)
<?xml version="1.0" encoding="UTF-8" ?> <!--数据库select、insert、update、delete标签中编写查询的SQL语句,mybatis有两种方式进行数据库的操作, 1.使用注解方式 2.使用配置文件方式: 这个文件为第二种方式--> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.news.toutiao.dao.NewsDAO"> <!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的 例如:namespace="com.news.toutiao.dao.NewsDAO"(NewsDAO文件去除后缀) --> <sql id="table">news</sql> <!--<sql id="selectFields">id,title, link, image, like_count, comment_count,created_date,user_id </sql>--> <sql id="selectFields">id,title,link,image,like_count,comment_count,created_date,user_id </sql> <select id="selectByUserIdAndOffset" resultType="com.news.toutiao.model.News"> <!-- 在select、insert、update、delete标签中编写查询的SQL语句, 设置标签的id属性值必须是唯一的,不能够重复。使用parameterType属性 指明查询时,使用的参数类型。resultType属性指明查询返回的结果集类型,resultType="com.news.toutiao.model.News"就表示将查询 结果封装成一个News类的对象返回,News类就是news表所对应的实体类。 --> SELECT <include refid="selectFields"/> FROM <include refid="table"/> <if test="userId != 0"> WHERE user_id = #{userId} </if> ORDER BY id DESC LIMIT #{offset},#{limit} </select> </mapper>
在service中调用这些 SQL 语句:
public class NewsService { @Autowired public NewsDAO newsDAO; public List getLatestNews(int userId,int offset,int limit) { return newsDAO.selectByUserIdAndOffset(userId,offset,limit); }
基于注解的配置
@Insert({"insert into",TABLE_NAME,"(",INSERT_FIELDS, ") values (#{title},#{link},#{image},#{likeCount},#{commentCount},#{createdDate},#{userId})"}) int addNews(News news); @Select({"select ", SELECT_FILEDS , " from ", TABLE_NAME, " where id=#{id}"}) News getById(int id); @Update({"update ", TABLE_NAME, " set comment_count = #{commentCount} where id=#{id}"}) int updateCommentCount(@Param("id") int id, @Param("commentCount") int commentCount);
在NewsService调用SQL语言;
public int addNews(News news) { newsDAO.addNews(news); return news.getId(); }
上一篇: win10怎么使用红外线接收图片?
下一篇: 从SEO角度看关于主机和域名的问题
推荐阅读
-
对layui中的onevent 和event的使用详解
-
浅谈Spring中@Import注解的作用和使用
-
对python中的argv和argc使用详解
-
MyBatis中XML和注解的对比及使用
-
SQLSERVER 2005中使用sql语句对xml文件和其数据的进行操作(很全面)
-
mybatis xml文件中传入参数和if结合使用时要注意的地方
-
使用DateTimeOffset 对xml中的日期时间格式时区进行处理
-
详解mybatis-plus使用@EnumValue注解的方式对枚举类型的处理
-
mybatis Mapper的xml文件中resultType值的使用说明
-
Mybatis 中xml和注解映射,so easy啦