1, 采用MapperFactoryBean的方式,不用写myibatis映射文件,采用注解方式提供sql语句
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
</bean>
<!--创建数据映射器,数据映射器必须为接口-->
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.xxt.ibatis.dbcp.dao.UserMapper" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<!--将映射器注入dao中 -->
<bean id="userDaoImpl2" class="com.xxt.ibatis.dbcp.dao.impl.UserDaoImpl2">
<property name="userMapper" ref="userMapper"/>
</bean>
<!--数据映射器UserMapper的代码-->
public interface UserMapper {
@Select("SELECT * FROM user WHERE id = #{userId}")
User getUser(@Param("userId") long id);
}
<!--调用映射器-->
public interface UserDao {
public User getUserById(User user);
}
public class UserDaoImpl2 implements UserDao {
private UserMapper userMapper;
public void setUserMapper(UserMapper userMapper) {
this.userMapper = userMapper;
}
public User getUserById(User user) {
return userMapper.getUser(user.getId());
}
}
2, 采用SqlSessionDaoSupport与SqlSessionTemplate方式
SqlSessionDaoSupport是一个抽象的支持类,用来为你提供SqlSession。调用getSqlSession()方法你会得到一个SqlSessionTemplate
public class UserMenuDaoImpl2 extends SqlSessionDaoSupport implements IUserMenuDao {
@Override
public List<UserMenu> getUserMenu() {
Map<String, Object> map = new HashMap<String, Object>();
map.put("user_id", 999);
map.put("menu_id", 33);
getSqlSession().selectList("UserMenuMapper1.getUserMenu", map);
}
}
SqlSessionDaoSupport 这个类需要一个sqlSessionFactory或sqlSessionTemplate属性来设置
<bean id="userMenuDao2" class="com.jingc.busi.common.mapper.UserMenuDaoImpl2">
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>
SqlSessionTemplate实现了SqlSession
SqlSessionTemplate对象可以使用SqlSessionFactory作为构造方法的参数来创建
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
这个bean现在可以直接注入到DAO bean中。你需要在bean中添加一个SqlSession属性,就像下面的代码:
@Repository("userMenuDao")
public class UserMenuDaoImpl implements IUserMenuDao {
@Resource
private SqlSession sqlSession;
@Override
public List<UserMenu> getUserMenu() {
Map<String, Object> map = new HashMap<String, Object>();
map.put("user_id", 999);
map.put("menu_id", 33);
List<UserMenu> userMenu = sqlSession.selectList(
"UserMenuMapper1.getUserMenu", map);
System.out.println(userMenu.size());
System.out.println(userMenu.get(0).getReserved1());
sqlSession.insert("UserMenuMapper1.insert1");
sqlSession.insert("UserMenuMapper1.insert2");
return null;
}
}
http://wenku.baidu.com/link?url=6DK8hiDnCFJ5evsOUbDHpc4tMhLsKTBWW06nCIBUX9t9Gl1DhCnkXtGyVocJOfR_g4FqebhlonxcGK-FB-Sq6Eyz8GalIvCW5bGKntK_CPa
Spring与myibatis的整合
最新推荐文章于 2022-11-03 15:26:05 发布