【Mybatis学习笔记】1.配置与参数

SNAPSHOT

在这里插入图片描述
在这里插入图片描述

GirlMapper.java(interface)

package com.cyk.mapper;

import com.cyk.pojo.A;
import com.cyk.pojo.B;
import com.cyk.pojo.Girl;
import org.apache.ibatis.annotations.Param;

import java.util.Map;

public interface GirlMapper {
    //根据javabean的数据引用变量插入,使用param1,param2就会报错
    int insert(Girl girl);

    Girl queryById(Long id);

    //使用注解参数查找,使用param1,param2不会报错
    Girl queryByNameFlower(@Param("name") String name, @Param("flower") String flower);

    //map即按照键值查找
    Girl queryByMap(Map<String,Object> map);

    //当数据来源于多个JavaBean
    Girl queryByAB(@Param("a") A a, @Param("b")B b);

}

GirlMapper.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.cyk.mapper.GirlMapper">

    <insert id="insert">
        insert into girl(name, flower, birthday) values (#{name},#{flower},#{birthday})
    </insert>

    <select id="queryById" resultType="com.cyk.pojo.Girl">
        select * from girl where id = #{id};
    </select>

    <select id="queryByNameFlower" resultType="com.cyk.pojo.Girl">
        select * from girl where name = #{name} and flower = #{flower};
    </select>

    <select id="queryByMap" resultType="com.cyk.pojo.Girl">
        select * from girl where name = #{name} and flower = #{flower};
    </select>

    <select id="queryByAB" resultType="com.cyk.pojo.Girl">
        select * from girl where name = #{a.name} and flower = #{b.flower};
    </select>

</mapper>

MybatisUtil.java(工具类)

package com.cyk.utils;

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 java.io.IOException;
import java.io.InputStream;


public class MybatisUtil {
    private static SqlSessionFactory sqlSessionFactory;

    static {
        String resource = "mybatisConfig.xml";
        InputStream in = null;
        try {
            in =  Resources.getResourceAsStream(resource);
            //构建sqlSession的工厂
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(in != null){
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public static SqlSession getSession(){
        //创建能执行映射文件中sql的sqlSession
        return sqlSessionFactory.openSession();
    }
}

测试类

package com.cyk;

import com.cyk.mapper.GirlMapper;
import com.cyk.pojo.A;
import com.cyk.pojo.B;
import com.cyk.pojo.Girl;
import com.cyk.utils.MybatisUtil;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class Test1 {

    @Test
    public void ml(){
        SqlSession sqlSession = MybatisUtil.getSession();
        GirlMapper mapper = sqlSession.getMapper(GirlMapper.class);

        Girl girl = new Girl();
        girl.setName("linxinru");
        girl.setFlower("huojianhua");
        girl.setBirthday(new Date());

        mapper.insert(girl);
        sqlSession.commit();

        sqlSession.close();
    }

    @Test
    public void m2(){
        SqlSession sqlSession = MybatisUtil.getSession();
        GirlMapper mapper = sqlSession.getMapper(GirlMapper.class);

        Girl girl = mapper.queryById(1L);

        System.out.println(girl.getName());

        sqlSession.close();
    }

    @Test
    public void m3(){
        SqlSession sqlSession = MybatisUtil.getSession();
        GirlMapper mapper = sqlSession.getMapper(GirlMapper.class);

        Girl girl = mapper.queryByNameFlower("如花", "霍建花");

        System.out.println(girl.getId());

        sqlSession.close();
    }

    @Test
    public void m4(){
        SqlSession sqlSession = MybatisUtil.getSession();
        GirlMapper mapper = sqlSession.getMapper(GirlMapper.class);

        Map<String,Object> map = new HashMap<>();
        map.put("name","如花");
        map.put("flower","霍建花");

        Girl girl = mapper.queryByMap(map);
        System.out.println(girl.getBirthday());

        sqlSession.close();
    }

    @Test
    public void m5(){
        SqlSession sqlSession = MybatisUtil.getSession();
        GirlMapper mapper = sqlSession.getMapper(GirlMapper.class);

        A a = new A();
        a.setName("如花");

        B b = new B();
        b.setFlower("霍建花");

        Girl girl = mapper.queryByAB(a, b);
        System.out.println(girl.getBirthday());

        sqlSession.close();
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43046082/article/details/88915874