MyBatis初见

一、JDBC开发步骤

1、Driver接口实现类的实例对象加载到DriverManager

2、通过DriverManager驱动Driver对象建立通信通道

3、由通信通道负责创建对象负责推送SQL语句并带回

4、由preparedstatement对象负责推送SQL语句并带回数据库服务器返回的处理结果

5、销毁资源

二、JDBC的缺点

1、jdbc开发步骤过去繁琐

2、需要开发人员手动为每一个占位符指定具体值

3、需要开发人员手动实现resultset与实体类对象之间转换

三、什么是框架:

1、存在于jar包中的一组工具类

2、在工具类之间设置了固定调用顺序

四、MyBatis框架:

1、MyBatis框架在内部封装JDBC调用流程

2、MyBatis框架使得开发人员在进行数据库访问操作时,只需要关注与推送SQL语句而无需关注JDBC流程

五、MyBatis框架开发环境搭建

1、引入jar包

1)mysql对于JDBC规范中接口提供的实现类jar包

2)MyBatis.jar

<dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.9</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
</dependencies>

2、src/main/resources设置配置文件

1)SQL映射文件

SQL映射文件是xml文件

一个SQL映射文件存储一张表中SQL语句

SQL映射文件内部结构

<maper namespace = "命名空间">
    <insert id = "insert"></insert>
    <delete id = "del"></delete>
    <update id = "updae"></update>
    
</maper>

2)mybatis核心文件

mybatis核心文件是xml文件

mybatis核心文件指定要访问的数据库服务器基本信息(URL,user,password)

为mybatis框架指定项目中SQL映射文件位置

<environment id="one">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test1"/>
                <property name="username" value="root"/>
                <property name="password" value="123"/>
            </dataSource>
        </environment>

六、SqlSession接口

1、SqlSession来自于mybatis框架

2、mybatis框架提供SqlSession接口实现类DefaultSqlSession

3、SqlSession接口定义用于推送SQL语句方法

七、如何获得SqlSession对象:

1、创建一个读取流只想mybatis核心配置文件

2、通过SqlSessionFactoryBuilder对象读取配置文件信息交给SqlSessionFactory对象

3、由SqlSessionFactory对象提供SqlSession

4、通知SqlSession对象推送指定的SQL语句

5、销毁SqlSession对象

public void test1() throws IOException {
        //1、
        InputStream in = Resources.getResourceAsStream("mybatis.xml");
        //2、
        SqlSessionFactory  factory = new SqlSessionFactoryBuilder().build(in);
        //3、
        SqlSession sqlSession = factory.openSession(true);
        //4、
        int result = sqlSession.insert("dept.insert");
        //5\
        sqlSession.close();
        in.close();
        //6\输出结果
        System.out.println("本次插入了"+result+"行数据");
​
    }

八、SqlSessionFactoryBuilder作用

1、buid(InputStream):将指向mybatis核心配置文件的读取

流,交给内部build(InputStream ,String,Properties)

2、build(InputStream,String ,Properites)

1)创建了一个用于解析mybatis核心配置文件的xml解析对象

XMLConfigBuilder parser = newXMLConfigBuilder(inputStream, environment, properties);

2)通过xml解析对象将myBatis核心配置文件中标签中内容

读取出来保存到一个Configuration

Configuration configuration = parser.parse();

3)创建DefaultSqlSessionFactory 并将configuration对象存

入其中

return  new DefaultSqlSessionFactory(configuration)

九、SqlSessionFactory介绍:

1、SqlSessionFactory来自于MyBatis框架中一个接口

2、实际使用过程中,使用这个接口的实现类DefaultSqlSessionFactory

3、具体作用:

1)根据mybatis核心配置文件中environment标签设置事务管理方式【事务提交方式,事务隔离级别】

2)指定mybatis框架用于推送SQL语句执行器的类型

3)将【事务管理方式】和【SQL语句执行器类型】作为属性封装到DefaultSession对象

十、SqlSession介绍

1、SqlSession来自于mybatis框架提供一个接口

2、实际使用中,使用这个接口中DefaultSqlSession实现类

3、SqlSession是开发人员与mybatis进行沟通的一个通道

借助于SqlSession对象通知mybatis框架将指定的SQL语句进行推送

4、具体分析

1)SqlSession对象接受到请求之后,通过Configuration对象得需

要推送的SQL语句

2)SqlSession对象通过SQL语句执行器得到statement对象

3)通过Statement对象将sql语句推送到数据库服务器执行并带回处理结果

十一、SqlSession对于事务管理方式

1、SqlSession不仅仅负责推送SQL语句,同事负责事务管理

2、事务管理方式:

1)SqlSession.sqlSession = factory.openSession(false)

false 传递给Connection对象,Connection对象将autoCommit属性设置为false

con.setAutoCommit(false)

此时sqlSession 推送的SQL语句关联的事务对象管理权由SqlSession 管理,在SQL语句推送完毕后,必须由sqlSession决定事务提交与回滚

sqlSession.commit();

sqlSession.rollback();

SqlSession.sqlSession = factory.openSession(true)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值