MyBatis

MyBatis

在这里插入图片描述

HelloWorld

导包

在这里插入图片描述
在这里插入图片描述

环境搭建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第一个配置文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二个配置文件

在这里插入图片描述
我们写的dao接口的实现文件(第二个配置文件),mybatis默认是不知道的,需要在全局配置文件(第一个配置文件)中注册
在这里插入图片描述

测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

导入dtd,写xml有提示

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

HelloWorld-Plus

dao

在这里插入图片描述

dao接口实现文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试

查询
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开日志详情
在这里插入图片描述
在这里插入图片描述
根据日志得知没有成功提交数据到数据库,手动提交
在这里插入图片描述
在这里插入图片描述

全局配置文件

在这里插入图片描述
在这里插入图片描述

<properties>标签引用外部配置文件

https://mybatis.org/mybatis-3/zh/configuration.html#properties
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<settings>标签

https://mybatis.org/mybatis-3/zh/configuration.html#settings
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<typeAlias>标签

为一个bean起别名
在这里插入图片描述
在这里插入图片描述
指定一个别名
在这里插入图片描述
在这里插入图片描述
为整个包里的bean起别名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<typeHandlers>标签

在这里插入图片描述
可自定义类处理器
在这里插入图片描述

<environments>标签

https://mybatis.org/mybatis-3/zh/configuration.html#environments
在这里插入图片描述
在这里插入图片描述

<databaseIdProvider>数据库厂商标识

数据库切换时sql语句可移植
在这里插入图片描述
在这里插入图片描述

<mappers>映射器

三种配置方法:resource、URL、class
在这里插入图片描述
在这里插入图片描述
解决
在这里插入图片描述
class基于注解的dao配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
批量注册dao
在这里插入图片描述

SQL映射文件

helloworld

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

获取自增主键的值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
获取自增主键的值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

获取非自增主键的值

在这里插入图片描述
在这里插入图片描述

参数的各种取值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

传入多个参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解决异常
在这里插入图片描述
在这里插入图片描述

命名参数

在这里插入图片描述
在这里插入图片描述

传入pojo

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

传入map

在这里插入图片描述
在这里插入图片描述

#{}与${}

在这里插入图片描述
测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

oracle下jdbcType需要指定

jdbcType指定数据类型
在这里插入图片描述
在这里插入图片描述

查询返回list

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查询返回map

单个对象封装map

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

多个对象封装map

在这里插入图片描述
在这里插入图片描述
测试
在这里插入图片描述
在这里插入图片描述
解决
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

resultMap自定义封装规则

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解决属性不匹配问题
1、起别名
2、resultMap自定义封装规则
在这里插入图片描述
在这里插入图片描述
resultMap自定义封装规则
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

联合查询

级联属性

一个bean里还有一个bean

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<association>标签

在这里插入图片描述

collection

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分步查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

按需加载和延迟加载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

collection分步查询,延迟加载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

动态sql

在这里插入图片描述

if标签

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
封装对象查询
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

where标签

可以去掉前面的and,后面的and无法去掉
在这里插入图片描述
在这里插入图片描述

trim标签

在这里插入图片描述
在这里插入图片描述

foreach标签

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

choose分支选择

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

if+set完成mybatis动态更新

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

OGNL语言

在这里插入图片描述
在这里插入图片描述

抽取可重用sql

在这里插入图片描述

缓存

缓存简介

在这里插入图片描述

一级缓存

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一级缓存失效的几种情况

1、不同的SqlSession使用不同的一级缓存
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、同一个方法,不同的参数,会发新的sql
在这里插入图片描述
在这里插入图片描述
3、在这个sqlSession期间,执行一次增删改操作会清空缓存,会发新的sql
在这里插入图片描述
在这里插入图片描述
4、两次查询之间,手动清空缓存,会发新的sql
在这里插入图片描述
在这里插入图片描述

二级缓存

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

缓存的查询顺序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

缓存原理

在这里插入图片描述

缓存的相关属性

在这里插入图片描述
在这里插入图片描述

整合第三方缓存

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SSM整合

导包

1、Spring
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、SpringMVC
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、MyBatis

在这里插入图片描述

4、其他
在这里插入图片描述

配置

1、web.xml

配置Spring容器启动
配置springmvc的前端控制器
字符编码
支持Rest风格的过滤器
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>7.SSM</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <!-- 配置Spring容器启动: -->
  <!-- needed for ContextLoaderListener -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<!--指定spring配置文件位置  -->
		<param-value>classpath:spring/applicationContext.xml</param-value>
	</context-param>

	<!-- Bootstraps the root web application context before servlet initialization -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	<!-- 配置springmvc的前端控制器 -->
	<!-- The front controller of this Spring Web application, responsible for handling all application requests -->
	<servlet>
		<servlet-name>springDispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:spring/applicationContext-mvc.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<!-- Map all requests to the DispatcherServlet for handling -->
	<servlet-mapping>
		<servlet-name>springDispatcherServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	
	<!--  两个标准配置-->
	<!-- 字符编码 -->
	<filter>
		<filter-name>CharacterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>utf-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>CharacterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<!-- 支持Rest风格的过滤器 -->
	<filter>
		<filter-name>HiddenHttpMethodFilter</filter-name>
		<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>HiddenHttpMethodFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
</web-app>

2、SpringMVC
application-mvc.xml

SpringMVC只扫描控制器;禁用默认的规则
配置文件上传解析器
扫静态资源
扫动态资源
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

	<!-- SpringMVC只扫描控制器;禁用默认的规则 -->
	<context:component-scan base-package="com.atguigu" use-default-filters="false">
		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
	</context:component-scan>
	
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/pages/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>
	
	<!--配置文件上传解析器  -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="defaultEncoding" value="utf-8"></property>
		<property name="maxUploadSize" value="#{1024*1024*20}"></property>
	</bean>
	
	<!-- 扫静态资源 -->
	<mvc:default-servlet-handler/>
	<!-- 扫动态  -->
	<mvc:annotation-driven></mvc:annotation-driven>

</beans>

application.xml

Spring除过控制器不要,剩下的业务逻辑组件都要,包括dao,包括service
导入外部配置文件
配置JdbcTemplate操作数据库,pass 
配置使用mybatis操作数据库
可以根据配置文件得到sqlSessionFactory
配置事务控制;配置事务管理器,让他控制住数据源里面的链接的关闭和提交
配置事务增强、事务属性、事务建议
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
	xsi:schemaLocation="http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">

	<!-- Spring除过控制器不要,剩下的业务逻辑组件都要,包括dao,包括service -->
	<context:component-scan base-package="com.atguigu" >
		<!-- 扫描排除不写use-default-filters="false" -->
		<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
	</context:component-scan>
	
	<!--0、导入外部配置文件  -->
	<context:property-placeholder location="classpath:dbconfig.properties"/>
	<!--1、配数据源  -->
	<bean id="ds" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="user" value="${jdbc.user}"></property>
		<property name="password" value="${jdbc.password}"></property>
		<property name="driverClass" value="${jdbc.driverClass}"></property>
		<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
		<property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>
		<property name="minPoolSize" value="${jdbc.minPoolSize}"></property>
	</bean>
	
	<!--2、配置JdbcTemplate操作数据库。pass  -->
	<!--3、配置使用mybatis操作数据库  -->
	<!-- 可以根据配置文件得到sqlSessionFactory -->
	<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 指定配置文件位置 -->
		<property name="configLocation" value="classpath:mybatis/mybatis-config.xml"></property>
		<property name="dataSource" ref="ds"></property>
		<!-- 指定xml映射文件的位置 -->
		<property name="mapperLocations" value="classpath:mybatis/mapper/*.xml"></property>
	</bean>
	<!-- 我们要把每一个dao接口的实现加入到ioc容器; -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- 指定dao接口所在的包 -->
		<property name="basePackage" value="com.atguigu.dao"></property>
	</bean>
	<!-- <mybatis-spring:scan base-package="com.atguigu.dao"/> -->
	
	
	<!--4、配置事务控制;配置事务管理器,让他控制住数据源里面的链接的关闭和提交  -->
	<bean id="tm" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="ds"></property>
	</bean>
	
	<!--5、基于xml配置,配置事务;哪些方法切入事务还要写切入点表达式  -->
	<aop:config>
		<!--配置切入点表达式  -->
		<aop:pointcut expression="execution(* com.atguigu.service.*.*(..))" id="txPoint"/>
		<aop:advisor advice-ref="myTx" pointcut-ref="txPoint"/>
	</aop:config>
	
	<!--6、配置事务增强、事务属性、事务建议  
	 transaction-manager="tm":指定要配置的事务管理器的id
	-->
	<tx:advice id="myTx" transaction-manager="tm">
		<!-- 配置事务属性 -->
		<tx:attributes>
			<tx:method name="*" rollback-for="java.lang.Exception"/>
			<tx:method name="get*" read-only="true"/>
			<!-- <tx:method name="insertEmp" isolation="READ_UNCOMMITTED"/> -->
		</tx:attributes>
	</tx:advice>

</beans>

逆向工程

在这里插入图片描述

pageHelper

环境搭建

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值