mybatis学习笔记

mybatis使用

第一步:pom.xml中加依赖和资源插件、
第二步:定义数据表的DAO接口
第三步:写对应数据表的mapper.xml文件
第四步:写主配置文件mybatis-config.xml(给出了连接数据库的信息)

通过获取sqlSession对象来执行sql语句

dao代理

mybatis提供代理:由mybatis创建dao接口的实现类,完成对sql语句的执行
其实现方式:
使用SqlSession对象的方法getMapper(dao.class)
例如:有一个UserDAO接口

SqlSession session = MybatisUtil.getSession();
UserDAO dao=session.getMapper(UserDAO.class);
User user=dao.selectUserById(4);

理解参数

通过java程序把数据传入到mapper文件中的sql语句的占位符的位置

DAO接口方法中有多个简单类型的参数用@Param来命名

DAO接口方法中使用一个对象作为参数
	方法的形参是一个java对象。这个java对象表示多个参数。使用对象的属性值作为参数使用(对象中的属性有set和get方法,#{}中放属性名称)

表列名和java对象属性名不一样的解决方法

resultMap:

<!--    resultMap定义不同的表列名和对象属性名之间的映射关系
        type:是类的全限定名称
        <id>表示主键;column表示列名,property表示属性名
        <result>非主键
        最后在select标签中用resultMap=“id名称”,不用resultType
-->
<resultMap id="" type="">
        <id column="" property=""></id>
        <result column="" property=""></result>
        <result column="" property=""></result>
</resultMap>

resultType:在sql查询语句时使用别名
如:select id as cid,name as cname from user

模糊查询like

直接在java程序中传值,如,”%李%”

动态sql:

同一个dao方法,根据不同的条件可以表示不同的sql语句,主要where部分有变化。
由mybatis提供的标签实现,主要有if, where, foreach, sql等
使用动态sql时,dao方法的形参 使用java对象

if标签
<if>
select * from user
where id=-1
<if test="name!=null and name!=''">
   or name=#{name}
</if>
<if test="10>2">
    or id=#{id}
</if>
where标签

改进if标签的缺陷来的

<select id="selectWhere" resultType="com.domain.User">
    select * from user
    <where>
        <if test="name!=null and name!=''">
            or name=#{name}
        </if>
        <if test="10>2">
            or id=#{id}
        </if>
    </where>
</select>
foreach标签

可以循环数组,list集合,一般使用在in语句中

<select id="selectForeach" resultType="com.domain.User">
    select * from user
    <if test="list != null and list.size>0">
        where id in
        <foreach collection="list" open="(" close=")" separator="," item="u">
            #{u.id}
        </foreach>
    </if>
</select>
sql标签

定义sql代码片段,在其他地方可以只用include来复用。

<sql  id=”id名称”>
sql片段
</sql>


其他位置
<include refid=”id名称” />

使用数据库属性配置文件

把数据库配置信息放到一个单独的properties文件中,便于管理

PageHelper插件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值