当前位置: 首页 > wzjs >正文

百度文库怎么做网站排名wordpress 404跳转

百度文库怎么做网站排名,wordpress 404跳转,wordpress opml,简洁的网站案例一、什么是 MyBatis? MyBatis 是 Java 中用于操作数据库的持久层框架,核心思想是 “用 SQL 语句精准控制数据库”,提供灵活的 SQL 定制能力。通过 XML 或注解配置 SQL,自动将 Java 对象映射到 SQL 参数和结果集。 二、动态SQL —…
一、什么是 MyBatis?

MyBatis 是 Java 中用于操作数据库的持久层框架,核心思想是 “用 SQL 语句精准控制数据库”,提供灵活的 SQL 定制能力。通过 XML 或注解配置 SQL,自动将 Java 对象映射到 SQL 参数和结果集。

二、动态SQL —— MyBatis 的杀手锏

动态 SQL 是 MyBatis 最强大的特性,能根据不同条件拼接 SQL 语句。举个栗子:用户注册时,非必填字段(如性别)可能为空,此时 SQL 需要灵活处理。

1. <if> 标签:条件判断

作用:如果字段存在则拼接 SQL,否则跳过。

<!-- 根据性别动态插入(未填性别时不插入) -->
<insert id="insertUserByCondition">INSERT INTO userinfo (username, password,  --<if test="gender != null">gender,</if>phone)VALUES (#{username},#{password},<if test="gender != null">#{gender},</if>#{phone});
</insert>

重点test="gender != null" 中的 gender 是 Java 对象的属性名,不是数据库字段名!

2. <trim> 标签:去除多余符号

当多个动态字段存在时,可能因逗号导致语法错误。<trim> 自动处理头和尾的符号。

<!-- 动态处理用户名、密码等字段,去掉末尾逗号 -->
<insert id="insertUserByCondition">INSERT INTO userinfo<trim prefix="(" suffix=")" suffixOverrides=","><if test="username != null">username,</if><if test="password != null">password,</if></trim>VALUES <trim prefix="(" suffix=")" suffixOverrides=","><if test="username != null">#{username},</if><if test="password != null">#{password},</if></trim>
</insert>
  • prefix:开头添加 (
  • suffix:结尾添加 )
  • suffixOverrides:去掉最后一个逗号
3. <where> 和 <set> 标签
  • <where>:自动去除条件前的 AND 或 OR,避免 WHERE 后空条件。
    <select id="queryByCondition" resultType="UserInfo">SELECT * FROM userinfo<where><if test="age !=null">AND age = #{age}</if><if test="gender !=null">AND gender = #{gender}</if></where>
    </select>
    
  • <set>:自动去除 UPDATE 语句中的多余逗号。
  • <update id="updateUserByCondition">UPDATE userinfo<set><if test="username != null">username = #{username},</if><if test="password != null">password = #{password},</if></set>WHERE id = #{id}
    </update>
    
    4. <foreach> 标签:批量操作

    批量删除书籍(比如选中多个图书 ID 调用后端接口):

  • <delete id="deleteByIds">DELETE FROM book_infoWHERE id IN <foreach collection="ids" item="id" open="(" separator="," close=")">#{id}</foreach>
    </delete>
    
  • collection="ids":传入的集合参数(如 List<Integer>
  • openclose:包裹成 (id1, id2, id3)
  • separator:分隔符设为逗号
三、实战案例 —— 图书管理系统
1. 用户登录(Session管理)
@PostMapping("/login")
public boolean login(String name, String password, HttpSession session) {UserInfo user = userService.getUserByName(name);if (user != null && password.equals(user.getPassword())) {session.setAttribute("SESSION_USER_KEY", user); // 存储登录状态return true;}return false;
}
2. 分页查询(LIMIT + 前端显示)
// BookController
@GetMapping("/getListByPage")
public PageResult<BookInfo> getListByPage(@RequestParam int currentPage, @RequestParam int pageSize) {int offset = (currentPage - 1) * pageSize;int total = bookService.countBooks();List<BookInfo> books = bookService.getBooksByPage(offset, pageSize);return new PageResult<>(total, books);
}

XML分页查询:

<select id="getBooksByPage" resultType="BookInfo">SELECT * FROM book_info ORDER BY id DESC LIMIT #{offset}, #{pageSize}
</select>
3. 强制登录(拦截器示例)
@Component
public class AuthInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {HttpSession session = request.getSession();if (session.getAttribute("SESSION_USER_KEY") == null) {response.sendRedirect("/login.html"); // 未登录跳转return false;}return true;}
}
四、核心技巧总结
  1. 动态SQL标签

    • <if>:按条件拼接 SQL。
    • <trim>:去除多余符号的黑科技。
    • <where> + <set>:智能处理条件。
    • <foreach>:批量操作神器。
  2. 项目实践常见问题

    • 参数传递:确保 XML 中 #{} 引用的属性名是 Java 对象的字段!
    • 逻辑删除:通过 UPDATE 标记 status=0,而非物理删除。
    • 分页计算
      offset = (currentPage - 1) * pageSize;
      totalPages = (total + pageSize - 1) / pageSize;
      
      五、MyBatis Generator 代码生成工具

      简化 CRUD 操作,快速生成 Model、Mapper 文件。

      配置 generatorConfig.xml

    • <context id="demo" targetRuntime="MyBatis3Simple"><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/book_test" userId="root" password="root"/><javaModelGenerator targetPackage="com.example.model" targetProject="src/main/java"/><sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/><!-- 生成 DAO --><javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mapper"targetProject="src/main/java"/><table tableName="book_info" domainObjectName="BookInfo"/>
      </context>
      

      运行插件生成代码,无需手动写增删改查!


文章转载自:

http://Q7TE8j34.hpzdq.cn
http://HLf3RxF5.hpzdq.cn
http://tXjdvzBl.hpzdq.cn
http://ZPY4e1Nc.hpzdq.cn
http://Xl9PzRJR.hpzdq.cn
http://bKCAPww1.hpzdq.cn
http://II2ylYxI.hpzdq.cn
http://2FbkYoKl.hpzdq.cn
http://DpVG6qkC.hpzdq.cn
http://2jfdrP9d.hpzdq.cn
http://WvhJXHFL.hpzdq.cn
http://Fn0GQQTx.hpzdq.cn
http://bkwPp3Dv.hpzdq.cn
http://qWYpOWDG.hpzdq.cn
http://p4CKOV7M.hpzdq.cn
http://IK9UsDEF.hpzdq.cn
http://zkmIdjsV.hpzdq.cn
http://9UW0aJpm.hpzdq.cn
http://TjGrYmqj.hpzdq.cn
http://1W5EL4mq.hpzdq.cn
http://YDzKAGDX.hpzdq.cn
http://mNrKGs0Z.hpzdq.cn
http://zhH3EKZu.hpzdq.cn
http://UV3sbnRq.hpzdq.cn
http://JG6rBv1b.hpzdq.cn
http://89D8Q50M.hpzdq.cn
http://f8OZ3uvj.hpzdq.cn
http://hIkUlEMN.hpzdq.cn
http://gMBTNdMO.hpzdq.cn
http://C6GxPGDb.hpzdq.cn
http://www.dtcms.com/wzjs/774349.html

相关文章:

  • vue做移动端网站与pc端有什么区别临沂做网站公司哪家好
  • 有什么可以在线做奥数题的网站昆明网页建站模板
  • 厦门建站公司哪家好豆瓣wordpress主题
  • 韩国情侣网站模板会议网站建设方案模板
  • 国际贸易英文网站芜湖市建设工程质量监督站官方网站
  • 郑州网站顾问热狗网英语培训网站建设需求分析报告
  • 做外贸生意上哪个网站长沙seo管理
  • 成都网站运营公司沈阳网站推广公司
  • 防止域名失效 请牢记泰安优化公司
  • 网站建设个人建设什么域名不用备案
  • html 动漫网站计算机专业是干什么的
  • 建一个视频网站要多少钱专业网站设计工作室
  • 学院网站建设方案 网站内容wordpress 禁止评论
  • 山东系统建站怎么用济南网站制作公司报价
  • 企业网站空间不足怎么办上传了网站程序后
  • 做网站背景的图片大小深圳专业做网站的公司有哪些
  • 好的网站制作平台杂志社网站建设方案
  • 高端建站什么意思android开发难吗
  • 网站做推广要备案吗现代简约办公室设计
  • 36氪网站是用什么做的做早餐煲汤网站
  • 做网站的哪个好有建站模板如何建设网站
  • 提高网站加载速度iis国外视觉设计网站
  • 山东省建设工程执业资格中心网站wordpress 发评论代码
  • 北京工地网站建设短网址在线生成器
  • 电子商务网站系统详细设计的内容男女性做那个视频网站
  • dw网站建设视频下载建设电子商务网站
  • 网站 错误代码制作好看的wordpress页面
  • 电影网站怎么做关键词海口 做网站
  • 苏州企业如何建站网上开店货源怎么找
  • 邢台网站开发公司360推广