NutzCN Logo
问答 仿mybatis mapper 接口,有意义吗?
发布于 3026天前 作者 wendal 2878 次浏览 复制 上一个帖子 下一个帖子
标签: dao mybatis

隔壁beetl群在讨论,一时兴起写了段demo实现,已上传。

先上两段代码

接口类

package org.nutz.dao.mapper;

import java.util.List;
import net.wendal.nutzbook.bean.User;

public interface UserMapper {

	User fetchById(int id);
	List<User> queryByName(String name);
	User fetchBy(int id); // 基于局部变量参数表+jdk参数名表
}

测试类

	@Test
	public void testMap() {
		// UserMapper 只是个接口
		UserMapper us = SimpleMapper.map(ioc.get(Dao.class), UserMapper.class);
		
		User user = us.fetchById(1);
		assertNotNull(user);
		
		List<User> list = us.queryByName("admin");
		assertNotNull(list);
		assertTrue(list.size() > 0);
		
		assertEquals(user.getName(), us.fetchBy(1).getName());
	}

问题是,这东西一旦参数多一个少一个,就得在接口加方法,看着很美(sure?),但不实用吧?

5 回复

没啥大用处吧
感觉现在pojo 已经够用了

@wendal mybatis mapper可以把map当映射类,这样就可以不用写pojo,而且map是一个通用的pojo,字段名和字段值做键值对。这样再写一个通用的dao,做map的增删查改,传表名、map键值对这样就会省好多代码,通用的pojo(map),通用的dao,当然map做映射也会存在一些弊端,比如字段名容易写错,可我觉得这样的话,我们就不用写pojo和dao,只需要写service和controller。(我估计Jfinal的dao操作就是这样的)
不知道这样会不会有什么不好,望兽兽给予意见。如果可以的话,我也建议nutz支持这种通用map映射,通用dao操作,供我们做选择。

@qq_060f38e8 NutDao一直都支持map操作,你没仔细看Dao接口

@wendal 嗯嗯,好哒,谢谢兽兽!

添加回复
请先登陆
回到顶部