Mybatis的简单使用

1、在项目的pom文件中导入mybatis和数据库的依赖

这里导入的是oracle的依赖,要对应实际使用的数据库的版本
        <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc8</artifactId>
            <version> 19.3.0.0 </version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.5</version>
        </dependency>

2、配置mybatis-config.xml配置文件

主要是配置好数据库的链接地址、用户名以及密码,并且把每个需要用到的Mapper配置文件的地址在<mappers>标签内注册。
<?xml version="1.0" encoding="gbk" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED"><!-- 下面就是连接数据库了-->
                <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
                <property name="url" value=""/>
                <property name="username" value=""/>
                <property name="password" value=""/>
            </dataSource>
        </environment>
    </environments>

    <!--每一个mapper.xml都需要在mybatis核心配置文件中注册!-->
    <mappers>
        <mapper resource="com/yyt/dao/IPO_NSHARES_RFQ_PF_Mapper.xml"/>
    </mappers>

</configuration>

3、创建mybatis的工具类,用来获取sqlsession实例

public class MybatisUtils {
    private static SqlSessionFactory sqlSessionFactory;

    /**
     * 获取sqlSessionFactory对象
     */
    static {
        try{
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        }catch (IOException e){
            e.printStackTrace();
        }
    }

    /**
     * 获取sqlsession实例
     * @return
     */
    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession();
    }

}

4、编写操作数据库的接口

public interface TEST_Mapper {

    /**
     * 全量查询
     * @return
     */
    public List<TEST> getAllList();

    /**
     * 单个条件
     * @param SEC_CODE
     * @return
     */
    public List<TEST> getListBySecCode(String A);

    /**
     * 多个条件查询
     * @param map
     * @return
     */
    public List<TEST> getListByMap(Map map);

    /**
     * 关联查询
     * @param map
     * @return
     */
    public List<TESTTWO> getProductName(Map map);

}

5、接口映射文件的配置

<?xml version="1.0" encoding="gbk" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace=绑定一个对应的Mapper接口-->
<mapper namespace="com.yyt.dao.IPO_NSHARES_RFQ_PF_Mapper">
    <!--id名为接口的方法名    -->
    <select id="getAllList" resultType="com.yyt.resultBean.IPO_NSHARES_RFQ_PF" parameterType="map">
       SELECT * FROM TEST
   </select>

    <select id="getListBySecCode" resultType="com.yyt.resultBean.IPO_NSHARES_RFQ_PF" parameterType="java.lang.String">
       SELECT * FROM TEST WHERE SEC_CODE=#{SEC_CODE}
   </select>

    <select id="getListByMap" resultType="com.yyt.resultBean.IPO_NSHARES_RFQ_PF" parameterType="java.lang.String">
       SELECT * FROM TEST WHERE SEC_CODE=#{SEC_CODE} AND PRD_ID=#{PRD_ID}
   </select>

    <select id="getProductName" resultType="com.yyt.resultBean.XJJG_PRODUCT_NAME" parameterType="map">
         SELECT T1.SEC_CODE, T1.PRD_ID, T2.PRODUCT_NAME
          FROM IPO_NSHARES_RFQ_PF T1
          LEFT JOIN PR_PRODUCT T2
            ON T1.PRD_ID = T2.ID
         WHERE T1.SEC_CODE = #{SEC_CODE}
           AND T1.PRD_ID = #{PRD_ID}
    </select>


</mapper>

6、查询结果对应的实体类的创建

这一步是为了把查询的结果封装为一个实体类,每一个mapper.xml文件中的<select> 标签内的resultType都需要对应一个实体类。
package com.yyt.resultBean;

public class XJJG_PRODUCT_NAME {

    String SEC_CODE;

    String PRD_ID;

    String PRODUCT_NAME;

    public String getSEC_CODE() {
        return SEC_CODE;
    }

    public void setSEC_CODE(String SEC_CODE) {
        this.SEC_CODE = SEC_CODE;
    }

    public String getPRD_ID() {
        return PRD_ID;
    }

    public void setPRD_ID(String PRD_ID) {
        this.PRD_ID = PRD_ID;
    }

    public String getPRODUCT_NAME() {
        return PRODUCT_NAME;
    }

    public void setPRODUCT_NAME(String PRODUCT_NAME) {
        this.PRODUCT_NAME = PRODUCT_NAME;
    }

    @Override
    public String toString() {
        return "XJJG_PRODUCT_NAME{" +
                "SEC_CODE='" + SEC_CODE + '\'' +
                ", PRD_ID='" + PRD_ID + '\'' +
                ", PRODUCT_NAME='" + PRODUCT_NAME + '\'' +
                '}';
    }
}

7、测试类

public class myBatisTest {

    @Test
    public void Test(){
        //获得sqlSession对象
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        //执行Sql
        IPO_NSHARES_RFQ_PF_Mapper mapper =  sqlSession.getMapper(IPO_NSHARES_RFQ_PF_Mapper.class);
        Map map = new HashMap<String,String>();
        map.put("SEC_CODE","789456");
        map.put("PRD_ID","123789");
        List<XJJG_PRODUCT_NAME> list = mapper.getProductName(map);
        for (XJJG_PRODUCT_NAME one : list) {
            System.out.println(one.toString());
        }
        //关闭SqlSession
        sqlSession.close();

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值