Mybatis续、Mapper映射器接口规则

配置一个MyBatis的Cost。查询资费列表的。。
与上面相同。只不过单独抽出来了一个类并定义了一个静态方法来获取Sqlsession

package unity;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;


public class MyBatisUtil {
    public static SqlSession getSession(){

        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        //加载SqlMapConfig.xml文件
        String conf = "SqlMapConfig.xml";
        InputStream configStream = MyBatisUtil.class.getClassLoader().getResourceAsStream(conf);
        //获取SqlSessionFactory
        SqlSessionFactory factory =builder.build(configStream);

        //获取SqlSession
        SqlSession session = factory.openSession();

        return session;

    }
}

分页的话设置SQL语句就是

    <select id="findPage" parameterType="int" resultType="entity.Cost">
    select * from cost limit #{page},5
    </select>

如果想只查询id和name就可以单独写一个sql

<select id="findMap" resultType="Map">
    select cost_id,name from cost
    </select>

一行对象对应一个map。key是cost_id value是其值

    <select id="findMap" resultType="Map">
    select cost_id,name from cost
    </select>
    List<Map<String,Object>> maps=session.selectList("findMap");

        for(Map<String,Object> map :maps){
            System.out.println(map.get("cost_id")+"  "+map.get("name"));

        }

这里写图片描述

可以把实体类与数据库字段名不同映射

    <select id="findCost" resultMap="costmap">
    select cost_id,name,status,creatime from cost
    </select>

    <resultMap type="entity.CostBean1" id="costmap">
    <id property="id" column="cost_id"/>
    <result property="name" column="name" />
    <result property="status" column="status" />
    <result property="creatime" column="creatime" />
    </resultMap>

<!--注意ID的写法 -->

resultType默认按名称匹配装载数据

当然还可以用别名
就是在SQL语句中写

select cost_id id from cost

这个cost_id 就是数据库中的字段。但是后面的id是自己定义的bean中的属性,可以这么的用别名来实现对应。

MyBatis
1、返回数据类型
实体对象
a.属性名与字段一致 使用resulteType
b.属性名与字段不一致
给字段使用别名,使他与属性名一致(灵活一些)
使用resultMap替代resultType定义如何装载数据

Map集合
基本值

2.Mapper映射器接口规则

a.根据SQL定义的id属性当接口方法名
就是<select id=”findAll”>的这个id
b.根据SQL定义的parameterType类型当方法参数类型
c.根据SQL定义的resultType类型定义方法的返回类型
(多行使用list<泛型> ;单行使用泛型)
d.将SQL定义文件<mapper>的namespace属性指定成包名.接口名
定义一个Mapper映射器接口

package dao;

import java.util.List;
import java.util.Map;

import entity.Cost;

public interface CostDao {

    public List<Cost> findAll();

    public List<Cost> finPage(int page);

    public List<Map<String,Object>> findMap();

}
SqlSession session = MyBatisUtil.getSession();
        //测试Mapper映射接口
    CostDao costdao =   session.getMapper(CostDao.class);
//根据CostDao接口生成实现对象

        System.out.println(costdao.getClass().getName());
        List<Cost> list = costdao.findAll();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值