mybatis單表的各種查詢方式

 

目錄

列:單表的各種查詢方式

創建po對象

dao包實現--Mapper動態代理方式

sql映射文件--Goods.xml

工具類Utils.java

測試--MyTest.java


 

列:單表的各種查詢方式

mybatis的全局配置文件--sqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 配置數據源、事務、連接池 -->
<configuration>
	<properties resource="db.properties"></properties><!-- 讀取屬性文件 -->

	<typeAliases>
		<!-- 單個別名 -->
		<!-- <typeAlias type="com.iotek.po.Goods" alias="goods"/> -->
		<!--批量別名:掃描整個包下的類,類的別名就是類名(首字母大寫或者小寫都可以) -->
		<package name="com.demo.po" />
		<package name="com.demo2.po" />		
	</typeAliases>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<!-- 配置數據源 -->
			<dataSource type="POOLED">
				<property name="driver" value="${driver}" />
				<property name="url" value="${url}" />
				<property name="username" value="${username}" />
				<property name="password" value="${password}" />
			</dataSource>
		</environment>
	</environments>
	<!-- 加載sql語句映射文件 -->
	<mappers>
		<mapper resource="com/demo/po/Goods.xml" />	
	</mappers>
</configuration>

創建po對象

dao包實現--Mapper動態代理方式

public interface GoodMapper {
	public Goods queryGoodsById(int id);//1通過id查詢
    public List<Goods> queryGoodsByGoodsCondition(Goods goods);	//2查詢價格範圍
    public Goods queryGoodsByMap(Map<String,Object> map);//3map查詢多個字段
    public Goods queryGoodsByIdAndGoodName(Integer id,String goodName);//4查詢多個字段
    public Goods queryGoodsByIdAndGoodName2(@Param("id")Integer id,@Param("goodName")String goodName);//5查詢多個字段
    public Goods queryGoodsByIdAndGoods(int id, @Param("mygood")Goods goods);//6 通過對象查詢
    public Goods queryGoodsByIdAndList(Integer id,@Param("list")List<Goods> goods);//7通過對象列表
}

sql映射文件--Goods.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.demo.dao.GoodMapper">
    <!-- 1查詢 通過id查詢 -->
	<select id="queryGoodsById" parameterType="int"	resultType="goods">
		select * from goods where id=#{id}
	</select>
	<!-- 2查詢 查詢商品價格區間 -->
	<select id="queryGoodsByGoodsCondition" parameterType="Goods" resultType="Goods">
	     select * from goods where price between #{goodsCondition.minPrice} and #{goodsCondition.maxPrice}
	</select>
	<!--3查詢多個字段 #{}取map集合的key名 -->
	<select id="queryGoodsByMap" parameterType="hashmap" resultType="Goods" >
	      select * from goods where id=#{id} and goodName=#{aaa}
	</select>
	<!-- 4查詢多個字段 #{}取map集合的key,只不過key默認是param1...paramN	  -->
	<select id="queryGoodsByIdAndGoodName" parameterType="hashmap" resultType="Goods">
	 select * from goods where id=#{param1}  and goodName=#{param2}
	</select>
	<!-- 5查詢多個字段	  -->
	<select id="queryGoodsByIdAndGoodName2" parameterType="hashmap" resultType="Goods">
	 select * from goods where id=#{id}  and goodName=#{goodName}
	</select>
	<!-- 6查詢多個字段	  -->
	<select id="queryGoodsByIdAndGoods" parameterType="hashmap" resultType="Goods">
	 select * from goods where id=#{param1}  and goodName=#{mygood.goodName}
	</select>
	<!-- 7通過對象list	  -->
	<select id="queryGoodsByIdAndList" parameterType="hashmap" resultType="Goods">
	 select * from goods where id=#{param1}  and goodName=#{list[0].goodName}
	</select>
</mapper>

工具類Utils.java

com.demo.tools

public class Utils {
	private static SqlSessionFactory sqlSessionFactory;

	public static SqlSessionFactory getSqlSessionFactory() throws Exception {
		// 1獲取全局配置文件
		InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
		// 2創建SqlSessionFactory工廠類
		sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		return sqlSessionFactory;
	}
}

測試--MyTest.java

	/**
	 * 1查詢 通過id查詢
	 * @throws Exception
	 */
	@Test
      public void queryGoodsById() throws Exception{
    	  SqlSession sqlSession=Utils.getSqlSessionFactory().openSession();
    	  GoodMapper gm= sqlSession.getMapper(GoodMapper.class);//Mapper動態代理
    	  System.out.println("gm=="+gm);
    	  Goods goods=gm.queryGoodsById(4);
    	  System.out.println(goods);
      }
	  /**
	   * 2查詢 查詢商品價格區間 
	   */
	  @Test
      public void queryGoodsByGoodsCondition() throws Exception{
    	  SqlSession sqlSession=Utils.getSqlSessionFactory().openSession();
    	  GoodMapper goodMapper= sqlSession.getMapper(GoodMapper.class);//Mapper動態代理
    	  System.out.println("goodMapper=="+goodMapper);
    	  Goods goods=new Goods();
          GoodsCondition goodsCondition=new GoodsCondition(2000.0, 1000.0);
          goods.setGoodsCondition(goodsCondition);
          List<Goods> a=goodMapper.queryGoodsByGoodsCondition(goods);
          for (Goods goods2 : a) {
			System.out.println(goods2);
		}
      }
	  
	  /**
	   * 3查詢多個字段(通過id和名稱查詢)
	   */
	  @Test
      public void queryGoodsByMap() throws Exception{
    	  SqlSession sqlSession=Utils.getSqlSessionFactory().openSession();
    	  GoodMapper goodMapper= sqlSession.getMapper(GoodMapper.class);//Mapper動態代理(接口代理對象)
    	  System.out.println("goodMapper=="+goodMapper);
    	  
    	  Map<String, Object> map=new HashMap<String, Object>();
    	  map.put("id", 5);
    	  map.put("aaa", "bb");
    	  Goods goods=goodMapper.queryGoodsByMap(map);
    	  System.out.println(goods);
      }
	  /**
	   * 4查詢多個字段(通過id和名稱查詢)
	   */
	  @Test
      public void queryGoodsByIdAndGoodName() throws Exception{
    	  SqlSession sqlSession=Utils.getSqlSessionFactory().openSession();
    	  GoodMapper goodMapper= sqlSession.getMapper(GoodMapper.class);//Mapper動態代理(接口代理對象)
    	  System.out.println("goodMapper=="+goodMapper);
    	 
    	  Goods goods=goodMapper.queryGoodsByIdAndGoodName(5, "bb");
    	  System.out.println(goods);
      }
	  /**
	   * 5查詢多個字段(通過id和名稱查詢)
	   */
	  @Test
      public void queryGoodsByIdAndGoodName2() throws Exception{
    	  SqlSession sqlSession=Utils.getSqlSessionFactory().openSession();
    	  GoodMapper goodMapper= sqlSession.getMapper(GoodMapper.class);//Mapper動態代理(接口代理對象)
    	  System.out.println("goodMapper=="+goodMapper);
    	 
    	  Goods goods=goodMapper.queryGoodsByIdAndGoodName(5, "bb");
    	  System.out.println(goods);
      }
	  /**
	   * 6查詢多個字段(通過id和名稱查詢)
	   */
	  @Test
      public void queryGoodsByIdAndGoods() throws Exception{
    	  SqlSession sqlSession=Utils.getSqlSessionFactory().openSession();
    	  GoodMapper goodMapper= sqlSession.getMapper(GoodMapper.class);//Mapper動態代理(接口代理對象)
    	  System.out.println("goodMapper=="+goodMapper);
    	 
    	 Goods goods=new Goods();
    	 goods.setGoodName("bb");
    	  Goods aa=goodMapper.queryGoodsByIdAndGoods(5, goods);
    	  System.out.println(aa);
      }
	  /**
	   * 7查詢多個字段(通過id和名稱查詢)
	   */
	  @Test
      public void queryGoodsByIdAndList() throws Exception{
    	  SqlSession sqlSession=Utils.getSqlSessionFactory().openSession();
    	  GoodMapper goodMapper= sqlSession.getMapper(GoodMapper.class);//Mapper動態代理(接口代理對象)
    	  System.out.println("goodMapper=="+goodMapper);
    	 
    	 Goods good=new Goods();
    	 good.setGoodName("bb");
    	 List<Goods>list=new ArrayList<Goods>();
    	 list.add(good);
    	  Goods aa=goodMapper.queryGoodsByIdAndList(5, list);
    	  System.out.println(aa);
      }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章