MyBatis的基本应用

MyBatis是支持普通SQL语句查询,存储过程和高级映射的优秀持久层框架。

MyBatis封装了几乎所有的JDBC代码和参数的手工设置以及结果的检索。

MyBatis使用简单的xml或注解做配置和定义映射关系,将java的pojos(plain old java objects)映射成数据库中的记录。

 

MyBatis体系结构主要有以下几个关键部分:(1)加载配置(2)SQL解析

(加载配置)

(SQL解析)重点讲解

Mybatis工作流程:

1:首先要导入mybatis架包;

2:创建MybatisUtil.java,创建builder,然后builder创建factory,读取SqlMapConfig.xml,SqliMapConfig.xml里面关联着Mapper.xml文件,SqlMapConfig.xml里面主要是写数据源信息,Mapper.xml里面是一些查询语句,实现与java代码的分离,解耦作用

3:工厂创建SqlSession,然后从命名空间里面得到sqlid和参数,获取响应的statement,然后执行相应的方法

4:把调用方法得到的结果转换成相应的对象(list,map)输出。

<!-- 在mybatis中#与$的区别?? -->

看我的博客https://blog.youkuaiyun.com/qq_38704184

需要的架包:1:mybatis

2:mysql-connector

3:tomcat-dbcp

4:tomcat-jdbc

5:spring-web

1:对应数据库先写entity下的实体类,最好是实体类属性和数据库中的字段一样。

2:在util包下创建MyBatisUtil类,创建factoryBuilder,

Builder创建factory,factory读取SqlMapConfig.xml,文件,SqlMapConfig.xml文件里面读取你相应的和实体类一样名字+Mapper.xml文件,factory打开session,

3:配置SqlMapConfig.xml

<configuration>

<environments dafault=”environment”>

<environment id=”environment”>

<transactionManager type=”JDBC”/>

<dataSource type=”POOLED”>

<property name=”url” values=””/>

<property name=”driver” values=””/>

<property name=”username” values=””/>

<property name=”password” values=””/>

</environment>

</environments>

<mappers>

<mapper resource=”**Mapper.xml”/>

</mappers>

</configuration>

4:配置**Mapper.xml

<mapper namespace=””>

<select id=””></select>

如果实体类的属性和数据库中的字段不一致的话,下面我们将用resultMap,将我们实体类中的属性转换成数据库可以识别的字段,换个说法或者是转换成和数据库字段一样。

<insert id=””></insert>

<update id=””></update>

<delete id=””></delete>

</mapper>

此处的namespace值得是我们下面将要创建的**Mapper.java,用的是指定映射关系

5:创建**Mapper.java

这里我们创建的**Mapper.java是一个接口,里面的方法命名必须和我们**Mapper.xml里面的id是一一对应的。不要问为什么,甲鱼的背规定

6:创建一个测试类

用MyBatisUtil调用里面的getSession方法,然后session在调用getMapper方法,注意getMapper()括号里面要写成**Mapper.class,只有找到这也接口,下面才能使用接口中的方法,用mapper调用**Mapper.java里面的增删改查方法,,最后将结果转换成你想要的结果类型

7:总结:使用MyBatis好处是,使SQL语句和java代码分离,起到代码解耦作用,方便维护,方便修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值