描述:Mybatis 学习笔记总结 作者:王璐 时间:2019/1/7
mybatis配置文件:mybatis-config.xml
完成数据插入的代码展示:
// 读取 mybatis-config.xml 文件
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
// 初始化mybatis, 创建SqlSessionFactory类的实例
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 创建session实例
SqlSession session = sqlSessionFactory.openSession();
// 创建user对象
User user = new User("zhangsan","male",26);
// 插入数据
session.insert("com.wanglu.test.mapper.UserMapper.save",user);
// 提交事务
session.commit();
// 关闭session
session.close();
po只有在SqlSession的管理下才可以完成数据库的访问。
为了使用mybatis进行持久化操作,通常有如下操作步骤:
- 开发持久化类po和编写持久化操作的Mapper.xml,在其中定义要执行的sql语句。
- 获取SqlSessionFactory
- 获取SqlSession
- 用面向对象的方式操作数据库
- 关闭事务、关闭SqlSession
MyBatis初始化步骤:
- 调用SqlSessionFactoryBuilder对象的bulid(inputStream)方法。
- SqlSessionFactoryBuilder会根据输入流inputStream等信息创建XMLConfigBuilder对象。
- SqlSessionFactoryBuilder调用XMLConfigBuilder对象的parse()方法。
- XMLConfigBuilder对象解析XML配置文件返回Configuration对象
- SqlSessionFactoryBuilder根据Configuration对象创建一个DefaultSessionFactory对象。
- SqlSessionFactoryBuilder返回DefaultSessionFactory对象给客户端,供客户端使用。
由此可见SqlSessionFactory是根据MyBatis的mybatis-config.xml创建的。
查询
建议:resultMap 不用map而是使用javaBeans和pojos来作为领域模型描述数据,如下所示:
< resultMap id = "userResultMap" type="com.wanglu.test.domain.User">
<id property="id" column="use_id"/>
<result property="name" column="use_name"/>
<result property="sex" column="use_sex"/>
<result property="age" column="use_age"/>
< /resultMap>
<!-- resultMap="userResultMap"表示引用上面的resultMap进行数据库表和返回类型对象的映射 -->
<select id = "selectUser" resultMap="userResultMap">
select * from tb_user
</select>
注:
id—resultMap的唯一标示符
type—resultMap实际返回的类型
id—表示数据库表的的主键
result—表示数据库表的普通列
其中,column属性表示数据库表的列名,property表示数据库列映射到返回类型的属性。
<!-- -->
< resultMap id = "userResultMap" type="com.wanglu.test.domain.Student">
<id property="id" column="use_id"/>
<result property="name" column="use_name"/>
<result property="sex" column="use_sex"/>
<result property="age" column="use_age"/>
< /resultMap>
<!-- resultMap="userResultMap"表示引用上面的resultMap进行数据库表和返回类型对象的映射 -->
<select id = "selectUser" resultMap="userResultMap">
select * from tb_user
</select>
ssm整合(spring+springMvc+mybatis)
配置文件
1,xx.properties
2,mybatis-config.xml(mybatis)
3,applicationContext.xml(spring)
mybatis-config.xml(mybatis)
xx.properties
4,springMvc.xl(springMv)
5,web.xml
applicationContext.xml(spring)
springMvc.xl(springMv)