复习杂谈12.21

mybatis:

①介绍:

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。

MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码

Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

②原生态的JDBC程序出现的问题

    一、在创建连接时会存在硬编码

    二、在执行statement时存在硬编码

    三、频繁的开启和关闭数据库连接,会造成数据库性能下降

③创建全局配置文件

   在config目录下创建SQLMapConfig.xml 文件,名称不固定

    配置的文件信息包括有:

<!-- 配置mybatis的环境信息 --> (与spring整合后,该信息由spring来管理)

<environments default="development">

<environment id="development">

<!-- 配置JDBC事务控制,由mybatis进行管理 -->

<transactionManager type="JDBC"></transactionManager>

<!-- 配置数据源,采用dbcp连接池 -->

<dataSource type="POOLED">。。。

</dataSource>

加载映射文件:

<!-- 加载mapper -->

<mappers>

<mapper resource="sqlmap/User.xml"/>

</mappers>


添加log4j.properties文件

⑤编写映射文件

<!--

namespace:命名空间,它的作用就是对SQL进行分类化管理,可以理解为SQL隔离

注意:使用mapper代理开发时,namespace有特殊且重要的作用

 -->

<mapper namespace="test">

 

<!-- 根据用户ID,查询用户信息 -->

<!--

[id]statementid,要求在命名空间内唯一  

[parameterType]:入参的java类型

[resultType]:查询出的单条结果集对应的java类型

[#{}]: 表示一个占位符?

[#{id}]:表示该占位符待接收参数的名称为id。注意:如果参数为简单类型时,#{}里面的参数名称可以是任意定义

 -->

<select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">

SELECT * FROM USER WHERE id = #{id}

</select>

</mapper>

⑥编写测试程序步骤

   一、读取配置文件SQLMapConfig

   二、通过sqlSessionFactoryBuilder获取sqlSessionFactory对象

   三、获取SQLSession对象

   四、sqlSession 执行statement,并返回映射结果     

//第一个参数:statementid,建议:namespace.statementId(确保唯一)

//第二个参数:入参的值,它的类型要和映射文件中对应的statement的入参类型一致

        User user = sqlSession.selectOne("findUserById", 1);

   五、关闭sqlSession

mybatis与spring整合:

  整合思路介绍:

Ø 需要spring来管理数据源信息

Ø 需要spring通过单例方式管理SqlSessionFactory

Ø 使用SqlSessionFactory创建SqlSession。(springmybatis整合自动完成)

Ø 持久层的mapper都需要由spring进行管理,springmybatis整合生成mapper代理对象。


 集成步骤

1、 jar包集成;

2、 配置文件集成(数据源

3、 SqlSessionFactory集成; 

4、 Mapper接口集成;( + mapper.xml文件)


配置文件的集成:1、Mybatis的sqlMapConfig.xml

                                设置全局参数

                                    定义别名

                                    加载映射mapper文件

<!-- 注意:与spring集成后,数据源和事务交给spring来管理 --

                          2、spring的applicationContext.xml

                                              引用java配置文件

                              <context:property-placeholder location="db.properties"/>

                               配置数据源,使用jdbc连接池

                            <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">。。。</bean>




  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值