描述:Mybatis 学习笔记总结 作者:王璐 时间:2019/1/7

mybatis配置文件:mybatis-config.xml

完成数据插入的代码展示:

  1. // 读取 mybatis-config.xml 文件
  2. InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
  3. // 初始化mybatis, 创建SqlSessionFactory类的实例
  4. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  5. // 创建session实例
  6. SqlSession session = sqlSessionFactory.openSession();
  7. // 创建user对象
  8. User user = new User("zhangsan","male",26);
  9. // 插入数据
  10. session.insert("com.wanglu.test.mapper.UserMapper.save",user);
  11. // 提交事务
  12. session.commit();
  13. // 关闭session
  14. session.close();

po只有在SqlSession的管理下才可以完成数据库的访问。

为了使用mybatis进行持久化操作,通常有如下操作步骤:

  1. 开发持久化类po和编写持久化操作的Mapper.xml,在其中定义要执行的sql语句。
  2. 获取SqlSessionFactory
  3. 获取SqlSession
  4. 用面向对象的方式操作数据库
  5. 关闭事务、关闭SqlSession

MyBatis初始化步骤:

  1. 调用SqlSessionFactoryBuilder对象的bulid(inputStream)方法。
  2. SqlSessionFactoryBuilder会根据输入流inputStream等信息创建XMLConfigBuilder对象。
  3. SqlSessionFactoryBuilder调用XMLConfigBuilder对象的parse()方法。
  4. XMLConfigBuilder对象解析XML配置文件返回Configuration对象
  5. SqlSessionFactoryBuilder根据Configuration对象创建一个DefaultSessionFactory对象。
  6. SqlSessionFactoryBuilder返回DefaultSessionFactory对象给客户端,供客户端使用。

由此可见SqlSessionFactory是根据MyBatis的mybatis-config.xml创建的。

查询

建议:resultMap 不用map而是使用javaBeans和pojos来作为领域模型描述数据,如下所示:

  1. < resultMap id = "userResultMap" type="com.wanglu.test.domain.User">
  2. <id property="id" column="use_id"/>
  3. <result property="name" column="use_name"/>
  4. <result property="sex" column="use_sex"/>
  5. <result property="age" column="use_age"/>
  6. < /resultMap>
  7. <!-- resultMap="userResultMap"表示引用上面的resultMap进行数据库表和返回类型对象的映射 -->
  8. <select id = "selectUser" resultMap="userResultMap">
  9. select * from tb_user
  10. </select>

注:
id—resultMap的唯一标示符
type—resultMap实际返回的类型
id—表示数据库表的的主键
result—表示数据库表的普通列
其中,column属性表示数据库表的列名,property表示数据库列映射到返回类型的属性。

  1. <!-- -->
  2. < resultMap id = "userResultMap" type="com.wanglu.test.domain.Student">
  3. <id property="id" column="use_id"/>
  4. <result property="name" column="use_name"/>
  5. <result property="sex" column="use_sex"/>
  6. <result property="age" column="use_age"/>
  7. < /resultMap>
  8. <!-- resultMap="userResultMap"表示引用上面的resultMap进行数据库表和返回类型对象的映射 -->
  9. <select id = "selectUser" resultMap="userResultMap">
  10. select * from tb_user
  11. </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)