网站开发学什么数据库,网站建设方案样本,网站数据库购买,签署网站建设协议新闻MyBatis中文网#xff1a;https://mybatis.net.cn/ 1 什么是 MyBatis#xff1f;
MyBatis 是一款优秀的持久层框架#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 MyBatis 可以通过简单的 XML 或… MyBatis中文网https://mybatis.net.cn/ 1 什么是 MyBatis
MyBatis 是一款优秀的持久层框架它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJOPlain Old Java Objects普通老式 Java 对象为数据库中的记录。 持久层指的是就是数据访问层(dao)是用来操作数据库的。 2 Mybatis基础操作
根据主键 ID 删除数据
//使用#{key}方式获取方法中的参数值
Delete(delete from emp where id #{id})
public void delete(Integer id);新增可主键返回
Options(useGeneratedKeys true,keyProperty id) // 会自动将生成的主键值赋值给emp对象的id属性可省略
Insert(insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time) values (#{username}, #{name}, #{gender}, #{image}, #{job}, #{entrydate}, #{deptId}, #{createTime}, #{updateTime}))
public void insert(Emp emp);更新
Update(update emp set username#{username}, name#{name}, gender#{gender}, image#{image}, job#{job}, entrydate#{entrydate}, dept_id#{deptId}, update_time#{updateTime} where id#{id})
public void update(Emp emp);查询
Select(select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_time from emp where id#{id})
public Emp getById(Integer id);3 Mybatis的XML配置文件
Mybatis的开发有两种方式分别是注解和XML
3.1 XML配置文件规范
在Mybatis中使用XML映射文件方式开发需要符合一定的规范 XML映射文件的名称与Mapper接口名称一致并且将XML映射文件和Mapper接口放置在相同包下同包同名XML映射文件的namespace属性为Mapper接口全限定名一致XML映射文件中sql语句的id与Mapper接口中的方法名一致并保持返回类型一致。
XML配置文件
?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtdmapper namespacecom.wuyh.mapper.EmpMapperselect idlist2 resultTypecom.wuyh.pojo.Empselect * from mybatis.emp where name like concat(%, #{name}, %) and gender #{gender} and entrydate between #{begin} and #{end} order by update_time desc/select
/mapper使用Mybatis的注解主要是来完成一些简单的增删改查功能。如果需要实现复杂的SQL功能建议使用XML来配置映射语句。 4 Mybatis动态SQL
动态SQLSQL语句会随着用户的输入或外部条件的变化而变化。
if用于判断条件是否成立。使用test属性进行条件判断如果条件为true则拼接SQL。
if test条件表达式要拼接的sql语句
/ifwherewhere元素只会在子元素有内容的情况下才插入where子句而且会自动去除子句的开头的AND或OR
set动态地在行首插入 SET 关键字并会删掉额外的逗号。用在update语句中
foreach为批量处理数据提供循环遍历操作。
foreach collection集合名称 item集合遍历出来的元素/项 separator每一次遍历使用的分隔符 open遍历开始前拼接的片段 close遍历结束后拼接的片段
/foreachsql定义可重用的SQL片段。 include通过属性refid指定包含的SQL片段。 通过sql标签封装到一个SQL片段然后再通过include标签进行引用。两者配合使用 作用对重复的SQL代码片段进行封装减少冗余。