您的位置:首页 > 游戏 > 手游 > 深圳网站建设注意事项_软件开发具体工作内容_网站推广100种方法_不受国内限制的浏览器

深圳网站建设注意事项_软件开发具体工作内容_网站推广100种方法_不受国内限制的浏览器

2024/12/22 19:22:07 来源:https://blog.csdn.net/qq_41187116/article/details/144153219  浏览:    关键词:深圳网站建设注意事项_软件开发具体工作内容_网站推广100种方法_不受国内限制的浏览器
深圳网站建设注意事项_软件开发具体工作内容_网站推广100种方法_不受国内限制的浏览器

Mybatis基础环境准备请看:Mybatis基础环境准备
本篇讲解Mybati数据CRUD数据操作之单条件查询

1,编写接口方法

com.itheima.mapper 包写创建名为 BrandMapper 的接口。并在该接口中定义 List<Brand> selectAll() 方法。

/*** 查看详情:根据Id查询*/
Brand selectById(int id);

2,编写SQL语句

​ 在 reources 下创建 com/itheima/mapper 目录结构,并在该目录下创建名为 BrandMapper.xml 的映射配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.itheima.mapper.BrandMapper"><resultMap id="brandResultMap" type="brand"><!--id:完成主键字段的映射column:表的列名property:实体类的属性名result:完成一般字段的映射column:表的列名property:实体类的属性名--><result column="brand_name" property="brandName"/><result column="company_name" property="companyName"/></resultMap><select id="selectById"  resultMap="brandResultMap">select *from tb_brand where id = #{id};
</select>
</mapper>

3,编写测试方法

MybatisTest 类中编写测试查询所有的方法

 @Test
public void testSelectById() throws IOException {//接收参数,该id以后需要传递过来int id = 2;//1. 获取SqlSessionFactoryString resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//2. 获取SqlSession对象SqlSession sqlSession = sqlSessionFactory.openSession();//3. 获取Mapper接口的代理对象BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);//4. 执行方法Brand brand = brandMapper.selectById(id);System.out.println(brand);//5. 释放资源sqlSession.close();
}

执行测试方法结果如下:
在这里插入图片描述

结果与数据库里信息一致。

4,参数占位符

控制台显示的SQL语句,能看到使用?进行占位。说明我们在映射配置文件中的写的 #{id} 最终会被?进行占位
mybatis提供了两种参数占位符:

  • #{} :执行SQL时,会将 #{} 占位符替换为?,将来自动设置参数值。从上述例子可以看出使用#{} 底层使用的是 PreparedStatement

  • ${} :拼接SQL。底层使用的是 Statement,会存在SQL注入问题

    <select id="selectById"  resultMap="brandResultMap">select *from tb_brand where id = ${id};
    </select>
    

    大家开发过程中,还是使用#{}占位!

4,parameterType使用

对于有参数的mapper接口方法,我们在映射配置文件中应该配置 ParameterType 来指定参数类型。只不过该属性都可以省略。如下图:

  <select id="selectById" parameterType="int"  resultMap="brandResultMap">select *from tb_brand where id = #{id};
</select>

5,SQL语句中特殊字段处理

SQL语句中会有特殊字符,比如大于号。
因为映射配置文件是xml类型的问题,而 > < 等这些字符在xml中有特殊含义,所以此时我们需要将这些符号进行转义,可以使用以下两种方式进行转义:

  • 转义字符

下图的 &lt; 就是 < 的转义字符。
在这里插入图片描述

  • CDATA区

    <![CDATA[ 内容 ]]>

在这里插入图片描述

[声明]:内容主要来源黑马程序员网上资源学习

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com