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

网站建设费用 做个网站要多少钱手机网站怎么做淘宝客

网站建设费用 做个网站要多少钱,手机网站怎么做淘宝客,建站平台 在线提交表格功能,动画设计需要学什么软件有哪些5、MyBatis获取参数值的两种方式 MyBatis获取参数值的两种方式#xff1a;${} 和 #{} ${} 的本质就是字符串拼接#xff0c; #{} 的本质就是占位符赋值 ${} 使用字符串拼接的方式拼接sql#xff0c;若为字符串类型或日期类型的字段进行赋值时#xff0c;需要手动加单引号${} 和 #{} ${} 的本质就是字符串拼接 #{} 的本质就是占位符赋值 ${} 使用字符串拼接的方式拼接sql若为字符串类型或日期类型的字段进行赋值时需要手动加单引号但是#{}使用占位符赋值的方式拼接sql此时为字符串类型或日期类型的字段进行赋值时可以自动添加单引号 5.1、单个字面量类型的参数 若mapper接口中的方法参数为单个的字面量类型 此时可以使用 ${} 和 #{} 以任意的名称获取参数的值注意${} 需要手动加单引号 UserMapper.java package com.fan.mybatis.mapper;import com.fan.mybatis.pojo.User; /*** MyBatis获取参数值的两种方式#{} 和 ${}* #{}的本质是占位符${}的本质是字符串拼接* 1、若mapper接口方法的参数为单个的字面量类型* 此时可以通过#{} 和 ${}以任意的内容获取参数值一定要注意${}的单引号问题 */public interface UserMapper {/*** 根据用户名查询用户信息* param username* return*/User getUserByUsername(String username); }UserMapper.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.fan.mybatis.mapper.UserMapperselect idgetUserByUsername resultTypeUserselect * from t_user where username #{username}/select /mapperParameterTest.java package com.fan.mybatis;import com.fan.mybatis.mapper.UserMapper; import com.fan.mybatis.pojo.User; import com.fan.mybatis.utils.SqlSessionUtils; import org.apache.ibatis.session.SqlSession; import org.junit.Test;public class ParameterTest {Testpublic void testGetUserByUsername(){SqlSession sqlSession SqlSessionUtils.getSqlSession();UserMapper mapper sqlSession.getMapper(UserMapper.class);User user mapper.getUserByUsername(admin);System.out.println(user);} }运行控制台打印输出如下 DEBUG 02-24 17:35:24,407 Preparing: select * from t_user where username ? (BaseJdbcLogger.java:137) DEBUG 02-24 17:35:24,426 Parameters: admin(String) (BaseJdbcLogger.java:137) DEBUG 02-24 17:35:24,442 Total: 1 (BaseJdbcLogger.java:137) User{id1, username‘admin’, password‘123456’, age23, gender‘男’, email‘12345qq.com’} 可以看到映射文件中的 #{} 变为? #{} 被当做占位符。传过来的参数是admin查询出来1条数据。 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.fan.mybatis.mapper.UserMapperselect idgetUserByUsername resultTypeUserselect * from t_user where username #{name}/select /mapper将#{usenrame}变为#{name} , 运行可以看到查询出来的结果。 在mybatis传递参数的过程不知道传递的参数叫什么名字只知道传递的值是 admin所以传递参数值跟#{}里的参数名字没有关系。 建议#{}里的参数名字和传递的参数名一样。 ${}测试 错误写法${username} ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.fan.mybatis.mapper.UserMapperselect idgetUserByUsername resultTypeUser!--select * from t_user where username #{username}--select * from t_user where username ${username}/select /mapper可以看到 admin是一个字符串传入sql中没有加引号。不加单引号会被当做字段来解析 Unknown column ‘admin’ in ‘where clause’ where字句中有一个不认识的列/字段 admin #{}执行sql的时候占用的是; ${} 执行sql的时候是直接拼接在sql中的。 正确写法‘${usenrame}’ ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.fan.mybatis.mapper.UserMapperselect idgetUserByUsername resultTypeUser!--select * from t_user where username #{username}--select * from t_user where username ${username}/select /mapper${}里不能写数值纯数字是可以运算的。 5.2、多个字面量类型的参数 若mapper接口中的方法参数为多个时 此时MyBatis会自动将这些参数放在一个map集合中以arg0, arg1…为键以参数为值以param1, param2 … 为键以参数为值因此只需要通过${} 和 #{} 访问map集合的键就可以获取相应的值注意${} 需要手动加单引号 UserMapper.java package com.fan.mybatis.mapper;import com.fan.mybatis.pojo.User;/*** Date: 2023/02/24* Author: fan* Description:* MyBatis获取参数值的两种方式#{} 和 ${}* #{}的本质是占位符${}的本质是字符串拼接* 1、若mapper接口方法的参数为单个的字面量类型* 此时可以通过#{} 和 ${}以任意的内容获取参数值一定要注意${}的单引号问题* 2、若mapper接口的方法的参数为多个的字面量类型* 此时MyBatis会将参数放在map集合中以两种方式存储数据* a 以arg0,arg1,...为键以参数为值* b 以param1,param2,...为键以参数为值* 因此只需要通过#{}和${}访问map集合的键就可以获取相对应的值一定要注意${}的单引号问题*/ public interface UserMapper {/*** 验证登录* param username* param password* return*/User checkLogin(String username,String password); }UserMapper.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.fan.mybatis.mapper.UserMapperselect idcheckLogin resultTypeUserselect * from t_user where username #{username} and password #{password}/select /mapperParameterTest.java Testpublic void testCheckLogin(){SqlSession sqlSession SqlSessionUtils.getSqlSession();UserMapper mapper sqlSession.getMapper(UserMapper.class);User user mapper.checkLogin(admin,123456);System.out.println(user); }运行控制台报错 org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.apache.ibatis.binding.BindingException: Parameter ‘username’ not found. Available parameters are [arg1, arg0, param1, param2] ### Cause: org.apache.ibatis.binding.BindingException: Parameter ‘username’ not found. Available parameters are [arg1, arg0, param1, param2] 可以看到sql语句没有输出PersistenceException是配置文件解析错误BindingException是绑定参数时出现的异常。 Parameter ‘username’ not found. 参数username没有找到。 Available parameters are [arg1, arg0, param1, param2] 可用的参数时arg1, arg0, param1, param2。可参照此方案进行修改。 正确的写法 方式一 UserMapper.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.fan.mybatis.mapper.UserMapperselect idcheckLogin resultTypeUserselect * from t_user where username #{arg0} and password #{arg1}/select /mapper运行可以正常输出信息查询到用户信息。 方式二 UserMapper.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.fan.mybatis.mapper.UserMapperselect idcheckLogin resultTypeUser!--select * from t_user where username #{arg0} and password #{arg1}--select * from t_user where username #{param1} and password #{param2}/select /mapper运行可以正常输出信息查询到用户信息。 UserMapper.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.fan.mybatis.mapper.UserMapperselect idcheckLogin resultTypeUser!--select * from t_user where username #{arg0} and password #{arg1}--!--select * from t_user where username #{param1} and password #{param2}--!--select * from t_user where username ${arg0} and password ${arg0}--select * from t_user where username ${param1} and password ${param2}/select /mapper如果当前参数有两个时mybatis会自动把这两个参数放在一个map集合中的。放在map集合中会以两种方式来存储数据。 第一种方式以arg0,arg1为键以参数值为值 第二种方式以parma1,param2为键以参数值为值。 相当于从map集合中访问存储的数据。通过map中的键访问对应的值。 5.3、map集合类型的参数 若mapper解耦中的方法需要的参数为多个时此时可以手动创建map集合将这些数据放在map中 UserMapper接口 package com.fan.mybatis.mapper;import com.fan.mybatis.pojo.User;/*** 3、若mapper接口方法的参数为map集合类型的参数* 只需要通过#{}和${}访问map集合的键就可以获取相对应的值一定要注意${}的单引号问题*/ public interface UserMapper {/*** 添加用户信息* param user*/void insertUser(User user); }ParameterTest.java Test public void testCheckLoginByMap(){SqlSession sqlSession SqlSessionUtils.getSqlSession();UserMapper mapper sqlSession.getMapper(UserMapper.class);MapString,Object map new HashMap();map.put(username,admin);map.put(password,123456);User user mapper.checkLoginByMap(map);System.out.println(user); }UserMapper.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.fan.mybatis.mapper.UserMapperselect idcheckLoginByMap resultTypeUserselect * from t_user where username #{username} and password #{password}/select /mapper运行测试类 5.4、实体类类型的参数 添加用户信息 UserMapper接口 package com.fan.mybatis.mapper;import com.fan.mybatis.pojo.User;/*** 4、若mapper接口方法的参数为实体类类型的参数* 只需要通过#{}和${}访问是实体类中的属性名就可以获取相对应的属性值一定要注意${}的单引号问题* 属性名只跟getXxx和setXXX的方法名有关系把set和get去掉剩余的字母首字母小写就是当前的属性名*/ public interface UserMapper {/*** 添加用户信息* param user*/void insertUser(User user); }ParameterTest.java Test public void testInsertUser(){SqlSession sqlSession SqlSessionUtils.getSqlSession();UserMapper mapper sqlSession.getMapper(UserMapper.class);User user new User(null,root,123456,33,女,123qq.com);mapper.insertUser(user); }运行测试 5.5、使用Param注解标识参数 可以通过Param注解标识mapper接口中的方法参数 此时会将这些参数放在map集合中以Param注解的value属性值为键以参数为值以param1,param2…为键以参数为值只需要通过$ ${}需要手动加单引号。 User checkLoginByParam(Param(username) String username, Param(password) String password); 加上Param(“username”)后mybatis仍然会将两个参数放进map中放进map中的键就是Param括号中的username和password UserMapper接口 package com.fan.mybatis.mapper;import com.fan.mybatis.pojo.User; import org.apache.ibatis.annotations.Param;/*** 5、可以在mapper接口方法的参数上设置Param注解* 此时MyBatis会将这些参数放在map中以两种方式进行存储* a 以Param注解的value属性值为键以参数为值* b 以param1,param2...为键以参数为值* 只需要通过#{}和${}访问map集合的键就可以获取相对应的值一定要注意${}的单引号问题。*/ public interface UserMapper {/*** 验证登录使用Param* param username* param password* return*/User checkLoginByParam(Param(username) String username, Param(password) String password); }UserMapper.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.fan.mybatis.mapper.UserMapper!-- User checkLoginByParam(Param(username) String username, Param(password) String password); --select idcheckLoginByParam resultTypeUserselect * from t_user where username #{username} and password #{password}/select/mapperParameterTest.java Test public void testCheckLoginByParam(){SqlSession sqlSession SqlSessionUtils.getSqlSession();UserMapper mapper sqlSession.getMapper(UserMapper.class);User user mapper.checkLoginByParam(admin,123456);System.out.println(user); }运行
http://www.hkea.cn/news/14446659/

相关文章:

  • 常用网站开发软件6企业网站建立意义何在
  • 苏州网站建设软件收费关于网站建设管理的通知
  • 网站建设的美图网店推广方法和技巧
  • seo点击排名软件哪家好网站建设和网络优化请示
  • ppt做的最好的网站四川平昌县建设局网站
  • 南宁网站制作定制如何用ftp登陆网站
  • 福州网站设计哪家好网站开发用盗版犯法
  • 成都网络推广网站奉贤网站建设推广
  • 专业建设标准搜易网优化的效果如何
  • 济南专业做网站公司哪家好南昌制作网站的公司吗
  • 纯静态网站开发如何在别人的网站模板上加兼容
  • 网站域名快速备案大连 找人做网站
  • asp.net网站开发教程 pdf做技能培训和那个网站合作好
  • 辽宁建设工程信息网官方网站大连白云小学网站建设
  • 上海民政网站相关建设情况网络 设计
  • 模板网站有哪几类电子商务网站平台建设目标
  • 常州企业网站建设价格网站开发与应用就业方向
  • 佛山网站建设seo优化如何恢复wordpress
  • 刷粉网站推广免费编程软件下载
  • 济南网站制作公司排名国外域名 网站备案
  • 工信部网站 备案时间成都自适应网站建设
  • 如何做vip电影解析网站网站建设哪种好
  • 如何创建一个站点wordpress 评论栏
  • 简洁企业网站源码手机版网站如何建设
  • sns网站开发企信查
  • seo网站推广是什么网站怎么优化到首页
  • 吐鲁番网站建设建筑学院官网
  • 北京康迪建设监理咨询有限公司网站6江门网站推广深圳公司
  • 重庆璧山网站制作公司推荐做p2p网站费用
  • 树莓派上怎么做网站视频制作软件排行榜