项目结构
UserMapper
package com.wen.mapper;
import com.wen.pojo.User;
import java.util.List;
public interface UserMapper {
List getUserList();
}
UserMapper.xml
select * from user
UserMapperImpl
package com.wen.mapper;
import com.wen.pojo.User;
import org.mybatis.spring.SqlSessionTemplate;
import java.util.List;
public class UserMapperImpl implements UserMapper {
//我们的所有操作都使用sqlsession来执行,在原来,现在都使用SqlSessionTemplate;
private SqlSessionTemplate sqlSession;
public void setSqlsession(SqlSessionTemplate sqlsession) {
this.sqlSession = sqlsession;
}
@Override
public List getUserList() {
UserMapper mapper = sqlSession .getMapper(UserMapper.class);
return mapper.getUserList();
}
}
User实体类:
package com.wen.pojo;
import lombok.Data;
//实体类
@Data
public class User {
private int id;
private String name;
private String password;
}
applicationContext.xml:这个只是为了分工明确,可以直接写在spring-dao.xml中
mybatis-config.xml:这个也可以省略,可以直接在spring-dao.xml中用标签使用
重头戏:spring-dao.xml 这个主要是把mybatis中一些操作管理了,之前mybatis工具类获取sqlSessionfactory和返回的sqlsession就不用了,还有我们mybatis的核心配置文件数据源也全部弄到这里来了,大家仔细看:
这里需要了解的就是,sqlsession因为没有很多东西,所以这里用到了sqlsessionTemplate
最后:测试:spring获取配置文件的方式,等于我们这里没有一点mybatis的痕迹了
import com.wen.mapper.UserMapper;
import com.wen.pojo.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.List;
public class MyTest {
@Test
public void getUserList(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
UserMapper userService = (UserMapper) context.getBean("userMapper");
List userList = userService.getUserList();
for (User user : userList) {
System.out.println(user);
}
}
}
运行结果:



