Mybatis(2)

回顾
1.框架的概述

框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件

2.JDBC编程问题分析

1、数据库连接、创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库连接池可解决此问题。

2、sql语句在代码中硬编码,造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。

3、使用preparedStatement向占有位符号传参数存在硬编码,因为sql语句的where条件不一定,可能多也可能少,修改sql 还要修改代码,系统不易维护。

4、对结果集解析存在硬编码(查询列名),sql变化导致解析代码变化,系统不易维护,如果能将数据库记录封装成pojo对象解析比较方便。

3.mybatis框架概述

MyBatis是一款优秀的持久层框架,它不需要像JDBC那样去写复杂代码、手动设置参数、繁琐的处理结果集。它采用简单的XML配置 + 接口方法的形式实现对数据库的增删改查,使得让程序员只关注sql本身

4.MyBatis的快速入门 执行原理

1. 原生代码操作数据库需要5步骤
   1. 加载核心配置文件(SqlMapConfig.xml)
   2. 构建SqlSessionFactory工厂对象
   3. 通过工厂创建SqlSession会话对象(Connection)
   4. 执行sql语句
   5. 释放资源

5.基于接口代理方式实现dao开发规范
  1. Mapper映射文件的namespace与Mapper接口全限定名一致
  2. Mapper接口的方法名与id的属性名一致
  3. 方法的参数类型与parameterType属性类型一致
  4. 方法的返回值类型(集合的泛型才是返回值的类型)与resultType属性类型一致
  5. 映射文件需要与接口在同一个包下,文件名和接口名相同
今日知识点
6.配置文件属性说明:

1. resultType 属性:用于指定结果集的类型。

2. parameterType 属性:用于指定传入参数的类型。

3. sql 语句中使用#{}字符:它代表占位符,相当于原来 jdbc 部分所学的?

7.#{}与${}的区别

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

${}表示拼接sql字符串。通过${}可以将parameterType传入的内容拼接在sql中且不进行jdbc类型转换, ${}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value。

特别注意:${}表示拼接sql字符串,有sql注入风险,实际开发不建议采用这种模糊查询方式

8.resultMap完成属性映射标签:

id 标签:用于指定主键字段

result 标签:用于指定非主键字段

column 属性:用于指定数据库列名

property 属性:用于指定实体类属性名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值