8.02 Day33----MyBatis-Plus框架

目录

MyBatis-Plus框架:

持久层:

ORM:

MyBatis与JDBC的关系:

Mybatis-Plus与SpringBoot的关系:  

学习一门框架

Mybatis-Plus苞米豆baomidou官方文档

建一个springboot-mybatisplus-01工程:

1.新建一个工程

 2.整合JSP目录:

1.需要配置web目录(或者叫webapp),放在src/main/web里面

 2.安装JSP依赖(放在dependencies里面,千万不能放在dependencyManagement里面的dependencies)

3.配置maven打包web目录(写在pom.xml中的build标签中,把pligins折叠起来写在后面)

​编辑 

4.Mybatis-Plus基础配置参数

 代码写在工的哪个包里:

在mapper子包中定义接口:

在XML文件中编写SQL语句:

在启动类中使用@MapperScan("mapper包的全路径")注解

如何拿到框架创建的Mapper接口的实现类?

如何拿到框架创建的Mapper接口的实现类的对象?

用注解拿对象:

 操作User表的持久层接口:

安装插件(可以实现接口/xml文件快速访问): 

 增:

开启SQL日志打印功能(方便在测试的时候排查错误)

 物理删除:

 逻辑删除:

改:

 MyBatis写SQL语句的几种方式:

 配置打包文件:


MyBatis-Plus框架:

持久层:

操作数据存储的层,与什么数据库无关,与什么技术无关

ORM:

O(Object) R(Relationship) M(Mapping)对象关系映射

MyBatis框架就是一款持久层的ORM框架

MyBatis与JDBC的关系:

MyBatis的底层就是JDBC,基于反射技术在运行时调用JDBC

Mybatis-Plus与SpringBoot的关系:  

Mybatis-Plus框架能够与SpringBoot无缝衔接

学习一门框架

  1. 搭建环境
    1. 安装哪些依赖 (三方库)
    2. 需要哪些配置
    3. 框架提供了哪些API
  2. 如何应用
  3. 研究它的底层

Mybatis-Plus苞米豆baomidou官方文档

MyBatis-Plus

建一个springboot-mybatisplus-01工程:

1.新建一个工程

 

 

 

 2.整合JSP目录:

1.需要配置web目录(或者叫webapp),放在src/main/web里面

 

 2.安装JSP依赖(放在dependencies里面,千万不能放在dependencyManagement里面的dependencies)

 <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
            <scope>provided</scope>
        </dependency>
 

3.配置maven打包web目录(写在pom.xml中的build标签中,把pligins折叠起来写在后面)

 

  <resources>
            <resource>
                <directory>src/main/web</directory>
                <targetPath>META-INF/resources</targetPath>
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
        </resources>
 

4.Mybatis-Plus基础配置参数

 

spring.application.name=springboot-mybatisplus-01
server.port=8082
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.name=defaultDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/shop?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
spring.mvc.view.prefix=/jsp/
spring.mvc.view.suffix=.jsp

 

 代码写在工的哪个包里:

dao包:用原生的JDBC写,包名就叫dao

mapper包:用mybatis-plus框架写,包名建议叫mapper

创建持久层的包

 

在mapper子包中定义接口:

在XML文件中编写SQL语句:

XML文件写在resource/mapper目录中

 

 

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper>
    
</mapper>

 

在启动类中使用@MapperScan("mapper包的全路径")注解

 

如何拿到框架创建的Mapper接口的实现类?

 拿不到(因为没有物理文件,它存在于JVM内存中)

如何拿到框架创建的Mapper接口的实现类的对象?

框架说:实现类你拿不到的,对象我帮你创建好放在内存中,你直接拿对象

用注解拿对象:

 

 操作User表的持久层接口:

 

安装插件(可以实现接口/xml文件快速访问): 

在idea的插件市场中搜索并安装MybatisX插件

检查接口中的抽象方法在绑定xml文件中是否有对应标签绑定

File-Setting-Plugins-MarketPlace

 

 

 

 增:

 

 


开启SQL日志打印功能(方便在测试的时候排查错误)

mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

  

 物理删除:

 逻辑删除:

 

改:

 

 

 

 MyBatis写SQL语句的几种方式:

 1.在绑定XML文件中写<insert></insert>

<update></update>

<delete></delete>

<select></select>

 2.不需要XML文件,使用注解写@Insert

Update

@Delete

@Select

动态SQL语句还是在xml文件中写比较方便

 3.不绑定xml文件,继承官方的BaseMapper接口 

@TableName(映射表名)

@Tabled(value="",type)

@TableFiled(映射字段名)

 

 

 

 配置打包文件:

 <resources>
            <resource>
                <directory>src/main/web</directory>
                <targetPath>META-INF/resources</targetPath>
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                </includes>
            </resource>
        </resources>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Black-Scholes模型是一种用于欧式期权定价的数学模型,它可以计算出期权的理论价格。下面是Python实现Black-Scholes模型的示例代码: ```python import numpy as np import scipy.stats as si def black_scholes(S, K, T, r, sigma, option_type): """计算欧式期权的理论价格 Args: S: 标的资产的当前价格 K: 期权的行权价格 T: 期权的到期时间(以年为单位) r: 无风险利率 sigma: 标的资产的年化波动率 option_type: 期权类型,'call' 或 'put' Returns: option_price: 期权的理论价格 """ d1 = (np.log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T)) d2 = d1 - sigma * np.sqrt(T) if option_type == 'call': option_price = S * si.norm.cdf(d1) - K * np.exp(-r * T) * si.norm.cdf(d2) elif option_type == 'put': option_price = K * np.exp(-r * T) * si.norm.cdf(-d2) - S * si.norm.cdf(-d1) else: raise ValueError("Option type must be 'call' or 'put'") return option_price ``` 这个函数的参数包括标的资产的当前价格S,期权的行权价格K,期权的到期时间T,无风险利率r,标的资产的年化波动率sigma和期权类型option_type。最后函数返回期权的理论价格。在计算过程中,我们需要使用scipy库中的norm.cdf函数来计算标准正态分布的累积分布函数。 下面是一个使用这个函数计算欧式看涨期权和看跌期权理论价格的示例: ```python S = 100 K = 95 T = 0.5 r = 0.05 sigma = 0.2 call_price = black_scholes(S, K, T, r, sigma, 'call') put_price = black_scholes(S, K, T, r, sigma, 'put') print("欧式看涨期权理论价格为:", call_price) print("欧式看跌期权理论价格为:", put_price) ``` 输出结果为: ``` 欧式看涨期权理论价格为: 8.021352235143176 欧式看跌期权理论价格为: 2.7986170258806127 ``` 这个例子中,我们假设标的资产的当前价格为100,期权的行权价格为95,期权的到期时间为半年,无风险利率为5%,标的资产的年化波动率为20%。我们使用上面实现的函数计算了欧式看涨期权和看跌期权的理论价格,结果分别为8.02和2.80。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值