Mybatis基于注解与XML开发使用流程
作者:学废Java
MyBatis是Java的持久化框架,目的是为了使操作数据库更加方便、灵活、高效,可以通过Java注解和XML文件来映射Java对象和SQL语句,提供了非常灵活的SQL编写方式和动态SQL语句的创建方式,这篇文章主要介绍了Mybatis基于注解与XML开发,需要的朋友可以参考下
1 关于SpringBoot
SpringBoot是一个基于Spring框架的快速开发的脚手架,它能够帮助我们开发者快速搭建项目环境,并提供了一些建议的配置方式,降低了开发者程序的开发和部署难度。
2 关于MyBatis
2.1 MyBatis概述
MyBatis是Java的持久化框架,目的是为了使操作数据库更加方便、灵活、高效。可以通过Java注解和XML文件来映射Java对象和SQL语句,提供了非常灵活的SQL编写方式和动态SQL语句的创建方式,可以与Spring框架结合使用。
2.2 MyBatis核心思想
将Java对象和数据库操作分离,通过注解和XML映射文件映射到数据库的字段上,并提供相应的API来操作数据库。可以自动将SQL语句转为JDBC代码,并根据指定的返回值类型生成对应的结果提供给开发者使用。
2.3 MyBatis使用流程
1.配置MyBatis环境
在pom.xml中添加相关依赖:MyBatis Framework 和 MySQL Driver
2.配置文件中配置数据库的连接信息(application.properties)
spring.datasource.url=jdbc:mysql://localhost:3306/blog?characterEncoding=utf8&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=root
3.定义pojo类,和数据表做好映射关系
4.编写Dao层接口,在接口中定义操作数据库的方法,在注解或者XML文件中实现具体的SQL语句。
@Mapper public interface UserMapper{ @Insert("INSERT INTO user VALUES(NULL,#{username})") int insert(User user); }
5.使用
// 1.自动装配 @Autowired private UserMapper userMapper // 2.调用方法 userMpper.insert(...)
3 MyBatis配置SQL方式
3.1 基于注解方式
3.1.1 说明
基于注解方式省去了配置XML文件的编写工作,并且可以很方便的完成一些 简单的 CRUD操作,但是对于一些复杂的SQL语句使用起来会很冗余。
3.1.2 使用流程
- (maven工程)在pom.xml中添加MyBatis和MySQL相关的依赖
- 在配置文件中(application.properties)配置数据库的连接信息
- 创建实体类,和数据库中的表做好对应关系
- 配置Mapper接口,在接口中添加@Mapper注解,告诉底层为此接口创建实现类,在实现类中定义数据访问的逻辑,执行与数据库的会话
- 在接口中定义方法,在方法上使用注解标注SQL语句的类型,可以使用的注解有:@Insert、@Dlelete、@Update、@Select
- 如果SQL语句中涉及到多个参数,可以使用@Param注解给每个参数取名。
- 自动装配并在应用程序中使用即可
@Autowired private XxxMapper xxxMapper; xxxMapper.接口中的方法(参数...);
3.1.3 常用注解
- @Insert(“SQL”)
- @Dlelete(“SQL”)
- @Update(“SQL”)
- @Select(“SQL”)
3.2 基于XML方式
3.2.1 相比注解优势
- 更好的可读性
- XML文件具有良好的结构和语义,可以使JAVA代码和SQL语句彻底分离,便于管理和优化。注解配置SQL语句可能使JAVA代码变的冗长。
- 更好的复用性
- 将SQL语句写入XML文件中,通过 和标签 将重复的SQL抽取并引用,从而提高了SQL语句的复用性。
- 更好的支持动态SQL
- 动态SQL语句是根据运行时的参数来生成的SQL,复杂性较高,使用XML文件更加方便。
3.2.2 使用流程
- 添加依赖:pom.xml
- 配置数据源:application.propertis
- 配置xml文件的扫描路径:application.properties
- 创建实体类,做好和数据表的对应关系
- 定义接口,添加@Mapper注解,并定义接口中的方法
- 创建xml文件,使用标签配置SQL
- 装配使用
@Autowired private XxxMapper xxxMapper; xxxMapper.接口方法(参数...);
3.2.3 常用标签
- insert标签
- delelte标签
- update标签
- select标签
使用select标签需要指定 resultType 的属性值 - foreache标签:用于动态删除
<delete id="xxx"> DELETE FROM xxx WHERE id in( <foreache collection="对象类型" item="变量名" separator="分隔符"> #{变量名} </foreache> ) </delete>
set标签和if标签:用于动态修改
<update id="xxx"> UPDATE xxx <set> <if test="属性名!=null">字段名=#{属性名},</if> <if test="属性名!=null">字段名=#{属性名},</if> <if test="属性名!=null">字段名=#{属性名}</if> </set> </update>
sql标签和include标签:用于SQL语句的复用
<!--1.重复SQL抽取--> <sql id="selectSql"> SELECT * FROM xxx </sql> <select id="xxx" resultType="xxx"> <include refid="selectSql"></include> </select> <select id="yyy" resultType="yyy"> <include refid="selectSql"></include> WHERE id>5 </select>
到此这篇关于Mybatis基于注解与XML开发的文章就介绍到这了,更多相关Mybatis注解XML开发内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!