<!-- 分页查询 手机号--> <select id="queryPhonePage" parameterType="int" resultType="com.wj.jscucc.entity.PhoneInfo"> select * from (select rownum rn, p.* from phoneinfo p where p.status='0') where rn>#{0} and rn<#{1} </select>
时间: 2024-04-26 15:22:29 浏览: 101
这是一个 MyBatis 的 XML 配置文件中的 SQL 语句,用于分页查询手机号。其中 parameterType 属性指定了传入参数的类型为 int,resultType 属性指定了返回结果的类型为 com.wj.jscucc.entity.PhoneInfo。SQL 语句中使用了子查询和分页查询的语法,通过 rownum 函数获取当前行号,来实现分页查询。其中 #{0} 和 #{1} 分别代表传入参数的第一个和第二个位置,用于指定分页查询的起始行和结束行。
相关问题
<?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="org.mybatis.example.BlogMapper"> <!--通过学生id查询学生信息--> <select id="selectStudentById" resultType="Student"> select * from s_student where id = #{id} </select> <!--通过班级id查询学生信息--> <select id="selectStudentByCId" resultType="Student"> select * from s_student where cid = #{cid} </select> <insert id="insertStudent" parameterType="Student" > insert into s_student(name,age,cid) values(#{name},#{age},#{cid}) </insert> <!--任务8:--> <!--通过班级名称查询学生信息【10分】--> <select id="selectStudentsByClassName" resultType="Student"> SELECT s.* FROM s_student s JOIN s_class c ON s.cid = c.id WHERE c.name = #{className} </select> <!--修改学生信息【10分】--> <update id="updateStudent" parameterType="Student"> UPDATE s_student SET name = #{name}, age = #{age} WHERE id = #{id} </update> <!--删除学生信息【10分】--> <delete id="deleteStudentById" parameterType="int"> DELETE FROM s_student WHERE id = #{id} </delete> </mapper>
这是一个 MyBatis 的 XML 映射文件,用于将 Java 对象与 SQL 语句进行映射。其中包含了一些 SQL 语句和对应的操作,如查询、插入、更新和删除。这个 XML 文件的 namespace 属性指定了映射文件对应的 Java 接口或类的包名和类名。每个 SQL 语句都有对应的 id 属性,用于在 Java 代码中调用这些 SQL 语句。resultType 属性指定了查询结果的返回类型,parameterType 属性指定了 SQL 语句的参数类型。具体来说,这个映射文件中包含了通过学生 id 和班级 id 查询学生信息、插入学生信息、通过班级名称查询学生信息、修改学生信息和删除学生信息等操作。
<mapper namespace="com.example.YourMapper"> <insert id="batchInsertOrUpdate" parameterType="java.util.List"> <foreach collection="list" item="item" separator=";"> <if test="item.id != null"> <!-- 判断ID是否存在 --> SELECT COUNT(*) FROM your_table WHERE id = #{item.id} </if> <choose> <when test="_parameter[0] > 0"> <!-- 更新操作 --> UPDATE your_table SET column1 = #{item.column1}, column2 = #{item.column2} WHERE id = #{item.id} </when> <otherwise> <!-- 插入操作 --> INSERT INTO your_table (id, column1, column2) VALUES (#{item.id}, #{item.column1}, #{item.column2}) </otherwise> </choose> </foreach> </insert> </mapper>和mybatis-plus的saveOrUpdateBatch性能比较及如何选用
`<insert>`标签和`saveOrUpdateBatch`是两种不同的方式来实现大批量数据操作。下面是它们的性能比较和如何选择的建议:
1. `<insert>`标签方式:
- 性能比较:使用`<insert>`标签进行大批量数据操作时,会根据每个数据的ID是否存在执行对应的更新或插入操作。这种方式对于数据量较小的情况下性能较好,因为它会逐条执行SQL语句。但是对于大批量数据操作来说,可能会有较多的数据库交互,性能可能较低。
- 选择建议:如果您的数据量不是特别大,并且对性能要求不高,可以考虑使用`<insert>`标签方式。
2. `saveOrUpdateBatch`方法:
- 性能比较:`saveOrUpdateBatch`是MyBatis-Plus提供的方法,它能够根据实体对象的ID自动判断执行插入或更新操作。这种方式可以减少数据库交互次数,提高性能,尤其在处理大批量数据时效果更好。
- 选择建议:如果您的数据量较大,并且对性能要求较高,推荐使用`saveOrUpdateBatch`方法。
综上所述,如果您的数据量较小且对性能要求不高,可以选择使用`<insert>`标签方式。如果您的数据量较大且对性能有较高的要求,可以考虑使用`saveOrUpdateBatch`方法。根据具体情况选择适合您的方式。
阅读全文