mybatis学习日常小迷糊

日常小迷糊

1.1 mybatis小小概念

  • mybatis封装了相关jdbc的操作,经过简单的配置,然后该框架就会帮我 们运行我们写的sql.

1.2 在map.xml中的返回值类型是另一个普通实体类

  • 在一个map.xml中如果返回值是另一个实体类,需要
    map.xml配置:
    map.xml里面的部分·配置
    主配置文件 config.xml:
    在这里插入图片描述

1.3 如果sql语句中有> 或者< 条件时

  • 加上<![CDATA[ ]]>把那一部分括起来
	<select id="getSameName" resultMap="studenttwo"><!-- 当遇到大于小于时 要用<![CDATA[  ]]>括起来  -->
	select sname,count(sid) as total from student group by sname having <![CDATA[count(sid)>1 ]]>
	</select>

1.4 一定要记得把map.xml配置文件配到config.xml中去

1.5 传参数执行语句

带参数
红色标记与map.xml的标识要一致
绿色是形参
在这里插入图片描述

1.6#{}${}参数值的获取区别以及使用范围

区别:

  • #{}获取参数值时会自动转成字符串,会自动添加''${}不会它只是将参数的值直接显示在生成的sql语句中(故而#{}在一定程度上相对于${})避免了一定的sql注入问题
  • 使用#{ }方式可以 通过 #{参数名} 或者默认的 #{_parameter}来获取参数值, 但是使用${ }时,不能直接通过${参数名}来获取,需要通过默认方式 ${value} 来取值
    使用场景:
  • ${ }方式一般用于传入数据库对象,例如传入表名 ,列名(就是那些不需要变成字符串的参数)
  • 关于模糊查询 通配符问题 使用#{}不能达到要求如:SELECT * FROM bank WHERE user_name LIKE %#{name}%因为自动加''的原因,所以 需要使用${}来处理,如SELECT * FROM bank WHERE user_name LIKE '%${value}%'但是因为使用${}有严重的sql注入问题,所以采用CONCAT函数 如 `SELECT * FROM bank WHERE user_name LIKE CONCAT(’%’,#{name},’%’)

1.7 资源配置文件与映射文件的抬头不能写错了

  • 资源配置文件只能有一个
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-config.dtd">

映射配置文件可以有多个

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"      "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  • 配置的映射文件,一定要写在资源配置config.xml才能生效,且注意资源配置文件配置的顺序

1.8 测试调用方法步骤

//1. 使用类加载器加载mybatis的配置文件,并构建sqlSession的工厂 
InputStream is = Resources.getResourceAsStream(“xml”); 
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
//2. 获取SqlSession 对象
 SqlSession session = sessionFactory.openSession();
//3. 获得相关的
dao IUserDao userDao = session.getMapper(IUserDao.class);```
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值