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

快站怎么搭建淘客链接凡客数据

快站怎么搭建淘客链接,凡客数据,南阳旅游网站建设现状,房产中介哪家口碑比较好在MyBatis中,参数处理是非常关键的部分,它负责将传入的参数正确映射到SQL语句中 单个简单类型参数 简单类型对于mybatis来说都是可以自动类型识别的: 也就是说对于mybatis来说,它是可以自动推断出ps.setXxxx()方法的。ps.setSt…

  在MyBatis中,参数处理是非常关键的部分,它负责将传入的参数正确映射到SQL语句中 

单个简单类型参数

简单类型对于mybatis来说都是可以自动类型识别的:

  • 也就是说对于mybatis来说,它是可以自动推断出ps.setXxxx()方法的。ps.setString()还是ps.setInt()。它可以自动推断。

简单类型包括:

  • byte short int long float double char

  • Byte Short Integer Long Float Double Character

  • String

  • java.util.Date

  • java.sql.Date

参数自动绑定
在执行 SQL 时,MyBatis 会根据参数的类型自动绑定到 PreparedStatement 对应的 setXxx() 方法。
示例:

public interface UserMapper {User getUserById(int id);
}

SQL 映射文件:

<select id="getUserById" resultType="User">SELECT * FROM user WHERE id = #{id}
</select>

在执行时,MyBatis 自动判断 idint 类型,因此会使用 PreparedStatement.setInt() 方法。

多个参数处理(使用@Param注解)

如果一个方法有多个参数,你可以使用 @Param 注解给参数命名,方便在 SQL 中引用:

示例:

   /*** 根据name和age查询* @param name* @param age* @return*/List<Student> selectByNameAndAge(@Param(value="name") String name, @Param("age") int age);

 value值可以省略不写

SQL映射文件:

    <select id="selectByNameAndAge" resultType="student">select * from t_student where name = #{name} and age = #{age}</select>

Java对象作为参数

查找:

你也可以将 Java 的对象传递给 MyBatis 方法,MyBatis 会自动将对象的属性与 SQL 中的字段进行映射:

public interface UserMapper {User getUserByObject(User user);
}

SQL映射文件:

<select id="getUserByObject" resultType="User">SELECT * FROM user WHERE name = #{name} AND age = #{age}
</select>

这里 #{name}#{age} 会自动对应 User 对象中的 nameage 属性。

使用pojo类保存数据 :

/*** 保存学生数据* @param student 实体类pojo* @return*/int insertPojo(Student student);

sql映射文件:

<!--    pojo#{}里面写的是属性名--><insert id="insertPojo" parameterType="mybatis.pojo.Student">insert into t_student (id, name, age, sex, birth, height)values (#{id}, #{name}, #{age}, #{sex}, #{birth}, #{height})</insert>

 测试类:

 @Testpublic void testInsertPojo(){Student student = new Student("小李子",23,1.67,new Date(),'男');SqlSession sqlSession = SqlSessionUtil.openSession();StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);mapper.insertPojo(student);sqlSession.commit();sqlSession.close();}

易错:

注意这里我的student类中存在不含有id的构造方式(也就是构造方式的重载),因为我id设置了自增主键,所以可以不需要指定id值,这里不能传入null会报错!!! 

Map 作为参数 

查找 

/**
* 根据name和age查询
* @param paramMap
* @return
*/
List<Student> selectByParamMap(Map<String,Object> paramMap);

测试类: 

@Test
public void testSelectByParamMap(){// 准备MapMap<String,Object> paramMap = new HashMap<>();paramMap.put("nameKey", "张三");paramMap.put("ageKey", 20);List<Student> students = mapper.selectByParamMap(paramMap);students.forEach(student -> System.out.println(student));
}

sql映射文件:

<select id="selectByParamMap" resultType="student">select * from t_student where name = #{nameKey} and age = #{ageKey}
</select>

这种方式是手动封装Map集合,将每个条件以key和value的形式存放到集合中。然后在使用的时候通过#{map集合的key}来取值。

通过map来保存数据到表格中

  /*** 保存学生数据* @param paramMap 使用map进行传参*/void insertStudent(Map<String, Object> paramMap);

 sql映射文件:

<!--这里设置自增主键(创建表格时也需要声明是自增主键),id值就可以传null值了,否则会报错--><insert id="insertStudent" parameterType="map" useGeneratedKeys="true" keyProperty="id">insert into t_student (id, name, age, sex, birth, height)values (null,#{name}, #{age}, #{sex}, #{birth}, #{height})</insert>

java测试类: 

    public void testInsertMapParam() {// 准备 MapMap<String, Object> paramMap = new HashMap<>();paramMap.put("name", "张三");paramMap.put("age", 20);paramMap.put("sex", '女'); paramMap.put("birth", new java.sql.Date(new Date().getTime()));  // 使用 java.sql.DateparamMap.put("height", 1.85);SqlSession sqlSession = SqlSessionUtil.openSession();StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);mapper.insertStudent(paramMap);sqlSession.commit();sqlSession.close();}

易错点:

如果不设置自增主键而且sql映射文件上面id值为null就会报错!!所以一定要记得设置自增主键

http://www.yayakq.cn/news/850956/

相关文章:

  • 诊所网站模板网站前期推广
  • h5微信网站开发山东泰安天气预报一周
  • 长春网站建设服务flashfxp连接wordpress
  • 个人网站 审批推广网站的方法
  • 企业建站公司平台微信公众号运营要求
  • php和html5做网站烟台企业展厅设计公司
  • 设计建设网站公司网站网站ui标准
  • 上海网站建设哪里便宜自建购物网站
  • 书怎么做pdf下载网站网站建设管理岗位职责
  • 一元购物网站怎么做链接转换短网址
  • 成都最好的网站建设天津网站搭建
  • 网站配置域名解析莱芜金点子广告电子版最新一期
  • 电脑上怎么建设网站网站开发制作流程
  • 做的网站里面显示乱码怎么解决方法中国最近新闻消息
  • 广州网站公司推荐怎样开通微信公众号平台
  • 购物网站排名前100微信公众号怎么制作网页
  • app网站软件深圳人才市场
  • 网页设计模板网站图片学做系统的网站
  • 做网站一般都是那些人 会做聚美优品网站建设的目标
  • 网站建设白沟wordpress 编辑器全屏
  • 便利的龙岗网站设计整站优化系统
  • 做p2p网站的公司佛山做网站制作
  • dwcc网站前台脚本怎么做音频网页编程是什么
  • 如何创建免费网站wordpress 肖
  • 济宁市任城区建设局网站蓝牙 技术支持 东莞网站建设
  • 网站创建桌面快捷方式东莞常平二手房价格
  • 留号码的广告网站网站建设基本流程图
  • 网站怎么做免费推广方案网站开发安全需求
  • 网站建设在哪里推广loop wordpress
  • 创建一个新的公司网站做网站 业务流程图