mybatis之SqlMapConf.xml配置文件中标签的使用
1、SqlMapConf.xml与UserDao.xml都在resources目录下
(1)mapper标签:为resource方式;
UserMapper.xml文件与SqlMapConf.xml放在同一目录下。
<mappers>
<mapper resource="UserDao.xml"></mapper>
</mappers>
(2)mapper标签:为package方式
UserMapper.xml文件与UserDao.java(接口)放在同一目录下。
<mappers>
<package name="com.xsd.dao"></package>
</mappers>
pom.xml文件中要加:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<!--默认是true-->
<!--<filtering>true</filtering>-->
</resource>
</resources>
</build>
mapper文件:
<mapper namespace="test">
<select id="selectById" parameterType="Integer" resultType="com.xsd.domain.User">
select * from t_user where tu_id = #{tu_id}
</select>
</mapper>
同包下的接口名与mapper.xml文件名一样,要同名。
<mapper namespace="com.xsd.dao.UserDao">
<select id="selectById" parameterType="Integer" resultType="com.xsd.domain.User">
select * from t_user where tu_id = #{tu_id}
</select>
</mapper>
jdbc接口调用之不同处:
public class UserTest {
@Test
public void TestGetById() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConf.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
User user = sqlSession.selectOne("test.selectById", 6);
System.out.println(user);
}
@Test
public void testGetById() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConf.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
User user = mapper.selectById(6);
System.out.println(user);
}
}
注意:
namespace=“test”
namespace=“com.xsd.dao”
测试类的调用不同:
test.selectById
mapper.class