mybatis

mybaits是什么东西昵?

在学习Java中一般与springMVC、struts2+spring+mybatis联合开发

以下是mybaits的一个查询方式

接口

package cn.jcet.mapper;

import java.util.List;

import cn.jcet.domian.Orders;
import cn.jcet.domian.User;

public interface OrdersMapper {

    //查询商品订单
    public List<Orders> findByAll();
    
    //一对一查询
    public List<Orders> selectOrders();

    //多对多关系查询
    public List<User> selectUser();

}

 

mybatis的xml配置sql文件

<?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="cn.jcet.mapper.OrdersMapper">
	
	<!-- 手动封装实体对应id -->
	<resultMap type="Orders" id="orders">
		<result column="user_id" property="userId"/>
	</resultMap>
	<!-- 
	查询全部商品订单 -->
	<select id="findByAll" resultMap="orders" >
		select id,user_id,number,createtime,note from orders;
	</select>
	
	<!-- //一对一查询
	public List<Orders> selectOrders();
	手动封装实体
	 -->
	 <resultMap type="Orders" id="order">
		<result column="id" property="id"/>
		<result column="user_id" property="userId"/>
		<result column="number" property="number"/> 
		<!-- 一对一关系映射  -->
	 	<association property="user" javaType="User">
			<id column="user_id" property="id"/>
			<result column="username" property="username"/>
		</association> 
	</resultMap>
	 <select id="selectOrders" resultMap="order">
	 SELECT 
	 o.id,
	 o.user_id,
	 o.number,
	 o.createtime,
	 u.username
	 FROM orders o 
	 LEFT JOIN USER u ON 
	 o.user_id=u.id
	</select>
	
	<!-- 多对多关系映射 
	public List<User> selectUser();
	-->
	<resultMap type="User" id="user">
		<id column="id" property="id"/>
		<result column="username" property="username"/>
		<!-- 多对多 存储集合 -->
		<collection property="orders" ofType="Orders">
			<id column="user_id" property="id"/>
			<result column="number" property="number"/>
		</collection>
	</resultMap>
	<select id="selectUser" resultMap="user">
		 SELECT 
			 o.id,
			 o.user_id,
			 o.number,
			 o.createtime,
			 u.username
			 FROM  USER u
			 LEFT JOIN  orders o
			 ON o.user_id=u.id
	</select>
	
	
	
		
</mapper>

  

测试mybatis查询语句

package cn.jcet.mybaits;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import cn.jcet.domian.Orders;
import cn.jcet.domian.User;
import cn.jcet.mapper.OrdersMapper;

public class OrdersMapperTest {

    
    
    @Test
    public void demo() throws IOException {
        String resources = "sqlMapConfig.xml";
        //创建工厂
        InputStream in = Resources.getResourceAsStream(resources);
        
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
        
        SqlSession openSession = sessionFactory.openSession();
        
        OrdersMapper mapper = openSession.getMapper(OrdersMapper.class);
        
        List<Orders> list = mapper.findByAll();
        for (Orders orders : list) {
            System.out.println(orders);
        }
    }
    
    
    
    @Test
    //一对一测试
    public void demo2() throws IOException {
        String resources = "sqlMapConfig.xml";
        //创建工厂
        InputStream in = Resources.getResourceAsStream(resources);
        
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
        
        SqlSession openSession = sessionFactory.openSession();
        
        OrdersMapper mapper = openSession.getMapper(OrdersMapper.class);
        
        List<Orders> list = mapper.selectOrders();
        
        for (Orders orders : list) {
            System.out.println(orders);
        }
    }
    
    @Test
    //多对多测试
    public void demo3() throws IOException {
        String resources = "sqlMapConfig.xml";
        //创建工厂
        InputStream in = Resources.getResourceAsStream(resources);
        
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
        
        SqlSession openSession = sessionFactory.openSession();
        
        OrdersMapper mapper = openSession.getMapper(OrdersMapper.class);
        
        List<User> selectUser = mapper.selectUser();
        for (User user : selectUser) {
            System.out.println(user);
        }
    }
}

 

posted @ 2018-09-19 14:50  session_鱼羊  阅读(191)  评论(0编辑  收藏  举报