2021-09-17 Mybatis回顾第一天

一、概念

Mybatis是一个基于Java的持久层框架

持久化

将程序的数据在持久状态和瞬时状态之间转化的过程
为什么需要持久化:1. 内存断电即失 2. 内存太贵了 3. 有些对象不能让他丢失,如账号和密码
持久:数据库、io文件(消耗的资源大)

持久层

完成持久化工作的代码块

二、作用

Mybatis避免了几乎所有的手动设置参数以及获取结果集
Mybatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs映射成数据库中的记录

三、原理

 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。
 获得了SqlSessionFactory的实例之后,我们就可以从SqlSessionFactory中获取SqlSession的实例。
 SqlSession提供了在数据库执行SQL命令的所有方法,可以把它当作以前JDBC的Statement或PrepareStatement。
可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。

四、具体操作

1.编写mybatis核心配置文件

① 连接数据库

注意:&在xml里得写成&
<environmentsdefault="mysql">
	  <environmentid="mysql">
	  <transactionManager type="JDBC"></transactionManager>
	  <dataSourcetype="POOLED">
	    <propertyname="driver"value="com.mysql.cj.jdbc.Driver"/>
	    <propertyname="url"value="jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=true&amp;serverTimezone=UTC"/>
	    <propertyname="username"value="root"/>
	    <propertyname="password"value="123456"/>
	  </dataSource>
	  </environment>
	</environments>

② 注册mapper.xml(写了mapper.xml之后)

<mappers>
	<mapperresource="userMapper.xml"></mapper>
	</mappers>

2. 编写mybatis工具类

① 获取SqlSessionFactory

        a. 获取资源
        b. 将资源写入流
        c. 用SqlSessionFactoryBuilder创建SqlSessionFactory实例

② 获取SqlSession

        调用SqlSessionFactory的openSession()方法获得

③ 关闭

3. 编写接口

Public class UserMapperImpl implements UserMapper
	{
	    @Override
	    publicList<User>selAll(){
	    //获得sqlSession对象
	   SqlSession sqlSession=MybatisUtils.getSqlSession();
	   //执行sqlSession
	   UserMapper mapper=sqlSession.getMapper(UserMapper.class);
	   List<User> users=mapper.selAll();
	   return users;
	  }
	}

4. Mapper.xml文件

<mapper namespace="com.xk.mapper.UserMapper">
	   <selectid="selAll" resultType="com.xk.pojo.User">
	      SELECT * from USER
	   </select>
	</mapper>  
说明:namespace:该mapper的命名空间,也就是对应的类 
          id:对应的方法名

5. 测试

① 获得SqlSession对象

② 执行SqlSession

//获得sqlSession对象
	   SqlSession sqlSession=MybatisUtils.getSqlSession();
	//执行sqlSession
	   UserMapper mapper=sqlSession.getMapper(UserMapper.class);
	   List<User> users=mapper.selAll();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值