概述
mybatis是一个很棒的基于Java的持久层框架,内部封装了jdbc,让开发者在加载驱动、创建连接、编写语句等复杂过程上不用再花费精力。
Mybatis通过xml或者注解来配置各种要执行的语句,并通过Java对象与语句中SQL动态参数的映射生成最终要执行的SQL语句。
最后,mybatis框架执行SQL,将结果映射到Java对象并返回。 ORM的思想用于解决实体到数据库映射的问题,封装JDBC,保护JDBC API的底层访问细节。这允许您完成数据库持久化操作,而无需处理jdbc API。
开发步骤
为MyBatis 添加坐标。 创建用户数据表。 编写用户实体类。 编写映射文件UserMapper.xml。 编写核心文件SqlMapConfig.xml。 编写一个测试类。
1. 搭建环境
1.1 导入MyBatis坐标及其他相关坐标。
1.2 创建用户数据表
1.3 编写用户实体
1.4 编写UserMapper映射文件
1.5 编写jdbc.properties配置文件
1.6 编写MyBatis核心文件
?xml 版本=’1.0′ 编码=’UTF-8′ ?
!DOCTYPE 配置PUBLIC ‘-//mybatis.org//DTD 配置3.0//EN’ ‘http://mybatis.org/dtd/mybatis-3-config.dtd’
作品
!–通过properties标签加载外部属性文件–
属性资源=’jdbc.properties’/properties
!–数据源环境–
环境默认=’开发’
环境ID=’开发’
事务管理器类型=’JDBC’/transactionManager
数据源类型=’POOLED’
属性名称=’驱动程序’值=’${jdbc.driver}’/
属性名称=’url’ 值=’${jdbc.url}’/
属性名称=’用户名’值=’${jdbc.username}’/
属性名称=’密码’值=’${jdbc.password}’/
/信息来源
/环境
/环境
!–加载映射文件–
映射器
映射器资源=’com/itheima/mapper/UserMapper.xml’/mapper
/映射器
/作品
2. 编写测试代码
映射文件
插图:
增删改查
插入操作注意事项
在插入语句中,使用插入标记和映射文件中的parameterType 属性来指定要插入的数据类型。在SQL语句中,使用#{实体属性名称}方法引用实体属性值。用于插入操作的API是sqlSession.insert(‘namespace.id’,entity object);因为插入操作涉及到修改数据库数据,所以要注意sqlSession对象所代表的提交事务,即sqlSession.commit()修改操作。
使用update 标签来修改语句。修改操作使用的API是sqlSession.update(‘namespace.id’,entity object);删除操作要小心。
要在删除语句中使用删除标记并引用传入的单个参数,请在SQL 语句中使用#{任意字符串}方法。删除操作使用的API是sqlSession.delete(‘namespace.id’,Object);概括
配置文件
核心配置文件深入
相应API
Dao层实现
常规开发模式
创建UserDao接口,创建UserDaoImpl来实现测试、传统方法、代理开发方法。
总结:Mapper接口开发方式需要程序员简单的编写一个Mapper接口(相当于Dao接口)。 Mybatis框架根据接口定义为接口创建动态代理对象。代理对象的方法体与上面Dao接口实现类的方法相同。
Mapper接口开发必须遵守以下规范:
Mapper.xml 文件中的命名空间与Mapper 接口的完全限定名称相同。 Mapper接口中的方法名称与Mapper.xml中定义的每个语句的ID相同。 Mapper接口方法的输出参数类型与mapper.xml中定义的各个SQL resultType的类型相同。编写UserMapper接口。
执行
用户映射器接口:
UserMapper.xml 文件:
sqlMapConfig.xml 文件:
?xml 版本=’1.0′ 编码=’UTF-8′ ?
!DOCTYPE 配置PUBLIC ‘-//mybatis.org//DTD 配置3.0//EN’ ‘http://mybatis.org/dtd/mybatis-3-config.dtd’
作品
!–通过properties标签加载外部属性文件–
属性资源=’jdbc.properties’/properties
!–自定义别名–
类型别名
typeAlias type=’com.User’ 别名=’user’/typeAlias
/type别名
!–数据源环境–
环境默认=’开发’
环境ID=’开发’
事务管理器类型=’JDBC’/transactionManager
数据源类型=’POOLED’
属性名称=’驱动程序’值=’${jdbc.driver}’/
属性名称=’url’ 值=’${jdbc.url}’/
属性名称=’用户名’值=’${jdbc.username}’/
属性名称=’密码’值=’${jdbc.password}’/
/信息来源
/环境
/环境
!–加载映射文件–
映射器
映射器资源=’com.itheima.mapper\UserMapper.xml’/mapper
/映射器
/作品
测试代码:
amp;from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=plyFu7rnW1%2BcLnuIxIwoa3ts%2BMw%3D” />
注解开发
概述:Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper映射文件。
常用注解
@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可以与@Result 一起使用,封装多个结果集@One:实现一对一结果集封装@Many:实现一对多结果集封装
案例实现
注意:此处省略了环境搭建、数据库的设计展示、连接数据库文件的编写等操作。
1. 创建实体
2. 编写sqlMapConfig.xml文件
<?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”>
<configuration>
<!–通过properties标签加载外部properties文件–>
<properties resource=”jdbc.properties”></properties>
<!–自定义别名–>
<typeAliases>
<typeAlias type=”com.itheima.domain.User” alias=”user”></typeAlias>
</typeAliases>
<!–注册类型处理器–>
<typeHandlers>
<typeHandler handler=”com.itheima.handler.DateTypeHandler”></typeHandler>
</typeHandlers>
<!–数据源环境–>
<environments default=”development”>
<environment id=”development”>
<transactionManager type=”JDBC”></transactionManager>
<dataSource type=”POOLED”>
<property name=”driver” value=”${jdbc.driver}”/>
<property name=”url” value=”${jdbc.url}”/>
<property name=”username” value=”${jdbc.username}”/>
<property name=”password” value=”${jdbc.password}”/>
</dataSource>
</environment>
</environments>
<!–加载映射关系–>
<mappers>
<!–指定接口所在的包–>
<package name=”com.itheima.mapper”/>
</mappers>
</configuration>
3. 接口实现
4. 测试类
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/84204.html