Mybatis教程 | 第一篇:快速开始
前言:
关于mybatis的简介就不重复累赘了,百度一下会出来很多。这里贴上官方简介:http://www.mybatis.org/mybatis-3/zh/index.html
参考资料也来源于以上链接。
简单聊一聊,自己对mybatis相比较hibernate和基于hibernate的ORM类型框架的优势:
1、系统所需的部分或全部数据来自已有的数据库,出于安全考虑,只对开发团队提供查询语句或存储过程来获取所需数据,具体的表结构不予公开。那么这个时候就需要类似select * from (select * from xxx..)的复合语句来获取数据,hibernate相较于mybatis就没有这么灵活了;
2、对于银行等对开发规范要求严格的企业,大部分会强制要求对数据库的操作都以存储形式的过程进行,mybatis也是具有优势的;
3、系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须使用高度优化的SQL或存储过程才能达到性能指标,也得益于mybatis对SQL的高度可定制的优势;
4、最重要的一点就是可以锻炼数据库能力啦(^_^)。
快速开始:
1、搭建环境(任选其一,当前demo选择的是maven项目)
a.从https://github.com/mybatis/mybatis-3/releases(mybatis官方的git)下载mybatis的压缩包,解压后在lib文件夹下有mybatis需要的jar包,将其配置进项目就可以使用mybatis框架的功能了。
提示:由于mybatis是基于JDBC的,因此还需要将JDBC的驱动包加进去,使用哪个数据库就加相应的驱动。
b.新建一个mavan项目,加入下面的依赖
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.6</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.11</version></dependency>
2、mybatis的数据库操作
a.首先在数据库中执行下面sql创建一个数据库和表
#创建一个名称为mybatis的数据库;
CREATE DATABASE mybatis;
#使用这个数据库
USE mybatis;
#创建一个tb_user表,有id、name、gender、age字段
CREATE TABLE `tb_user` (`user_id` int(11) NOT NULL AUTO_INCREMENT,`user_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,`user_gender` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,`user_age` int(11) NOT NULL,PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
b.接下来,在所有ORM框架中都有一个重要的媒介,PO(持久化对象)。
简单说明:ORM(Obeject/Relation Mapping即对象/关系映射),提倡的是用面向对象的方式进行持久化操作。
注意:mybatis中PO设计要遵循低侵入式设计。即一个字段对应一个持久化对象(PO)属性,不要求持久化类继承任何父类、或者实现任何接口(实现序列化接口除外),保证代码不被污染。另外一点就是,所有的属性不要使用基本数据类型,要使用包装类型(并不是说用基本数据类型不能运行之类的,但是在实际项目开发中,使用基本数据类型有可能会导致在整合其他框架的过程中反序列化失败)。
public class User {private Integer userId;private String userName;private String userGender;private Integer userAge;public Integer getUserId() {return userId;}public void setUserId(Integer userId) {this.userId = userId;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getUserGender() {return userGender;}public void setUserGender(String userGender) {this.userGender = userGender;}public Integer getUserAge() {return userAge;}public void setUserAge(Integer userAge) {this.userAge = userAge;}public User() {super();}public User(Integer userId, String userName, String userGender, Integer userAge) {super();this.userId = userId;this.userName = userName;this.userGender = userGender;this.userAge = userAge;}@Overridepublic String toString() {return "User [userId=" + userId + ", userName=" + userName + ", userGender=" + userGender + ", userAge="+ userAge + "]";}
}
c.创建mapper映射文件和mybatis配置文件
mapper映射文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zepal.study.dao.UserDao"><insert id="saveUser" parameterType="com.zepal.study.domain.User" useGeneratedKeys="true">INSERT INTO tb_user (user_name, user_gender, user_age)VALUES(#{userName}, #{userGender}, #{userAge});</insert>
</mapper>
mapper文件说明:
#和$的区别(mapper文件没有体现):底层实现方式就是JDBC中PreparedStatement和Statement的区别,一个是预编译进行,一个是直接发送SQL语句到数据库。直接发送sql语句到数据容易被sql注入。
<mapper>标签以前的全部是声明当前文件为mybatis的mapper文件,所有的mapper文件都是一样的声明,所以直接使用即可。
<mapper namespace="com.zepal.study.dao.UserDao"></mapper>标签为这个mapper.xml文件制定一个唯一(一定要是唯一的)的命名空间(namespace),namespace的值习惯上设置成包名+dao层接口名。
在<insert></insert>标签中编写了插入的sql语句(增删改查对应的标签分别是<insert>、<delete>、<update>、<select>),设置insert标签的id值为saveUser,id属性值必须是唯一的,不能够重复,一般对应的是dao层接口的方法。(也就是说dao层接口的方法不允许重载,以前被面试问过)
使用parameterType属性值名插入时使用的参数类型
使用useGeneratedKeys=true表示使用数据库自增长策略,这需要底层数据库的支持(比如oracle不支持自增长)。
mybatis配置文件(后续博客会详解配置文件):
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><!-- xml配置文件包含对mybatis系统的核心设置 -->
<configuration><!-- 为了能在控制台输出SQL语句,增加了log4j的日志配置 --><settings><setting name="logImpl" value="LOG4J"/></settings><!-- 环境配置:即连接的数据库 --><environments default="mysql"><environment id="mysql"><!-- 指定事务管理类型,指使用JDBC的提交和回滚设置 --><transactionManager type="JDBC"/><!-- database指数据源配置,POOLED是jdbc连接对象的数据源连接池的实现 --><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><!--amp;是xml中的转义符号,将&转义为连接符,jdbc高版本必须要加后面的参数 --><property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments><!-- mappers告诉mybatis去哪里找持久化映射文件 --><!-- 不在此路径下请更改自己mapper文件所在的路径,注意/和.的区别 --><mappers><mapper resource="com/zepal/study/mapper/UserMapper.xml"/></mappers>
</configuration>
log4j配置文件及maven依赖(后续博客会详解log4j):
#全局的日志配置
log4j.rootLogger=ERROR, stdout
#mybatis的日志配置
log4j.logger.com.zepal.study.dao.UserDao=DEBUG
#控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</version></dependency>
d.测试类(这里遇到了一个问题无法解决:从类路径下加载mybatis-config.xml配置文件的时候,必须要在配置文件前面加一个文件夹,否则一直报错SqlSessionFactory空指针,官方文档没有给出说明,就暂时跳过了)
public class Test {public static void main(String[] args) throws IOException {//从类路径下读取配置文件,不在此路径下请从其他路径加载InputStream is = Test.class.getResourceAsStream("/mybatis/mybatis-config.xml");//初始化mybatis,创建SqlSessionFactory的实例SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);//创建sqlsession实例SqlSession sqlSession = sqlSessionFactory.openSession();//创建User对象,因为前面mapper文件使用了自增长策略,这里就不添加userId属性User user = new User();user.setUserName("zepal");user.setUserGender("男");user.setUserAge(18);//当然是希望看到这篇博文的朋友永远18岁,哈哈//指明调用mapper文件中的哪个方法(注意是全路径),插入数据,返回受影响的行数int result = sqlSession.insert("com.zepal.study.dao.UserDao.saveUser", user);System.out.println("insert受影响的行数 :" + result);//提交事务sqlSession.commit();//关闭sqlSession,应该保证在finally中关闭,这里就不演示了sqlSession.close();}
}
e.完整的项目结构
f.运行测试类(很明显的在控制台看到程序运行执行的SQL语句,以及受影响的行数)
g.总结
执行上述过程,不难发现,PO(持久化对象)只有在SqlSession的管理下才可完成对数据库的访问。
使用mybatis进行持久化操作,通常有如下步骤:
1、开发持久化类PO和编写mapper.xml文件,并在mapper文件中定义要执行的sql语句;
2、获取SqlSessionFactory
3、获取SqlSession
4、用面向对象的方式(即通过SqlSession调用其方法,SqlSession的常用方法会在后续博文中讲解)操作数据库
5、提交事务,关闭SqlSession连接
Mybatis核心对象
通过上面的介绍可以知道,mybatis的持久化解决方案是将用户从原始的JDBC操作中解放出来,用户只需要关系sql语句的编写,无需关心底层的JDBC操作,就可以以面向对象的方式进行持久化操作。
在mybatis的所有操作中,都离不开Mybatis的核心对象SqlSessionFactory。所以在使用mybatis之前,不管三七二十一先创建一个SqlSessionFactory总是没错的(当然,在实际开发中需要关心的重点就是怎么去创建SqlSessionFactory,比如在整合Spring中就应该将SqlSessionFactory交给Spring的IOC容器去管理)。
SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象来获得,而SqlSessionFactoryBuilder则可以从XML配置文件(本博文的方式)或一个预先定制的Configuration的实例(http://www.mybatis.org/mybatis-3/zh/getting-started.html这里已经给出了说明)构建出SqlSessionFactory。
通过预先定制的Configuration构建SqlSessionFactory实例
SqlSessionFactory的常用方法就是openSession(),以此创建出SqlSession对象,利用SqlSession对象就可以愉快的操作CRUD了。
SqlSession的常用方法如下(SqlSession是持久化对象,里面几乎包含了所有CRUD操作,初学者请尝依次调用下面所列的所有方法,并分析结果):
int insert(String statement) | 插入方法。参数statement是mapper映射文件中定义的<insert>标签的id,返回执行sql语句受影响的行数 |
int insert(String statement, Object parameter) | 插入方法。参数statement是mapper映射文件中定义的<insert>标签的id属性,parameter是执行插入sql所需的参数,通常是对象或Map,返回执行sql受影响的行 |
int update(String statement) | 更新方法。参数statement是mapper映射文件中定义的<update>标签的id,返回执行sql语句受影响的行数 |
int update(String statement, Object parameter) | 更新方法。参数statement是mapper映射文件中定义的<update>标签的id属性,parameter是执行更新sql所需的参数,通常是对象或Map,返回执行sql受影响的行 |
int delete(String statement) | 删除方法。参数statement是mapper映射文件中定义的<delete>标签的id属性,返回执行sql语句受影响的行数 |
int delete(String statement, Object parameter) | 删除方法。参数statement是mapper映射文件中定义的<delete>标签的id属性,parameter是执行删除sql所需的参数,通常是对象或Map,返回执行sql受影响的行 |
<T> T selectOne(String statement) | 查询方法。参数statement是mapper映射文件中定义的<select>标签的id属性,返回执行sql语句查询结果的泛型对象,只能用于查询结果是单条数据。 |
<T> T selectOne(String statement, Object parameter) | 查询方法。参数statement是mapper映射文件中定义的<select>标签的id属性,parameter是执行查询sql所需的参数,通常是对象或Map,返回执行sql语句查询结果的泛型对象,只能用于查询结果是单条数据 |
<E> List<E> selectList(String statement) | 查询方法。参数statement是mapper映射文件中定义的<select>标签的id属性,返回执行sql语句查询结果的泛型对象的集合,能用于查询结果是单条或多条数据。 |
<E> List<E> selectList(String statement, Object parameter) | 查询方法。参数statement是mapper映射文件中定义的<select>标签的id属性,parameter是执行查询sql所需的参数,通常是对象或Map,返回执行sql语句查询结果的泛型对象的集合,能用于查询结果是单条或多条数据。 |
<E> List<E> selectList(String statement, Object parameter, RowBounds rowBounds); | 查询方法。参数statement是mapper映射文件中定义的<select>标签的id属性,parameter是执行查询sql所需的参数,通常是对象或Map,rowBounds参数用于分页,它的两个属性offset指查询的当前页数,limit指当前页显示多少条数据,返回执行sql语句查询结果的泛型对象的集合,能用于查询结果是单条或多条数据。 |
<K, V> Map<K, V> selectMap(String statement, String mapKey) | 查询方法。参数statement是mapper映射文件中定义的<select>标签的id属性,mapkey是返回数据的其中一个列名,执行SQL语句查询会被封装成一个Map集合返回,key就是参数mapKey传入的列名,value是封装的对象。 |
<K, V> Map<K, V> selectMap(String statement, Object parameter, String mapKey) | 查询方法。参数statement是mapper映射文件中定义的<select>标签的id属性,parameter是执行查询sql所需的参数,通常是对象或Map,mapkey是返回数据的其中一个列名,执行SQL语句查询会被封装成一个Map集合返回,key就是参数mapKey传入的列名,value是封装的对象。 |
<K, V> Map<K, V> selectMap(String statement, Object parameter, String mapKey, RowBounds rowBounds) | 查询方法。参数statement是mapper映射文件中定义的<select>标签的id属性,parameter是执行查询sql所需的参数,通常是对象或Map,mapkey是返回数据的其中一个列名,rowBounds参数用于分页,它的两个属性offset指查询的当前页数,limit指当前页显示多少条数据,执行SQL语句查询会被封装成一个Map集合返回,key就是参数mapKey传入的列名,value是封装的对象。 |
void select(String statement, ResultHandler handler) | 查询方法。参数statement是mapper映射文件中定义的<select>标签的id属性,ResultHandler对象用来处理查询返回的复杂结果集,通常用于多表联查 |
void select(String statement, Object parameter, ResultHandler handler) | 查询方法。参数statement是mapper映射文件中定义的<select>标签的id属性,parameter是执行查询sql所需的参数,通常是对象或Map,ResultHandler对象用来处理查询返回的复杂结果集,通常用于多表联查 |
void select(String statement, Object parameter, RowBounds rowBounds, ResultHandler handler) | 查询方法。参数statement是mapper映射文件中定义的<select>标签的id属性,parameter是执行查询sql所需的参数,通常是对象或Map,rowBounds参数用于分页,它的两个属性offset指查询的当前页数,limit指当前页显示多少条数据,ResultHandler对象用来处理查询返回的复杂结果集,通常用于多表联查 |
void commit() | 提交事务 |
void rollback() | 回滚事务 |
void close() | 关闭SqlSession对象 |
Connection getConnection() | 获取JDBC的数据库连接对象 |
<T> T getMapper(Class<T> type) | 返回mapper接口的代理对象,该对象关联了SqlSession对象,开发者可以通过该对象直接调用方法操作数据库,参数type是Mapper的接口类型。Mybatis官方手册建议通过mapper对象访问Mybatis。 |
下面贴出官方的介绍及注意事项,原文地址:http://www.mybatis.org/mybatis-3/zh/getting-started.html:
此篇完结
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- Android-kernel】Android 内核改动
Google在内核里做了什么改动呢? 有家公司专门比较了标准内核和android内核,发现google修改了75个文件,增加了88个文件。该公司还对这些被修改的和新增的文件做了注解。 Goldfish -- 44 Files kernel/arch/arm/mach-goldfish kernel/include/asm-arm/arch-goldfish Andr…...
2024/5/8 0:02:51 - 【游戏设计模式】之三 状态模式、有限状态机 & Unity版本实现
本系列文章由@浅墨_毛星云 出品,转载请注明出处。 文章链接: http://blog.csdn.net/poem_qianmo/article/details/52824776 作者:毛星云(浅墨) 微博:http://weibo.com/u/1723155442 游戏开发过程中,各种游戏状态的切换无处不在。但很多时候,简单粗暴的if else加标…...
2024/4/20 17:00:51 - js时间戳格式化成任意格式时间
时间戳转换成格式化日期JS代码:/* ** 时间戳转换成指定格式日期 ** eg. ** dateFormat(11111111111111, Y年m月d日 H时i分) ** → "2322年02月06日 03时45分" */ var dateFormat = function (timestamp, formats) {// formats格式包括// 1. Y-m-d// 2. Y-m-d H:i:s…...
2024/5/8 2:16:28 - mybatis入门级搭建教程(附源码)
Mybatis入门搭建过程1.创建项目并导入所需的jar包2.创建对应数据库和表3.创建对应实体类package com.domain; import java.util.Date; /*** User表所对应的实体类* @author Administrator**/public class User { //实体类的属性和表的字段要一一对应private String id; p…...
2024/4/25 12:50:50 - 写给游戏行业新人的入门告诫
作者:Francois Dominic Laramee作为游戏行业中的一员,我们不时可以看到周围天真的少年向我们取经,打听如何进入这个交互娱乐领域,如何从中谋得一份差事。这样的人很多,多为男性,但女生的数量也在不断增长。他们有点幼稚,一切行为都向我们看齐,假装认真聆听我们关于这一…...
2024/5/4 18:38:14 - js/jq/HTML5实现 鱼骨图(因果图) 附下载地址demo
下载地址:https://github.com/ybx13579/d3.fishbone-js.git1、官网示例(data.json控制数据) 官网 作者 效果图展示: 2、当前页面实时编辑 效果图展示:...
2024/4/20 17:00:45 - 苹果十大耐玩单机游戏推荐,粉丝众多,值得玩玩
苹果的游戏市场氛围非常好,因此每年都会有大量优秀的游戏作品出现。游戏种类五花八门,留在手机中最久的反倒是耐玩的单机小游戏。下面给大家带来苹果十大最耐玩的单机游戏。1、辐射避难所:辐射避难所是一款生存策略游戏,由于核战争人类躲到地下避难所生活,玩家需要在游戏中…...
2024/4/27 15:59:08 - 前端调用后端接口下载excel文件的几种方式
昨天根据需求做了一个点击按钮下载模板(模板为excel表格)的功能,根据后台给的接口,我是用ajax方法对接,返回状态码200,但是没有任何反应,表格压根没有下载! 百度了下,使用window.location.href 解决了。总结下请求表格两种方法:1. window.location.href = 接口地址…...
2024/5/2 4:31:52 - ts/js格式化输出(漂亮的)json文件
var fs = require(fs);/**读取json */ function readJson(jsonFilePath:string){if(fs.existsSync(jsonFilePath)){return JSON.parse(fs.readFileSync(jsonFilePath, utf-8)) ;}else{return {};} }//写入json文件选项 function writeJson(data:any, jsonFilePath:string){fs.w…...
2024/4/27 16:18:21 - 揭秘女程序员是怎样炼成的
■ 文/黑马程序员北京校区Android48期学员 陈莹 就职公司:北京瑞友科技股份有限公司 就业薪资:9500元/月 没有沉迷在游戏里如痴如醉的童年,没有接触过数据结构、离散数学、数据库、编译原理,没有对电脑痴狂好奇的Geek精神与不弃追逐的赤子之心,只是凭着一份从小坚持的信念…...
2024/4/27 18:20:58 - 为commerce_kickstart 2安装super fish菜单模块步骤
以下技术应用于最优质的水果的鲜果篮 1、下载Superfish-for-Drupal并解压,将文件夹改名superfish,放到sites\all\libraries文件夹下。https://github.com/mehrpadin/Superfish-for-Drupal/archive/1.x.zip 2、下载jquery.easing.1.3.min.js,将文件改名jquery.easing.js,放到…...
2024/4/27 17:45:12 - Sublime Text 2 JS 格式化插件 JsFormat的配置使用
转: http://blog.csdn.net/u012885111/article/details/478580971.首先要安装package control,参考链接: 点击 Package Control 插件是一个方便 Sublime text 管理插件的插件,但因为 Sublime Text 3 更新了 Python 的函数,API不同了,导致基于 Python 开发的插件很多都不能…...
2024/4/27 14:44:46 - 2019/8/16 JSON
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 老实说我并不明白这是什么意思,感觉这应该和java有关,最近在项目工程里老是看…...
2024/4/27 18:02:15 - 一个程序猿必须会玩的游戏
引言今天,林萧要教你玩一个游戏,而这个游戏,绝对是帮助你通往程序猿巅峰的绝佳伴侣哦。有的同学可能会说,“楼主,请问林萧是什么梗?”这个只能告诉你,林萧是某著名程序猿小说里主角的名字。没错,这篇文章就是他写的啦。林萧之所以写这篇文章,其实是有很多原因的,其中…...
2024/4/27 19:18:35 - 短小精悍的多源最短路径算法—Floyd算法
前言 在图论中,在寻路最短路径中除了Dijkstra算法以外,还有Floyd算法也是非常经典,然而两种算法还是有区别的,Floyd主要计算多源最短路径。 在单源正权值最短路径,我们会用Dijkstra算法来求最短路径,并且算法的思想很简单——贪心算法:每次确定最短路径的一个点然后维护(…...
2024/5/1 0:46:46 - 【转】如何下载并编译Android4.0内核源码goldfish(图文)
原文网址:http://blog.csdn.net/flydream0/article/details/7070392 关于如何下载Android4.0源码,请查看我的博客内另一篇文章(同样是图文教程): http://blog.csdn.net/flydream0/article/details/7036156 如何编译Android4.0源码请看: http://blog.csdn.net/flydream0/artic…...
2024/4/27 17:40:43 - es6-01
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer ManufacturersAssociation)通过ECMA-262标准化的脚本程序设计语言。看到了吗,ECMAScript是属于国际标准化的语言,所有浏览器开发商都要按照它制定的标准来开发浏览器。开发者也一样,按…...
2024/4/27 11:17:26 - 江湖儿女日见少
江湖儿女日见少近日里,见识了,在blog里写小说的做法,现实和yy如此混为一谈了。 我同学,我朋友,的段落说辞,如今已经是许多人在blog里加一层面具的做法。 大家玩游戏的习惯总是相识的。 在网上先是隐藏身份,发泄。 然而,又奈不住潮流,把网上日志给朋友看。 然后,再在网…...
2024/4/27 18:19:45 - JS格式化从数据库中取出的时间
数据库保存的时间一般是这样的“1490079794”。当后台传了一个这样的时间戳,前台该如何转换成想要的格式呢?step1:了解Date的几个方法step2:将时间转换为Date对象var time = 1490079794; var transTime = new Date( time*1000 ); console.log(transTime); //输出结果:Tue Ma…...
2024/4/27 18:41:56 - 红宝书 第10章整理——E4X
E4X 教程E4X 是对 JavaScript 的新扩展。 E4X 向 JavaScript 添加了对 XML 的直接支持。 E4X 是正式的 JavaScript 标准。JavaScript = ECMAScript ECMAScript 是对 JavaScript 的正式的命名。 ECMAScript 等同于 JavaScript。 ECMA(欧洲计算机工业协会)是 JavaScript 的标准…...
2024/4/27 15:18:49
最新文章
- leetcode17. 电话号码的字母组合
题目描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits "…...
2024/5/8 3:37:12 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/7 10:36:02 - 文心一言 vs GPT-4 —— 全面横向比较
对于文心一言和 GPT-4 这两者之间的全面横向比较,我们可以从多个方面来看待它们的区别和优劣势。 文心一言 文心一言是一款基于深度学习的中文文本生成模型,专注于生成优美的古风诗句和语录。以下是它的一些特点: 专注于古风诗句和语录: 文…...
2024/5/7 8:34:09 - HarmonyOS实战开发-如何实现一个简单的健康生活应用(上)
介绍 本篇Codelab介绍了如何实现一个简单的健康生活应用,主要功能包括: 用户可以创建最多6个健康生活任务(早起,喝水,吃苹果,每日微笑,刷牙,早睡),并设置任…...
2024/5/6 22:39:25 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/7 5:50:09 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/7 9:45:25 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/7 14:25:14 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/7 11:36:39 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/4 23:55:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/7 9:26:26 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/4 23:55:06 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/4 23:55:16 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/6 21:42:42 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57