在spring中整合Mybaties
需要导入的包
mysql
mysql-connector-java
5.1.47
org.mybatis
mybatis
3.5.9
org.springframework
spring-jdbc
5.3.15
org.aspectj
aspectjweaver
1.9.4
org.mybatis
mybatis-spring
2.0.6
org.springframework
spring-webmvc
5.3.13
junit
junit
4.12
test
实体类
@Data
@NoArgsConstructor
@AllArgsConstructor
public class user {
private int id;
private String name;
private String pwd;
}
接口
public interface userMapper {
List selectuser();
}
接口配置文件
<?xml version="1.0" encoding="UTF-8" ?>
配置spring(这里采用最原始的方法)
<?xml version="1.0" encoding="UTF8"?>
<!–SqlSessionTemplate类中只有有参构造,使用不了set注入–>
编写实现类
public class userMapperimpl implements userMapper{
private SqlSessionTemplate sqlSession;
public userMapperimpl(SqlSessionTemplate sqlSession) {
this.sqlSession = sqlSession;
}
@Override
public List selectuser() {
userMapper mapper = sqlSession.getMapper(userMapper.class);
return mapper.selectuser();
}
}
注册bean
测试
public class MyTest {
@Test
public void test() {
ApplicationContext context = new ClassPathXmlApplicationContext("spring-Dao.xml");
userMapper userMappers = context.getBean("userMapper2", userMapper.class);
List users = userMappers.selectuser();
for (user user : users) {
System.out.println(user);
}
}
}
结果
user(id=2, name=aaa, pwd=bbb)
user(id=3, name=李四, pwd=1231233)
user(id=4, name=李三, pwd=123123)
user(id=5, name=夏鸥, pwd=23234234)
更精简整合Mybatis
mybatis-Spring提供了一个父类SqlSessionDaoSupport。我们直接继承这个类,再去spring中注入参数sqlSessionFactory。我们再调用方法getSqlSession()就可以得到sqlSession。这里我们可以不在spring中去注册
class="org.mybatis.spring.SqlSessionTemplate">
实现类
public class userMapperimpl2 extends SqlSessionDaoSupport implements userMapper{
@Override
public List selectuser() {
return getSqlSession().getMapper(userMapper.class).selectuser();
}
}
Spring配置
<?xml version="1.0" encoding="UTF8"?>
实现还是与前一种方式一样