<table cellspacing="0" cellpadding="0"><tr><td class="t_f" id="postmessage_21150"> <span style="font-family:Helvetica, Tahoma, Arial, sans-serif;"><br> 开始喜爱mybatis基于接口的方式了。<br> 其实有两部分改动(基于官网demo做的修改): <br> <ul> <li>增加分页插件,简单易用(自我感觉良好)。</li> <li>增加一个BaseMapper,把常用的方法抽象到此接口中,避免在多个接口中重复定义(相当于常见的dao基类)。</li> </ul> 基于maven并使用内存数据库hsqldb,可直接运行junit测试。 </span> <div class="blockcode"> <div id="code_Uvt"><ol> <li>public interface BaseMapper<T> {</li> <li> String PO_KEY = "po";</li> <li> <li> T get(Serializable pk);</li> <li> <li> Page<T> getPage(@Param(PageInterceptor.PAGE_KEY) Page<T> p, @Param(PO_KEY) T obj);</li> <li>}</li> <li> </ol></div> <em onclick="copycode($('code_Uvt'));">复制代码</em> </div> <div class="blockcode"> <div id="code_DWr"><ol> <li>@RunWith(SpringJUnit4ClassRunner.class)</li> <li>@ContextConfiguration({"classpath:applicationContext.xml"}) </li> <li>public class ItemServiceTest {</li> <li> @Autowired</li> <li> ItemService service;</li> <li> <li> <li> @Test</li> <li> public void testGetItem() {</li> <li> System.out.println(service.getItem(null).getProduct());</li> <li> }</li> <li> </li> <li> @Test</li> <li> public void testGetPage() {</li> <li> Page<Item> p = new Page<Item>();</li> <li> p.setCurrentPage(1);</li> <li> p.setSize(10);</li> <li> </li> <li> Item item = new Item();</li> <li> item.setProductId("FI-SW-01");</li> <li> </li> <li> service.getPage(p, item);</li> <li> </li> <li> System.out.println(p.getTotal() " " p.getResult().size());</li> <li> </li> <li> for(Item i : p.getResult()) {</li> <li> System.out.println(i.getItemId());</li> <li> }</li> <li> }</li> <li> <li>}</li> <li> </ol></div> <em onclick="copycode($('code_DWr'));">复制代码</em> </div> </td></tr></table> <div id="comment_21150" class="cm"> </div> <div id="post_rate_div_21150"></div> <br><br>