学习主题:mybatis
学习目标:
1 掌握typeAliases的作用
2 掌握mybatis如何传递参数
3 掌握mybatis对事务的管理
4 掌握mybatis的crud
5 掌握接口绑定
6 掌握接口绑定多参数的使用
7 掌握mybatis动态sql
8 掌握mybatis缓存
1.typeAliases标签配置别名
(1)typeAliases标签有什么作用? 如何使用?
答: 用于给java类型定义别名,方便在配置文件中使用。
<typeAliases>
<!-- typeAliases alias给User 起名为u -->
<!-- <typeAlias type="com.bjsxt.pojo.User" alias="u"/> -->
<!-- <typeAlias type="com.bjsxt.pojo.User"/> --> <!-- 不加alias代表别名默认为类名User -->
<package name="com.bjsxt.pojo"/> <!--只要在pojo包下,别名都默认为各自的类名 -->
</typeAliases>
(2)如何在MyBatis中为类型定义别名?
2.配置parameterType属性进行参数的传递
(1)配置parameterType属性进行参数的传递
答:
封装成对象:
<select id="sel" resultType="user" parameterType="user">
<!-- 如果参数是对象, 可以通过#{属性名}来获取 -->
select * from t_user where username=#{username} and password=#{password}
</select>
@Test
public void sel() throws IOException {
InputStream is = Resources.getResourceAsStream("mybatis-t.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession();
User u = new User();
u.setUsername("zhangsan");
u.setPassword("123");
User user =session.selectOne("com.bjsxt.mapper.UserMapper.sel", u);
System.out.println(user);
session.close();
}
封装成Map
<!-- 封装成Map -->
<select id="selMap" resultType="user" parameterType="user">
<!-- 如果参数类型是map,则通过#{key}获取 -->
select * from t_User where username= #{uname} and password =#{pasd}
</select>
@Test
public void selMap() throws IOException {
InputStream is = Resources.getResourceAsStream("mybatis-t.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession();
Map<String,String> map = new HashMap<>();
map.put("uname", "lisi");
map.put("p