MyBatis实现最最最最最最简单的条件查询
本篇文章基础配置衔接https://blog.csdn.net/H972002/article/details/159584961?spm1001.2014.3001.5502一、Mybatis条件查询1.查询数据库时大多数情况下需要按照一定条件去查询这就需要传入一些参数。2.进行条件查询前需要了解的一些前提知识:2.1基本的xml配置文件的符号了解条件查询时会用上二、使用步骤1.引入依赖和配置文件可以参考以下链接https://blog.csdn.net/H972002/article/details/159584961?spm1001.2014.3001.55022.xml中写入查询语句2.1过参数查询时需要写入一个占位符一般是#{xxx}。当然${xxx}也行不过这样写不太安全会有sql注入风险问题具体原因####歪比巴卜(本人也不太了解)2.2 这里 gt; 符号就是用到了上面xml配置文件的符号 表示 mapper namespacetestMapper select idselectUserById parameterTypeint resultTypeUser select * from user where id #{id} /select select idselectUserById02 parameterTypeint resultTypeUser select * from user where id gt; #{id} /select select idselectUserByIdAndAge resultTypeUser select * from user where id #{id} and age #{age} /select /mapper3.测试类InputStream inputStream Resources.getResourceAsStream(mybatis-config.xml); SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession sqlSessionFactory.openSession(true); ListUser users sqlSession.selectList(selectUserById02, 1); for (User user : users) { System.out.println(user); } System.out.println(); User user sqlSession.selectOne(selectUserById, 1); System.out.println(user); System.out.println(); User userMap sqlSession.selectOne(selectUserByIdAndAge, Map.of(id, 1, age, 13)); System.out.println(userMap); }这里最后一个查询使用了 Map.of()这里jdk9可以用其它版本有两种写法3.1 普通写法HashMapString, Object hashMap new HashMap();hashMap.put(id, 1);hashMap.put(age, 13);User userMap1 sqlSession.selectOne(selectUserByIdAndAge, hashMap); System.out.println(userMap1);3.2 使用匿名内部类User userMap2 sqlSession.selectOne(selectUserByIdAndAge, new HashMapString,Object(){{put(id, 1);put(age, 18);}}); System.out.println(userMap2);3.3运行结果4.补充在mybatis-config.xml中加入了typeAliases标签configuration typeAliases typeAlias typeorg.example.User aliasUser/ /typeAliases/configuration表示给接收查询到的数据实现类org.example.User起一个别名叫User。这样每次在xml中写查询语句时resultType标签里直接使用该别名就行了不用每次写一串的包名了。不过这还是不够方便在测试类中每次通过SqlSession对象调用一些方法查询时都要写入映射器中id属性值不然mybatis无法知道具体执行哪个查询语句。如果将映射器绑定到一个接口上通过接口实现查询方法会更方便。(后续更新)