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

区块链交易网站开发网络热词2021流行语

区块链交易网站开发,网络热词2021流行语,自己怎么开发网站,如何写一个微信小程序在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.yidumall.com/news/85441.html

相关文章:

  • 网站顶部flash网站推广的方式有
  • 中信国际建设公司网站制作网站要多少费用
  • 各类武汉手机网站建设北京网络营销公司
  • wordpress延迟加载插件郑州官网关键词优化公司
  • 安徽网新科技有限公司怎么样seo课程培训入门
  • 营销型网站的重要特点成都seo达人
  • 网站开发合同范本大全磁力天堂
  • 深圳网站建设联雅网络网站在线优化检测
  • 青建设厅官方网站海省2020年可用好用的搜索引擎
  • 潍坊住房和城乡建设厅网站做直销去哪里找客户
  • 网站开发准备百度快照首页
  • app网站开发要多少钱网站推广方式组合
  • wordpress繁体网络优化行业的发展前景
  • 不建网站可不可以做cpa网络营销方案策划书
  • 做影视网站对宽带要求互联网广告营销方案
  • 推进政府网站集约化建设工作百度在线搜索
  • mac搭建本地wordpressseo顾问
  • 做一公司网站网络关键词优化方法
  • 有哪些程序做的网站营业推广名词解释
  • 用在线网站做的简历可以吗2021时事政治热点50条
  • 网址你会感谢我的郑州粒米seo外包
  • 嘉兴高端网站定制合肥seo整站优化网站
  • 西昌网站建设百度推广账号
  • 使用wordpress搭建网站自己做网站的流程
  • 汽车贸易网站建设方案石家庄谷歌seo
  • 曰本免费网站品牌宣传推广策划方案
  • 网站建设waocc找客户资源的网站
  • wordpress4.7.0下载画质优化app下载
  • 网站开发语言哪种简单app注册推广平台
  • web做花店网站页面seo去哪里学