spring-study com.lan 1.0-SNAPSHOT 4.0.0 spring-10-mybatis junit junit 4.12 test mysql mysql-connector-java 5.1.47 org.mybatis mybatis 3.5.2 org.springframework spring-webmvc 5.3.14 org.springframework spring-jdbc 5.1.9.RELEASE org.aspectj aspectjweaver 1.9.4 org.mybatis mybatis-spring 2.0.7 org.projectlombok lombok 1.16.10 src/main/java ***.xml true src/main/resources ***.xml true
步骤
多了一个实现类因为spring要去接管这个对象,mybatis不能自动创建,我们需要手动去创建写一个set方法
3、User
package com.lan.pojo;
import lombok.Data;
@Data
public class User {
private int id;
private String name;
private String pwd;
}
UserMapper接口
package com.lan.mapper;
import com.lan.pojo.User;
import java.util.List;
public interface UserMapper {
public List selectUser();
}
UserMapper的xml
UserMapperImpl
package com.lan.mapper;
import com.lan.pojo.User;
import org.mybatis.spring.SqlSessionTemplate;
import java.util.List;
public class UserMapperImpl implements UserMapper {
private SqlSessionTemplate sqlSession;
public void setSqlSession(SqlSessionTemplate sqlSession) {
this.sqlSession = sqlSession;
}
public List selectUser(){
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
return mapper.selectUser();
}
}
MyTest
import com.lan.mapper.UserMapper;
import com.lan.pojo.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MyTest {
@Test
public void test(){
ApplicationContext context= new ClassPathXmlApplicationContext("spring-dao.xml");
UserMapper userMapper = context.getBean("userMapper", UserMapper.class);
for (User user : userMapper.selectUser()) {
System.out.println(user);
}
}
}
4、接口实现类升级版 继承:extends SqlSessionDaoSupport后不用set方式注入了
package com.lan.mapper;
import com.lan.pojo.User;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import java.util.List;
public class UserMapperImpl2 extends SqlSessionDaoSupport implements UserMapper{
@Override
public List selectUser() {
// SqlSession sqlSession = getSqlSession();
// UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// return mapper.selectUser();
return getSqlSession().getMapper(UserMapper.class).selectUser();
}
}
用第二种方式这里两步可以不要



