Skip to content

zhang26chao/mybatis-page

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README

MyBatis page plugin support MyBatis3.4.x.Both support DB2 and MySQL database. #Usage #####1. Dependency

<dependency>
	<groupId>com.fred</groupId>
	<artifactId>mybatis-page</artifactId>
	<version>0.0.1-SNAPSHOT</version>
</dependency>

#####2. Configuration

  • With Spring

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="dataSource" ref="dataSource" />  
        <property name="plugins">
    	    <list>
    		    <bean class="com.fred.page.plugin.PagePlugin">
    			    <property name="dialect">
    					<!-- or DB2Dialect -->
    				    <bean class="com.fred.page.dialect.MySqlDialect" />
    		    	</property>
    		    </bean>
    	    </list>
        </property>
        <property name="mapperLocations" value="classpath*:mybatis/*Mapper.xml" />
    </bean>
  • With Spring Boot

    @Bean(name = "sqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSourceWrite") DataSource dataSource) throws Exception {
    	SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
    	sessionFactoryBean.setDataSource(dataSource);
    	PagePlugin pagePlugin = new PagePlugin();
    	// or DB2Dialect
    	pagePlugin.setDialect(new MySqlDialect());
    	sessionFactoryBean.setPlugins(new Interceptor[] { pagePlugin });
    	PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
    	sessionFactoryBean.setMapperLocations(resolver.getResources("classpath*:mybatis/*Mapper.xml"));
    	return sessionFactoryBean.getObject();
    }

#####3. Example

  • Mapper.xml
	<select id="queryAll" resultType="com.fred.pojo.User">
        select
        	ID as id,
			USERNAME as username,
			PASSWORD as password
		from
			USER
    </select>
	
	<select id="queryById" resultType="com.fred.pojo.User">
        select
        	ID as id,
			USERNAME as username,
			PASSWORD as password
		where
			ID = #{id}
		from
			USER
    </select>
  • Mapper.java
@Mapper
public interface UserMapper {
	
	public List<User> queryAll(DalPage page);
	
	public List<User> queryById(Map<String,Object> map);
	
}
  • Service.java
@Service
public class UserService {

	@Autowired
	private UserMapper userMapper;

	public List<User> queryAll(DalPage page) {
		return userMapper.queryAll(page);
	}
	
	public List<User> queryById(Map<String,Object> map) {
		return userMapper.queryById(map);
	}
	
}
  • Controller.java
@Controller
@RequestMapping("/user")
public class UserController {

	@Autowired
	private UserService userService;
	
	@RequestMapping("page/{pageNumber}")
	public ModelAndView queryAll(@PathVariable("pageNumber") Integer pageNumber) {
		DalPage page = new DalPage();
		page.setCurrentPage(pageNumber);
		List<User> list = userService.queryAll(page);
		ModelAndView mav = new ModelAndView("user/list");
		mav.addObject("list", list);
		// the pagination information were saved in page Object,see DalPage Class.
		mav.addObject("page", page);
		return mav;
	}

	@RequestMapping("{id}/page/{pageNumber}")
	public ModelAndView queryAll(@PathVariable("id") String id,@PathVariable("pageNumber") Integer pageNumber) {
		DalPage page = new DalPage();
		page.setCurrentPage(pageNumber);
		// With multi query condition must use Map parameter
		Map<String,Object> map = new HashMap<String,Object>();
		map.put("id",id);
		map.put("page",page);
		List<User> list = userService.queryById(map);
		ModelAndView mav = new ModelAndView("user/list");
		mav.addObject("list", list);
		mav.addObject("page", page);
		return mav;
	}
	
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages