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

开发网站开发工程师招聘网上推广是什么意思

开发网站开发工程师招聘,网上推广是什么意思,页面升级紧急通知,为什么做网站必须要用域名1. 模糊查询 在MyBatis中进行模糊查询时#xff0c;有以下三种常见的实现方式#xff1a; 1.1. 错误示范 先来个准备操作#xff0c;并做一个错误示例 根据姓名#xff0c;模糊查询用户#xff0c;(x小x) 更新数据表 SQLMapper.java package com.sakurapaid.mybatis3…1. 模糊查询 在MyBatis中进行模糊查询时有以下三种常见的实现方式 1.1. 错误示范 先来个准备操作并做一个错误示例 根据姓名模糊查询用户(x小x) 更新数据表 SQLMapper.java package com.sakurapaid.mybatis3.select.mapper;import com.sakurapaid.mybatis3.select.bean.User; import org.apache.ibatis.annotations.Param;import java.util.List;public interface SQLMapper {// 根据姓名模糊查询用户(x小x)ListUser findUserByName(Param(name) String name); } SQLMapper.xml、 这是错误示例我是——like %#{name}% ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.sakurapaid.mybatis3.select.mapper.SQLMapper!--根据姓名模糊查询用户(x小x)--select idfindUserByName resultTypecom.sakurapaid.mybatis3.select.bean.Userselect * from user where name like %#{name}%/select /mapper测试输出 package com.sakurapaid.mybatis3.select.test;import com.sakurapaid.mybatis3.select.bean.User; import com.sakurapaid.mybatis3.select.mapper.SQLMapper; import com.sakurapaid.mybatis3.select.utils.SqlSessionUtils; import org.apache.ibatis.session.SqlSession; import org.junit.jupiter.api.Test;import java.util.List;public class SQLTest {Testpublic void test(){SqlSession sqlSession SqlSessionUtils.getSqlSession();SQLMapper mapper sqlSession.getMapper(SQLMapper.class);ListUser out mapper.findUserByName(小);for (User user : out) {System.out.println(user);}} } 记住我上面的SQL语句编译时就会报错 在 SQL 查询语句中使用了 MyBatis 的动态参数 #{name}但在对应的 mapper 映射配置中未正确设置该参数导致在执行 SQL 查询时JDBC 无法识别并适配这个参数从而抛出了“Parameter index out of range”的异常。 所以#{ }虽然常用但并不是万能的遇到模糊查询还是要适当调整的也就引出了下面要讲到的三种在mybatis中模糊查询的方法 1.2. 方式一使用#{}占位符 #{ }占位符结合contact函数 select idfindUserByName resultTypecom.sakurapaid.mybatis3.select.bean.Userselect * from user where name like concat(%,#{name},%)/select 解释 这里使用了#{}占位符来传递参数name。MyBatis会将#{name}替换为预编译语句中的参数并自动为其加上单引号。通过concat函数将通配符%与参数值拼接成完整的模糊查询条件。这种方式能够防止SQL注入因为参数值是经过预编译处理的且无需手动添加单引号。 测试输出 测试语句还是最上面那个 1.3. 方式二使用${}变量替换 直接使用${ }但记得要加引号 select idtestMohu resultTypeUserselect * from user where name like %${name}% /select 解释 这种方式使用${}变量替换符来嵌入参数name的值。${name}会被直接替换为变量的值不会添加任何额外的引号。因此如果传入的name值为小生成的SQL语句将是select * from t_user where username like %小%。这种方式虽然简洁但存在SQL注入的风险因为变量值未经预编译直接插入到SQL语句中。除非能确保传入值的安全性否则不建议使用此方式。 测试输出 测试语句还是最上面那个 1.4. 方式三手动添加双引号 最推荐的也是实际开发中最常用的 select idtestMohu resultTypeUserselect * from user where name like %#{name}% /select 解释 这种方式结合了#{}占位符的预编译安全性与手动添加双引号来包裹通配符和参数。虽然看起来与方式一类似但这里的#{name}被双引号包围使得MyBatis在替换参数时生成的SQL语句中参数值仍被双引号包围形如select * from user where name like %小%。 2. 批量删除 要使用${ }而非#{ }来避免自动添加单引号 定义接口方法 // 批量删除用户 int deleteMore(Param(ids) String ids); 编写Mapper XML映射文件 看清楚我这个错误示范 delete iddeleteMoredelete from user where id in (#{ids}) /delete 测试输出 Test public void test(){SqlSession sqlSession SqlSessionUtils.getSqlSession();SQLMapper mapper sqlSession.getMapper(SQLMapper.class);int i mapper.deleteMore(4,5,6);System.out.println(i); } 不能使用#{ }只能使用${ } delete iddeleteMoredelete from user where id in (${ids}) /delete 受影响行数1因为我表里的id值只有1-4就删除了4, 3. 动态设置表名 也要使用${ }而非#{ }来避免自动添加单引号 定义接口方法 /*** 动态设置表名查询所有的用户信息* param tableName* return*/ ListUser getAllUser(Param(tableName) String tableName); 编写Mapper XML映射文件 看清楚我这个错误示范 select idgetAllUser resultTypecom.sakurapaid.mybatis3.select.bean.Userselect * from #{tableName} /select 测试输出 Test public void test(){SqlSession sqlSession SqlSessionUtils.getSqlSession();SQLMapper mapper sqlSession.getMapper(SQLMapper.class);ListUser allUser mapper.getAllUser(user);allUser.forEach(System.out::println); } 不能使用#{ }只能使用${ } select idgetAllUser resultTypecom.sakurapaid.mybatis3.select.bean.Userselect * from ${tableName} /select 4. 添加功能获取自增的主键 在数据库应用开发中使用自增主键是一种常见且实用的设计策略。自增主键字段的值会自动递增每当插入一条新记录时数据库系统会为其自动分配一个唯一的、递增的整数值作为主键。 场景一简化数据插入操作 场景描述 当需要在数据库中创建新的实体记录如用户、订单、文章等时开发者通常需要为这些记录指定一个唯一的标识符。使用自增主键可以免去手动为每条新记录生成唯一ID的复杂性。 使用自增主键 开发者只需关注其他非主键字段的数据填充插入操作时无需指定主键值。数据库系统会自动为新插入的记录生成下一个自增主键值。例如在创建新用户时只需提供用户名、密码、邮箱等信息主键ID由数据库自动生成。 场景二确保数据唯一性 场景描述 在多用户并发环境下如果没有有效的机制保证主键的唯一性可能会出现主键冲突导致数据插入失败。自增主键能有效防止此类问题。 使用自增主键 数据库系统内部对自增主键的管理确保了每次插入新记录时主键值的唯一性。即使在高并发场景下不同用户同时尝试插入记录也不会产生相同的主键值从而避免数据冲突。 定义接口方法 // 添加用户 int insertUser(User user); 编写Mapper XML映射文件 useGeneratedKeystrue指示MyBatis在执行INSERT操作后使用JDBC的getGeneratedKeys()方法获取数据库自动生成的主键值。 keyPropertyid指定获取到的自增主键值应被赋给传入映射语句的参数对象如User的特定属性如id实现主键值的自动回填。 两者结合使用确保在插入新记录后自动生成的主键能被无缝地赋给对应的Java对象属性简化了主键管理与后续业务逻辑的处理。 !--useGeneratedKeys设置使用自增的主键-- !--keyProperty因为增删改有统一的返回值是受影响的行数 因此只能将获取的自增的主键放在传输的参数user对象的某个属性中-- insert idinsertUser useGeneratedKeystrue keyPropertyidinsert into user values (null,#{name},#{age},#{sex}); /insert 测试输出 Test public void test(){SqlSession sqlSession SqlSessionUtils.getSqlSession();SQLMapper mapper sqlSession.getMapper(SQLMapper.class);User user new User(null, 李四, 23, 男);int i mapper.insertUser(user);if (i 0) {System.out.println(插入成功);System.out.println(user);} else {System.out.println(插入失败);} }
http://www.hkea.cn/news/14475535/

相关文章:

  • 免费网站推荐货源华泰保险公司官方网站
  • 静态网站开发课程wordpress设置邮箱
  • 旅游电子商务网站建设论文wordpress 随机图文
  • 电子商务网站建设实训报告南昌开发公司
  • 网站建设如何增加流量如何做一个论坛网站
  • 门户网站建设公司价位资源网站优化排名
  • 工作室做网站wordpress用户密码
  • 移动端网站排名山西建设网站的公司
  • 网站开发实施方案进度wordpress文章只显示题目
  • 做公寓酒店跟网站合作有什么技巧耐克电子商务网站建设
  • 湘潭做网站出色磐石网络台州网站建设服务
  • 绿色在线网站动态个人网站模板
  • 3个典型网站建设公司建站开始的前6个月多少外链最合适
  • 网站设计的公司如何选深圳网站建设网站制作
  • 商业网站开发选题的目的asp网站发布ftp
  • 建设企业网站的需要多长时间超级优化还原
  • 南京市英语网站建设淄博网站建设设计公司
  • 湛江网站建设公司建设银行河北省分行官方网站
  • 国家企业信息公示网查询全国官网seo自己做网站吗
  • 如何使网站做的更好团建网站建设
  • 网站进度条代码wordpress标签前缀
  • 成都 网站建设 公司wordpress 打卡
  • 深圳企业网站制作企业在家里怎样做网站
  • 网站建设需要提供什么资料凡科抽奖
  • 好网站门户网站建设与运行
  • 家纺网站建设flash网站的优点和缺点
  • 响应式网站开发教程湖北外贸网站建设费用
  • 国内建筑设计网站怎么看网站是不是h5做的
  • 营销型网站建设供货商网站建设公司大全
  • wordpress个人电脑搭建seo网站设计费用