学习hibernate的血泪史

Laravel与Spring Boot技术选型:创业团队效率与扩展性对比 在Web开发领域,框架选型直接影响项目的开发效率和长期可维护性。Laravel和Spring Boot作为PHP和Java生态的代表性框架,分别以快速迭代和稳定可靠著称。从技术原理看,Laravel采用动态类型语言特性,配合Eloquent ORM实现极简的数据库操作;Spring Boot则基于Java强类型体系,通过Spring Data JPA提供类型安全的持久层方案。在创业场景中,技术选型需要权衡开发效率与系统扩展性——简单CMS类项目使用Laravel初期效率可领先40%,而复杂金融系统采用Spr 阅读详情

使用博客来记录自己的学习历程,的确是个不错的选择
多年以后,当自己回首往事时,会不会感谢现在努力的自己呢?
O(∩_∩)O哈哈哈~

@ORM框架
 对象关系映射,用于实现面向对象编程语言里不同系统的数据之间的转换

@实例
public void demo01(){
  User user = new User();
  user.setUsername("haha");
  user.setPassword("123");

  //加载配置文件获得核心配置对象
  Configuration config = new Configuration().configure("配置文件");
  //获得工厂SessionFactory,相当于连接池
  SessionFactory factory = config.buildSessionFactory();
  //获得回话session,相当于链接Connection
  Session session  = factory.openSession();
  //开启事务
  Transaction transaction = session.beginTransaction();
  //操作
  session.save(user);
  //提交事务 | 回滚事务
  transaction.commit();
  //释放资源 
  session.close();
  //关闭工厂
  factory.close();
}

PO:persistent object ,用于与数据库交互数据
BO:Business object 业务数据对象
VO: value Object 值对象

@Configuration配置对象
  1:提供构造 new Configuration() hibernate 将自动加载hibernate.properties
  2:提供方法 configure() 将加载src下的hibernate.cfg.xml
  3:扩展api configure(String) 加载执行目录下的xml文件
  4:手动加载配置文件
    //手动加载指定的配置文件
    config.addResource("com/shikun/hello/User.hbm.xml");
    //手动加载指定类,对应的映射文件
    config.addUser(user.class);

@SessionFactory工厂
 1:SessionFactory相当于java web连接池,用于管理所有session
 2:获得方式:config.buildSessionFactory();
 3:sessionFactory hibernate缓存配置信息(数据库配置信息,映射文件)
 4:SessionFactory线程安全,可以是成员变量,多个线程同时访问
 5://打开一个新的回话 session
    factory.openSession();
    //获得当前线程中绑定的会话session
    factory.getCurrentSession();
  6:hibernate支持,将创建session绑定到本地线程中,底层使用ThreadLoacl,在程序之   间共享session
    1:必须在hibernate.cfg.xml配置
    <property name="hibernate.current_session_context_class">thread</property>
    2:如果提交或回滚事务,底层将自顶关闭session


@Session会话
  1:Session相当于JDBC的Connection会话
  2:session单线程,线程不安全,不能编写成员变量
  3:session api
     1:save 保存 2:update 更新 3:delete:删除 
     4:get:通过id查询,如果没有 null
     5:load 通过id查询,如果没有跑异常
     6:createQuery("hql") 获得Query对象
     7:createCriteria(class) 会的Criteria对象

@Transaction事务
  1:开启事务  beginTransaction()
  2:获得事务 getTransaction()
  3:提交事务  commit()
  4:回滚事务 rollback()

@Query对象
  1:hibernate执行hql语句
  2:hql语句:hibernate提供面向对象查询语句,使用对象和属性进行查询
  3:获得session.createQuery("hql");
  4:方法:
    list() 查询所有
    uniqueResult():获得一个结果,如果没有查询到返回null,如果查询多条抛异常
    setFirstResult(int) 分页,开始索引数startIndex
    setMaxResult(int) 分页,每页显示个数 pageSize


@Criteria对象
  1:QBC(query by criteria),hibernate提供春面向对象查询语言
  2:获得方式:Criteria criteria = session.createCriteria(User.class);
  3:eq :等于 gt:大于 ge:大于等于 lt:小于 le:小于等于 like:模糊查询


@hibernate基本配置
 <property name="hibernate.connection.driver_class>com.mysql.jdbc.Driver</property>
 <property name="hibernate.connection.url">jdbc:mysql://db</property>
 <property name="hibernate.connection.username">root</property>
 <property name="hibernate.connection.password">123</property>
 //与本地线程绑定
 <property name="hibernate.current_session_context_class">thread</property>
 //方言:不同的数据库,生成sql语句提供依据
 <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Diaelct</property>
 //sql语句
 <property name="hibernate.show_sql">true</property>
 <property name="hibernate.format_sql">true</property>
 //表生成策略
 <property name="hibernate.hbm2ddl.auto">create</property>
 //验证
 <property name="javax.persistence.validation.mode">none</property>
 //添加映射文件
 <mapping resource="com/shikun/hello/User.hbm.xml"/>


@hibernate中持久化类
 1:持久化对象的唯一标识OID
   1:javaan地址区分同一个类的不同对象
   2:关系数据库用主键区分同一条记录
   3:Hibernate使用OID来建立内存中的对象和数据库中记录的对应关系
   4:对象的OID和数据库的标的主键对应,由hibernate来为OID赋值
  2:区分自然主键和代理主键
  主键需要具备:不为空,不能重复,不能改变
    1:自然主键:在业务中,某个属性符合主键的三个要求,该属性可以作为主键列
    2:代理主键:在业务中,不存符合以上三个条件的属性,就增加一个没有意义的列    作主键
  3:基本数据与包装类型
    1:基本类型无法表达null,默认为0
    2:包装类默认值是null


@主键生成策略
 <id>配置主键,name:属性名称 access=““ 设置使用属性还是字段 
    column=”“ 表的列名  length=“” 长度  type=“” 类型
 <generator>class 属性用于设置主键生成策略
   1:increment 由hibernate自己维护自动增长
   2:identity hibernate磁层采用数据库本身自动增长列
   3:sequence hibernate底层采用数据库序列
   4:Hilo
   5:native:根据底层数据库的能力选择 identity,sequence或者Hilo中的一个
   6:uuid 采用字符串唯一值,代理主键,由hibernate维护
   7:assigned 自然主键,由程序自己维护

@对象状态
  hibernate规定三种状态:瞬时态,持久态,脱管态
  1:瞬时态:transient,session没有缓存对象,数据库也没有对应记录,OID没有值
  2:持久态:persistent,session缓存对象,数据库最终会有记录 OID特点:有值
  3:脱管态:detached,session没有缓存对象,数据库有记录 OID有值
  4:状态转换
     1:瞬时态转换持久态  一般操作:save方法,saveOrUpdate
     2:瞬时态转换脱管态  一般操作:通过setId方法设置数据

@一级缓存
 1:又称为session级别的缓存,当获得一次会话session,hibernate在session中创建多    个集合map,用于存放操作数据po对象,为程序优化服务,如果之后需要相应的数据,  
 hibernate优先从session缓存中获取,如果有就使用;如果没有在查询数据库。当session关闭时,一级缓存销毁
 2:清除缓存 
    session.evict(对象);
 3:快照:与一级缓存一样的存放位置,对一级缓存数据备份,保证数据库的数据与一级   缓存的数据必须一致。如果一级缓存修改了,在执行commit提交时,将自动刷新一集缓存,执行update语句,将一级缓存的数据更新到数据库
 4:refresh 刷新:保证一级缓存的数据与数据库的数据保证一致将执行select语句查询数据库,将一级缓存中的数据覆盖掉,只要执行refresh都将执行select语句

@PO对象操作
  1save&persist
   save方法:瞬时态转换持久态,会初始化OID
     1:执行save方法,立即触发insert语句,从数据库获得主键的值OID值
     2:执行save方法前,设置OID将忽略
     3:如果执行查询,session缓存移除了,在执行save方法,将执行insert
     4:persist方法不会立即得到ID,所以执行sql语句的时机要靠后
  2:update :脱管态 转换 持久态
     1:如果OID在数据存放的,将执行update语句
     2:如果OID不存在将抛异常
  3:saveOrUpdate:判断是否有OID
     代理主键:
     1:如果没有OID,将执行insert语句
     2:如果有OID,将执行update语句
     自然主键:
     1:先执行select语句,查询是否存放
     2:如果不存在,将执行insert
     3:如果存在,将执行update


@多表设计
一对多:主表必须主键和从表必须外键,主表的主键与从表外键形成主外键关系
多对多:提供中间表,提供2个字段(外键)分别对应两个主表

@关联关系映射
  1:一对多实现:一个客户,拥有多个订单
     private Set<Order> orderSet = new HashSet<Order>();
     配置文件
     1:确定容器 set<set>
     2: name确定对象属性名
     3:确定从表外键的名称
     4:确定关系,及另一个对象的类型
     注意:在hibernate中可以只进行单项配置,每一个配置项都可以完整的描述彼此关系,一般情况采用双向配置,双方都可以完成描述表与表之间关系
     <set name="orderSet" cascade="delete-orphan">
       <key column="customer_id"></key>
       <one-to-many class="com.shikun.Order"/>
     </set>
     多对一:多个订单属于一个客户
     private Customer customer;
     配置文件
     1:name 确定属性名称
     2:class 确定自定义类型
     3:column 确定从表的外键名称
     <many-to-one name="custoemr" class="com.shikun.Customer" column="customer_id"></many-to-one>

  2:双向关联,使用inverse
    <set name="orderSet" inverset="true">
       <key column="customer_id"></key>
       <one-to-many class="com.shikun.Order"/>
    </set>
  3:级联操作
    1:save-update 级联保存或更新
       <set name="orderSet" cascade="save-update">
       </set>
    2:delete 级联删除
     <set name="orderSet" cascade="delete">
     </set>
    3:孤儿删除:一对多关系,存在父子关系,主表可以成为父表多表也可以成为子表
           客户和订单接触关系后,外键被设置成null,此时订单就是孤儿,两者单独存在 孤儿删除,当订单称为孤儿,一并删除,客户仍存在
      主表不能删除,从表已经引用(关联)的数据
      从表不能添加,主表不存在的数据
       <set name="orderSet" cascade="delete-orphan">
       </set>
  4:多对多映射
     配置多对多关联映射
     Course.hbm.xml
     <set name="students" table="stu_cour">
        <key column="cno"/>
        <many-to-many class="com.shikun.Student" column="sno"/>
     </set>
     Student.hbm.xml
      <set name="course" table="stu_cour">
        <key column="sno"/>
        <many-to-many class="com.shikun.Course" column="cno"/>
      </set>


@抓取策略
    1:检索方法
      a:立即检索:立即查询,在执行查询语句时,立即查询所有的数据
      b:延迟检索:延迟查询,在执行查询语句之后,在需要时在查询(懒加载)
    2:检索策略
      a:类级别检索:当前的类的属性获取是否需要延迟
      b:关联级别的检索:当前类关联另一个类是否需要延迟
    3:类级别检索
      a:get :立即检索,get方法一执行,立即查询所有字段的数据
      b:load:延迟检索,默认情况,load方法执行后,如果只使用OID的值不进行查询
          如果要使用其他属性值将lazy默认值TRUE,为FALSE,表示立即检索
    4:关联级别检索
      a:一对多或多对多
         1:容器<set>提供两个属性:fetch,lazy
            fetch:确定使用sql格式
            lazy:关联对象是否延迟
         2:fetch:join,select,subselect
            join:底层使用迫切左外链接,lazy无效
            select:使用多个select语句
            subselect:使用子查询
         3:lazy:FALSE,true,extra
            false:立即
            TRUE:延迟
            extra:极其懒惰
       b:多对一:<many-to-one fetch="" lazy="">
          1:fetch:取值:join,select
            join:底层使用迫切左外链接
            select:多条select语句
          2:lazy取值:FALSE,proxy,no-proxy,no-proxy 
            FALSE:立即
            proxy:采用关联对象,类级别检索的策略
    5:批量查询
       1:批量查询使用in语句减少查询语句的个数
          select * from order where customer in(?,?,?,?,?)
       2:<set batch-size="5">:5表示括号中?个数



@HQL:Hibernate Query Language 描写对象操作一种查询语句,查询的是对象的属性
    1:查询所有客户
       1:使用简单类名,存在自动导包
         session.createQuery("from 简单类名");
       2:使用全限定类名
         session.createQuery("from com.shikun.简单类名");
    2:选择查询
       1:指定数据,cid,OID民称
       2:使用id
       3:对象别名
       4:查询所有项
    3:投影查询
       1:默认
          a:单列使用List<object>
          b:多列需要List<Object[]>
    4:order by  asc|desc
    5:分页
        startIndex = (pageNum -1 )* pageSize 
        //pageNum 当前页 
        query.setFirstResult();
        //pageSize:每页显示个数
        query.setMaxResults()       
    6:绑定参数
        1:setXxx(int,object)
        2:setXxx(String,object)
        3:setParameter(int|string,object)
    7:聚合函数和分组
        1:count(*|别名|oid)
    8:连接查询
       1.交叉连接 ,等效 sql 笛卡尔积
       2.隐式内连接,等效 sql 隐式内连接
       3.内连接,等效sql内连接
       4.迫切内连接,hibernate底层使用 内连接。
       5.左外连接,等效sql左外连接:底层是使用sql的左外链接,hibernate进行数据   自动封装,将一条记录封装给两个对象
       6.迫切左外连接,hibernate底层使用 左外连接  left outer join fetch ,底层使用sql的左外链接,hibernate将一条记录封装给一个对象,将另一条数据封装给另一个对象,并将对象2关联到对象1,默认查询的数据重复
          去重复
          select distinct c from Customer left outer join fetch c.orderSet
       7.右外连接,等效sql右外连接 
     9:命名查询
       全局:session。getNamedQuery("queryName");
       局部:session.getNamedQuery("className.queryName"); 需要使用类的全限定名称


@QBC 
    1:QBC查询:Query By Criteria 条件查询,面向对象的查询的方式
    2:QBC简单的查询:session.createCriteria(Customer.class);
    3: QBC分页的查询:
       criteria.setFirstResult(10);
       criteria.setMaxResults(10);
    4:QBC排序查询:
       criteria.addOrder(org.hibernate.criterion.Order.asc(""));
    5:QBC条件查询
       criteria.add(Restrictions.eq("属性","值"));
       //模糊查询
       criteria.add(Restrictions.like("属性","条件"));
    6:离线查询:DetachedCriteria 离线查询对象,不需要session,在web
           或service层拼凑,将此对象传递给dao层
        DetachedCriteria detachedCtiteria = DetachedCriteria.forClass(Customer.class);


@整合c3p0连接池
    <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProcider</property>


@事务
   悲观锁:丢失更新发生,采用数据库锁机制
   读锁:共享锁 select ... from ... lock in share mode;
   写锁:排它锁 select ... from ... for update 
     session.get(Customer.class,1,LockMode.UPGRADE);
   乐观锁:丢失更新肯定不会发生,在po对象|表中提供一个字段,一般Integer在hbm.xml文件配置<version name="...">,用于表示记录,如果版本不一致,不允许操作


 @二级缓存:降低应用程序直接读写硬盘的频率
    1:hibernate提供缓存机制:一级缓存,二级缓存
       一级缓存:session级别缓存,在一次请求中共享数据
       二级缓存:sessionFactory级别缓存,整个应用程序共享一个会话工厂
    2:SessionFactory的缓存两部分:内置缓存:使用一个Map,用于存放配置信息,预    定义HQL语句,提供给Hibernate框架自己使用,对外只读的,不能操作 ; 外置缓存:使用另一个Map,用于存放用户自定义数据,默认不开启,外置缓存hibernate只提供规范,需要第三方实现类,外置缓存又称为二级缓存
    3:二级缓存内部结构
      由四部分组成:类级别缓存,集合级别缓存,时间戳缓存,查询缓存
    4:并发访问策略
      1:transactional:事务型
      2:read-write:读写型
      3:nonstrict-read-write:非严格读写型
      4:read-only:只读型
    5:二级缓存提供商
    EHCache:           可作为进程(单机)范围内的缓存,存放数据的物理介质可以是内存或硬盘, 对   Hibernate 的查询缓存提供了支持。--支持集群。
?OpenSymphony `:可作为进程范围内的缓存, 存放数据的物理介质可以是内存或硬盘, 提供了丰富的缓存数据过期策略, 对 Hibernate 的查询缓存提供了支持
?SwarmCache: 可作为集群范围内的缓存, 但不支持 Hibernate 的查询缓存
?JBossCache:可作为集群范围内的缓存, 支持 Hibernate 的查询缓存
    6:开启二级缓存
      <property name="hibernate.cache.user_second_level_cache">true</property>
      确定提供商
      <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
      确定缓存内容
      <class-cache usage="read-write" class=""/>
      //集合缓存
       <collection-cache usage="read-write" collertion=""/>
    7;类缓存:只存放数据 一级缓存:存放对象本身
    8:集合缓存:只存放关联对象OID的值,集合操作,将从集合缓存获得内容,此时只   能获得OID的值,然后从类缓存查询指定对象
    9:时间戳:任何操作都在时间戳中记录操作时间,如果不一致,将触发select语句 10:查询缓存:又称为三级缓存,将HQL语句与查询结果进行绑定,通过HQL相同语句可以缓存内容,默认情况Query对象枝江查询结果存放在一级和二级缓存,查询缓存就是让Query可以从二级缓存获得内容         
       1:开启查询缓存
       <property name="hibernate.cache.use_query_cache">true</property>
       2:在查询query对象,设置缓存内容
       Query q = s.createQuery("from student");
       q.setCacheable(true);

大模型不是随机鹦鹉:温度与Top-p如何用可控随机性破除确定性复读 语言模型本质上是确定性函数,其输出重复、僵化并非源于‘随机性’,而是贪婪解码等确定性策略导致的正反馈坍缩;温度(Temperature)通过调节logits分布的锐度,控制生成结果在准确性与多样性间的平衡;Top-p采样则依据累积概率动态构建高质量候选词集,实现语境自适应的智能筛选;二者协同构成对抗‘确定性鹦鹉’的核心机制,在对话系统、创意生成、技术文档等场景中保障输出的连贯性、专业性与表现力;本文从信息熵出发,揭示可控随机性实为语言生成的数学刚需。 阅读详情

相关推荐

Web开发中的数据库实战:从请求链路到性能优化

数据库是Web应用的数据中枢,其核心价值在于支撑HTTP请求-响应周期中的可靠读写。理解数据库在反向代理、应用层、数据访问层之间的协作机制,掌握连接池管理、索引设计、事务隔离与查询优化等关键技术,能显著提升系统吞吐与稳定性。尤其在高并发场景下,合理选型关系型与非关系型数据库、规避SQL注入与字符集乱码、通过EXPLAIN分析执行计划,已成为现代Web工程师的必备能力。本文聚焦真实开发现场,覆盖从用户登录请求到订单落库的完整数据通路,直击连接池耗尽、主从延迟、慢查询等高频故障。

weixin_33863087的博客 431

解决Macbook盒盖(睡眠)耗电问题

这几天偶然发现我的苹果电脑合盖后一天不用,再次打开后竟然掉电15%左右,搜索后发现原来是设置不当造成的问题。解决步骤如下: 1、打开终端,输入命令:pmset -g 。如果之前没有修改过,大概率显示内容如图: 从图中可以看出,hibernatemode的参数值是3。对于这个参数的常见数值有如下几种: hibernatemode=0:台式机默认情况下支持。系统不会将内存备份到永久存储。系统必须从内存(RAM)中唤醒。断电时系统将失去上下文。从历史上看,这是普通的老睡眠。(强烈不推荐) hibernatem

高调做事,低调做人! 1万+

别再为多数据库头疼了!Hibernate终极多数据库支持方案,性能提升300%!

本文分享了Hibernate多数据库支持的实战经验,针对开发者常见的痛点提供了解决方案。作者通过真实项目案例,对比了多种实现方案的优缺点,最终推荐自定义SessionFactoryManager作为最佳实践。核心思路是为每个数据库创建独立的SessionFactory,并通过映射关系动态选择,既保证性能又简化事务管理。文中提供了详细的代码示例,包括线程安全设计、数据库标识映射等关键实现,帮助开发者避免生产环境中的常见错误。

墨夶的博客 258

Hibernate中级联的取值(cascade的取值)和孤儿删除

1. 需要掌握的取值如下 * none -- 不使用级联 * save-update -- 级联保存或更新 * delete -- 级联删除 * delete-orphan -- 孤儿删除.(注意:只能应用在一对多关系) * a...

whisely的博客 1766

别让数据库成为跨国公司的“绊脚石“!Hibernate多数据库支持实战:让全球业务无缝流转

Hibernate多数据库支持实战指南摘要 Hibernate通过数据库方言机制屏蔽不同数据库的SQL差异,成为多数据库场景的理想解决方案。本文以跨国公司为例,展示了按地区划分的配置策略:每个区域(如欧洲/PostgreSQL、美国/Oracle)拥有独立的配置文件(hibernate-*.cfg.xml)和会话工厂,通过Spring集成管理多个数据源。关键配置包括正确的JDBC URL、方言类和连接池设置,确保业务代码无需关注底层数据库差异,实现高效开发和维护。

墨夶的博客 969

Java 新纪元 — JDK 25 + Spring Boot 4 全栈实战(十七):Boot 3 → Boot 4 迁移避坑指南——那些文档不会告诉你的迁移血泪史

bin/bash# migrate-boot4.sh — 一键迁移辅助脚本set -eecho "🚀 Spring Boot 3 → 4 迁移助手"# 1. 备份代码echo "📦 创建备份分支..."# 2. 更新 pom.xml 中的版本号echo "📝 更新版本号..."# 3. 批量替换 javax → jakartaecho "🔄 替换 javax → jakarta..."# 4. 更新配置文件echo "⚙️ 检查配置文件..."then。

qq_17204557的博客 114

spring技术内幕12-HibernateTemplate对Hibernate的封装

1、Spring中,不提供具体的ORM实现,而只是为应用提供对ORM产品的集成环境和使用平台,

duanxin8678的专栏 602

【SpringBoot 3.x 第58节】Spring Boot 3.x 惊魂升级记:从 Javax 到 Jakarta,你准备好迎接这场“改名风波”了吗?

🏆本文收录于《滚雪球学SpringBoot 3》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。    本专栏致力打造最硬核 SpringBoot3 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot3教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。    若还想学习更多,可直接前往《滚雪球学SpringBoot(全版本合集)》,涵盖SpringBoot所有版本教学文章

**My Coding Family** 1464

Hibernate之底层原理

1.Hibernate简单介绍 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 2.Hibernate的优缺点 2.1 优点 程序更加面向对象; 提高了生产率; ...

qq_41344503的博客 825

用AI从0开始量化交易-制定学习计划安装学习环境

量化小白,利用AI从零开始学量化

weixin_52285994的博客 2113

CTF-Web习题:2019强网杯 UPLOAD

本题涉及知识点:代码审计、文件上传漏洞、反序列化漏洞

LJW123487的博客 1903

再论网上解决macbook升级第三方ssd后休眠睡死的问题

2020.1.29更新:建议经费充足的朋友直接买Intel 760p、Intel 7600P、Intel 660p、西数SN720这四款固态硬盘。实测这四种固态硬盘均无需调整pmset参数,直接能在hibernatemode=3模式下完美休眠。其中7600p功耗比原装更低,发热量更小。 2020.2.2更新:暂时不要升级Catalina,休眠有问题! 型号:A1466, Macbook ...

5万+

基于APDL语言的结构优化设计

同理,二次微分值称为二阶值。通俗地讲优化分析,指的找到一种方案可以满足所有的设计要求,而且所需的支出(如重量,面积,体积,应力,费用等)最小。设计方案的任何方面都是可以优化的,比如说:尺寸(如厚度),形状(如过渡圆角的大小),支撑位置,制造费用,自然频率,材料特性等。完成分析文件的建立后,就可以进行优化分析了,如果在交互方式下进行优化的话,最好先在ANSYS数据库中用分析文件建立参数,其优点有:初始参数可以作为一阶分析方法的起点,且对于优化过程参数在数据库中可以在GUI下进行操作,便于定义优化变量。

m0_73816777的博客 1176

新人血泪史:解析XML报:org.dom4j.DocumentException: Error on line 1 of document : Content is not allowed in p

解析XML报:org.dom4j.DocumentException: Error on line 1 of document : Content is not allowed in prolog. 第一搞Spring+Hibernate整合,在进行测试的时候,一直报解析XML文档faild 仔细检查N遍,就是没有发现什么问题!“内容是不允许在序言”就这一句关键的错误提示,让我纠结两天几乎崩溃!最后我有重新写了一个xml,在运行就OK了!但是回过头在去查看旧的xml文档,没有发现任何不一样的地方,但就是解析

seaman_1的博客 2947

DSP TMS320FF28335程序从FLASH中拷贝到RAM中的两种方法及FLASH烧写方法

程序从FLASH中拷贝到RAM中执行的方法 DSP的程序下载执行方式有两种:一种是下载到RAM中在线执行,一种是下载到FLASH中执行。在RAM中执行时,具有执行速度快,可以无限次下载的特点,但是RAM的特点是掉电丢失数据。FLASH具有掉电不丢失数据的特点,但是同时存在执行速度慢和擦写次数有限的缺点。因此综合两者的特点,在DSP的开发过程中一般会结合使用两者。在前期程序调试过程,由于需要频繁的

AEECREN的博客 1万+

用Python玩转共现分析:从NLTK到热力图可视化(附完整代码)

本文详细介绍了如何使用Python进行文本共现分析,从NLTK基础文本处理到构建共现矩阵,并实现热力图可视化。通过完整的代码示例,帮助数据分析师和开发者掌握这一揭示词语间关联网络的实用NLP技术,快速从文本中提取语义关系和主题结构。

weixin_29313817的博客 350

从1.99到114:我的CesiumJS插件升级血泪史(附WebGL2 Shader修改避坑指南)

本文分享了从CesiumJS 1.99升级到114+版本的经验,重点解析了WebGL2 Shader语法迁移、3DTiles加载API变更等关键挑战,并提供了实用的避坑指南和性能优化建议,帮助开发者顺利完成三维GIS项目的版本升级。

liangqilang的专栏 76

Simulink开发项1000例实战专栏--实例64:基于Simulink构建一个储能系统模型

通过引入储能系统,太阳能电站能够实现在白天储存多余的能量,在夜晚释放能量,平滑负荷曲线,提高电网的稳定性和可靠性。本项目的目标是基于Simulink平台,构建一个完整的储能系统模型,并通过仿真验证其在电网调峰中的应用效果。通过引入储能系统,工业园区能够实现在负荷高峰期释放能量,在负荷低谷期储存能量,平滑负荷曲线,降低用电成本,提高电网的稳定性和可靠性。通过引入储能系统,风力发电场能够实现在负荷高峰期释放能量,在负荷低谷期储存能量,平滑负荷曲线,提高电网的稳定性和可靠性。

xiaoheshang_123的博客 516

机器学习最佳实践:从社区智慧到工程落地的127条避坑指南

机器学习作为人工智能的核心技术,其核心在于通过算法从数据中学习规律并做出预测或决策。其原理涉及模型训练、特征工程、评估优化等多个环节,技术价值在于将理论转化为解决实际问题的生产力。在工程实践中,开发者常面临数据质量、模型泛化、部署运维等挑战,尤其是在处理真实业务场景时,理论与实践的鸿沟尤为明显。因此,系统化的最佳实践对于提升项目成功率至关重要。本文基于对Stack Exchange社区海量讨论的提炼与专家验证,聚焦于机器学习项目全生命周期中的关键环节,如数据准备、模型构建、评估与部署,并深入探讨了数据泄露、

weixin_30540691的博客 686

低照度与极端天气环境中的YOLOv8优化:CPA-Enhancer网络的应用与分析

为了克服上述问题,本文提出了一种名为的网络改进方案。CPA-Enhancer通过引入链式思考机制和改进的注意力机制,有效地提升了YOLOv8在低照度和复杂天气下的表现。本文提出了针对低照度和恶劣天气条件下目标检测的YOLOv8改进方案——CPA-Enhancer链式思考网络。通过引入低照度图像增强和多尺度特征融合技术,CPA-Enhancer显著提高了YOLOv8在低光照、雾霾、雨雪等环境下的检测性能。实验结果表明,CPA-Enhancer相较于原始YOLOv8,在多个指标上都有显著的提升,尤其是在mAP。

博客 1566

UG\NX二次开发 找不到指定的dlx文件(Specified Dlx file not found)

有群友问:用Ctrl+U运行的时候就报错,找不到指定的dlx文件Specified Dlx file not found。怎么处理。

王牌飞行员_里海的博客 1130

邻接表BFS的5个常见坑点:以PTA6-2题为例的避坑指南

本文以PTA6-2题为例,深入剖析了在邻接表上实现广度优先遍历(BFS)时常见的五个陷阱,包括队列模拟、访问标记时机、链表遍历顺序、顶点编号映射以及全局状态管理。文章提供了具体的代码示例和避坑指南,旨在帮助开发者编写出正确且健壮的图遍历代码,提升算法实践能力。

jenkins8butler的博客 430

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

避坑指南:在EduCoder上跑HBase MapReduce作业时,我遇到的3个典型错误和解决办法

本文分享了在EduCoder平台上运行HBase MapReduce作业时遇到的3个典型错误及解决方案,包括环境配置差异、表操作错误和作业调优问题。通过实战案例和代码示例,帮助开发者快速解决数据分析中的常见陷阱,提升HBase与MapReduce的实战能力。

weixin_33728268的博客 361

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

通义灵码:面向工程上下文的AI编程协作者

AI编程工具正从局部代码补全迈向工程级语义理解。其核心原理在于融合IDE抽象语法树(AST)、项目配置元数据与大模型推理能力,实现对技术栈、编码规范和业务语义的深度感知。这种‘本地采集+云端推理’的协同架构,既保障响应效率,又支撑复杂场景下的精准生成,显著提升中高级开发者在Spring Boot、微服务、遗留系统改造等真实工程中的生产力。相比教学型AI或纯离线方案,它更强调无缝嵌入日常开发流——如通义灵码vscode与通义灵码idea插件所体现的IDE深度集成能力,让AI真正成为可信赖的‘键盘旁协作者’。

dengwan3818的博客 505

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

熔断机制原理与生产级落地实践指南

熔断机制是分布式系统保障高可用的核心容错策略,其本质是通过状态机(Closed/Open/Half-Open)实现故障隔离与自动恢复。它基于失败率、超时、慢调用等多维指标动态决策,以局部可控失败换取全局服务稳定。相比简单重试或超时,熔断能有效阻断雪崩传播,在电商、金融等强依赖场景中具备不可替代的技术价值。本文结合Resilience4j实战,深入解析状态流转、参数权衡、错误识别、降级设计及可观测性建设,覆盖从概念理解到线上调优的完整链路。

世范水晶 455

Tiva™ TM4C1294NCPDT Hibernation模块深度解析与低功耗实战指南

在嵌入式系统开发中,低功耗设计是延长电池寿命、提升设备续航能力的关键技术。其核心原理在于通过合理的电源管理策略,在设备空闲时关闭或降低非必要模块的供电,从而大幅降低系统整体功耗。这项技术的核心价值在于能够实现设备从微安级到毫安级的动态功耗调节,对于野外监测、可穿戴医疗等长期无人值守的应用场景至关重要。本文聚焦于Tiva™ TM4C1294NCPDT微控制器的Hibernation模块,这是一个实现超低功耗待机的硬核方案。该模块允许系统主电源完全关闭,仅由纽扣电池维持实时时钟(RTC)和一小块保持内存(HIB

weixin_30632883的博客 356
上一篇: maven-pom.xml
下一篇: Java常见异常总结
shi-Yjanuary
博客等级 码龄10年 4粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值