Mybatis笔记

MyBatis程序编写顺序和注意

1.resources目录:

放在这个目录当中的,一般都是资源文件,配置文件。直接放到resources目录下的资源,等同于放到了类的根路径下。

2.开发步骤

第一步:打包方式jar

第二步:引入依赖

- mybatis依赖

- mysql驱动依赖

第三步:编写mybatis核心配置文件:mybatis-config.xml

   注意:

第一这个文件名不是必须叫做mybatis-config.xml,可以用其他的名字。只是大家都采用这个名字。

第二这个文件存放的位置也不是固定的,可以随意,但一般情况下,会放到类的根路径下.|

第四步:编写XxxxMapper.xml文件

在这个配置文件当中编写SQL语句。

这个文件名也不是固定的,放的位置也不是固定,

我们这里给它起个名字,叫做CarMapper.xml把它暂时放到类的根路径下。

第五步:在mybatis-config.xml文件中指定XxxxMapper.xml文件的路径:

<mapper resource="CarMapper.xml"

注意:resource属性会自动从类的根路径下开始查找资源

第六步:编写MyBatis程序(使用mybatis的类库,编写mybatis程序,连接数据库,做增删改查)

    在MyBatis当中,负责执行SQL语句的那个对象叫做什么呢?

    sqlSession

sqlSession是专门用来执行SQL语句的,是一个Java程序和数据库之间的一次会话。

要想获取SqlSession对象,需要先获取SqlSessionFactory对象,通过SqlSessionFactory工厂来生产SqlSession对象。

怎么获取SqlSessionFactory对象呢?

需要首先获取SqlSessionFactoryBuilder对象。

通过SqlSessionFactoryBuilder对象的build方法,来获取一个SqlSessionFactory对象。

mybatis的核心对象包括:

sqisessionFactoryBuildersql

SessionFactory

sqlSession

                  顺序:sqlSessionFactoryBuilder --> sqlsessionFactory --> sqlsession

3.从XML中构建SqlsessionFactory

第一:在MyBatis中一定是有一个很重要的对象,这个对象是:SqlSessionFactory对象

第二:SqlSessionFactory对象的创建需要XML。

XML是什么?

是一个配置文件。

4. mybatis中有两个主要的配置文件:

其中一个是:mybatis-config.xml,这是核心配置文件,主要配置连接数据库的信息等。(一个)另一个是:XxxxMapper.xml,这个文件是专门用来编写SQL语句的配置文件。(一个表一个)

t_user表,一般会对应一个UserMapper.xml

t_student表,一般会对应一个StudentNapper.xml

5. 关于第一个程序的小细节

mybatis中sql语句的结尾";"可以省略。

   Resources.getResourceAsStream

小技巧:以后凡是遇到resource这个单词,大部分情况下,这种加载资源的方式就是从类的根路径下开始加载。(开始查找)

6.关于mybatis的事务管理机制。

在mybatis-config.xml文件中,可以通过以下的配置进行mybatis的事务管理

    <transactionManager type="JDBC" />

type属性的值包括两个:

JDBC(jdbc)

MANAGED(managed)

type后面的值,只有以上两个值可选,不区分大小写。

在mybatis中提供了两种事务管理机制;

第一种:JDBC事务管理器

第二种:MANAGED事务管理器

JDBC事务管理器:

mybatis框架自己管理事务,自己采用原生的JDBC代码去管理事务:

conn.setAutoCommit(false);开启事务。I

....业务处理...

conn.commit();手动提交事务

使用JDBC事务管理器的话,底层创建的事务管理器对象:JdbcTransaction对象。

如果你编写的代码是下面的代码:

sqlSession sqlsession = sqlSessionFactory.opensession(true);表示没有开启事务。因为这种方式压根不会执行: conn.setAutoCommit(false);在JDBC事务中,没有执行conn.setAutoCommit(false);那么autoCommit就是true。如果autoCommit是true,就表示没有开启事务。只要执行任意一条DML语句就提交一次。

MANAGED事务管理器:

mybatis不再负责事务的管理了。事务管理交给其它容器来负责。例如: spring.我不管事务了,你来负责吧。

对于我们当前的单纯的只有mybatis的情况下,如果配置为:MANAGED那么事务这块是没人管的。没有人管理事务表示事务压根没有开启。

没有人管理事务就是没有事务。

*JDBC中的事务:

如果你没有在JDBC代码中执行: conn.setAutoCommit(false);的话,默认的autoCommit是true.

重点:

以后注意了,只要你的autoCommit是true,就表示没有开启事务。只有你的autocommit是false的时候,就表示开启了事务。|

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值