Mybatis基础

相关概念介绍

SSM = springmvc + spring + mybatis 组合框架的一员,是一种持久层框架

Mybatis常用API:

1.Resources工具类帮助加载核心配置文件

2.SqlSessionFactoryBuider.bulid();构建工厂对象

3.SqlSessionFactory.openSession([boolean autoCommit]);获取sqlSession会话对象

4.sqlSession.增/删/改/查/commit/rollback

Mybatis代理开发方式需要遵循的规范

1.Mapper.xml映射文件中的namespace与mapper接口的全限定名相同

2.Mapper接口方法名和mapper.xml映射文件中定义的每个statement的id相同

3.Mapper接口方法的输入参数类型和mapper.xml映射文件中定义的每个sql的parameterTyp的类型相同

4.mapper接口方法的输出参数类型和mapper.xml映射文件中定义的每个sql的resultType的类型形同

这样就可以调用sqlSession.getmapper(xxxMapper.class)来获取mapper代理对象,使用接口中的方法

高级查询: ResultMap

<!--实现手动映射封装

        resultmap       

              id="userResultmapper" 此标签唯一标识        type="user" 封装后的实体类型

         <id column="uid"  property="id"> </id>    

        uid--表中的字段名

        id--  user实体类属性名

        表中主键字段的封装--如果表中数据和实体类参数名不同--起别名

<result column="name" property="username"></result> 表中普通字段封装                                        column="name" 表中的字段名                
            property="username" user实体的属性名   

-->

        <resultMap id="userResultmapper" type="article">

                <id column="uid" property="id">

        </resultMap>

模糊查询

<!--
    List<User> list = userMapper.findByUsername("%王%");
-->

<!--方式1-->
<select id="findByUsername" parameterType="string" resultType="user">       
    select * from user where username like #{username}    
</select> 

--parameterType="string"可以省略

¥{}与#{}的区别


#{}:表示一个占位符号
通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换,#{}可以有效防止sql注入。
#{}可以接收简单类型值或pojo属性值。
如果parameterType传输单个   简单类型值,#{}括号中名称随便写。


${}:表示拼接sql串
通过${}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换,会出现sql注入问题。

${}可以接收简单类型值或pojo属性值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值