首页 > 其他分享 >MyBatis学习笔记--wsdchong

MyBatis学习笔记--wsdchong

时间:2022-10-26 11:36:01浏览次数:49  
标签:语句 配置文件 映射 -- 元素 mybatis wsdchong SQL MyBatis


前言:学编程和学绘画一样,都是从模仿开始。

初识mybatis、mybatis的核心配置、动态SQL、mybatis的关联映射、与spring的整合。

 

一、初识mybatis

概念:

1mybatis是一个支持普通SQL查询、存储过程以及高级映射的持久层框架。它消除了几乎所有JDBC代码和参数的手动设置以及对结果集的检索,只需要手动配置提供POJO、SQL和映射关系,就可以使得Java开发人员使用面向对象的编程思想操作数据库。

Mybatis的使用,只需在应用程序中引入核心包和依赖包即可。

2MyBatis入门程序:查询用户(单条数据的精确查询、多条数据的模糊查询)select、添加用户insert、更新用户update、删除用户delete。

在MySQL中创建数据库db_mybatis.db;在src目录创建log4j.properties文件、核心配置文件mybatis-config.xml。

 

使用:

1调试一个具有增删改查的mybatis入门程序

 

二、mybatis的核心配置

1核心对象:SqlSessionFactory、SqlSession。

SqlSessionFactory是单个数据库映射关系经过编译后的内存镜像,用于创建SqlSession。

SqlSession是应用程序与持久层之间执行交互操作的一个单线程对象,用于执行持久层操作。包含了数据库中所有执行SQL操作的方法,底层封装了JDBC连接,可以使用其实例执行已映射的SQL语句。

2配置文件元素:<configuration>元素是配置文件的根元素。其子元素必须从上到下进行配置。

<properties>:配置属性,用子元素property连接数据库的4个属性

<settings>:设置,开启耳机缓存、延迟加载等

<typeAliases>:定义别名,为了减少全限定类的冗余

<typeHandlers>:类型处理器,将预处理语句中传入的参数从Java类型转换为JDBC类型,或者从数据库取出结果时将JDBC类型转换为Java类型。

<objectFactory>:对象工厂,实例化目标类

<plugins>:插件

<environment>:对数据源配置。<dataSource>、<transactionManage>r

<databaseIdProvider>

<mappers>:指定mybatis映射文件的位置。

3映射文件:<mapper>元素是映射文件的根元素。

<select>:映射查询语句

<insert>:映射插入语句

<update>:更新

<delete>:删除

<sql>:定义可重用的SQL代码片段。

<cache>

<cache-ref>

<resutMap>:结果映射集(用于一对一或一对多关联)

 

三、动态SQL

1MySQL提供对SQL语句动态组装的功能。

<if>:常用的判断语句。用于实现简单的条件选择

<choose>(<when>\<otherwise>):从多个选项中选择一个执行

<where>\<thrim>:保证当条件不成立时拼接起来的SQL语句在执行中不报错

<set>:更新操作

<foreach>:用于数字和集合循环遍历的方式。

<bind>:使只使用mybatis的语言即可与所需参数连接。

 

四、mybatis的关联映射

1一对一:通过<resultMap>元素中的<association>子元素处理。有嵌套查询和嵌套结果两种配置方式

2一对多:通过<resyltMap>元素中的<collection>子元素处理。

3多对多:使用一个中间表来维护。

 

五、mybatis和spring的整合

1整合环境搭建:导入所需包;编写配置文件;

导入所需包:spring框架(4个核心模块的包、AOP开发使用的包、IDBC和事务的包)、mybatis框架(核心包和依赖包)、mybatis-spring-1.3.1.jar、mysql-cnnector-java-5.1.7-bin.jar、数据源所需包

编写配置文件:db.properties、ApplicationContext.xml、mybatis-config.xml

 

2传统DAO方式的开发整合:实现持久层、实现DAO层、整合测试。

在实现类中会出现大量重复代码,在方法中也需要指定映射文件中执行语句的ID,并且不能保证编写ID的正确性。

 

3mapper接口方式的开发整合:基于MapperFactoryBean的整合、基于MapperScannerConfigurer的整合。

 

 

标签:语句,配置文件,映射,--,元素,mybatis,wsdchong,SQL,MyBatis
From: https://blog.51cto.com/u_15847108/5797528

相关文章

  • mysql主从复制
    1.主数据库配置添加cat/etc/my.cnf添加:[mysqld]server-id=1log-bin=master-binlog-slave-updates=true#需要重启mysql服务dockerrestartmysql2.主数据库设......
  • JSP笔记以及理解
    时间:2020/4/21前言:课件笔记、JSP的缺点笔记来源:老师的课件一、课件笔记1JSP(Javaserverpages)是一种用于开发动态网页的技术,文件后缀名是.jsp在JSP页面中可以嵌套Java代码,为......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践(一)基本要求1.编写Python程序,调用OpenDaylight的北向接口实现以下功能(1)利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight;(2)......
  • axios请求拦截器和响应拦截器
    importaxiosfrom'axios';constservice=axios.create({baseURL:'http://test.com/api/',headers:{'X-Requested-With':'XMLHttpRequest'},withCred......
  • CSS的理解
    本质全称为层叠样式表(cascadingstylesheets)。属于修饰HTML文件的语言。如果把HTML比作成word文档的基本内容,CSS就是修饰word的设计和布局部分,使基本的文档样式更多,布局更......
  • Vue 结合Sortablejs实现table行排序
    场景在一个列表展示页面上,使用了表格组件,原有组件本身不支持拖拽功能,需求要求在列表的基础上支持行拖拽排序。因此引入了www.sortablejs.com插件。问题引入Sortablejs后......
  • HTML的理解
    前言主要有三个理解:一个是HTML的本质,一个是它的核心,一个是它的基本内容。本质全称为超文本标记语言(hyperTextMarkupLanguage),顾名思义,首先是一种语言,然后是标记语言,最后是......
  • iCore-3588MQ 车规级AI核心板
    iCore-3588MQ采用Rockchip全新的车规级八核AISOC芯片RK3588M,支持8K视频编解码,支持七屏同时显示,支持多达16路摄像头输入,可实现大广角无缝拼接。可扩展硬盘、千兆网、WiFi6......
  • Vue+element-ui结束时间大于开始时间,否则置灰无法选择
    精简的一篇博客  在data里面编写  ......
  • 我的CSDN收藏
    时间:2020年4月13日事件:整理很久没管理的收藏原因:最近在博客上学习比较多,发现学得多不如学得透彻好。有许多的人的经验值得仔细去感受。每天的第一件事就是看收藏,而不是看推......