
代码笔记
文章平均质量分 51
白云如幻
坚持,终将收获更好的自己。一位来自97年的程序员;在一个偶然的机会下接触到程序员这个职业,沉醉其中,喜欢安安静静的写代码,在代码的世界里奔跑。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Java】HQL查询初步
③hql动态绑定参数的方法, hql除了可以用?做占位符外,增加了一个别名来占位。④参数可以是基本数据类型外,还可以是一个对象(对象里有id就行)②hql查询的方法连的使用。原创 2025-04-23 12:38:49 · 207 阅读 · 0 评论 -
【Java】Hibernate的检索方式的概述
采用HQL检索方式时,Hibernate生成标准的SQL查询语句,使用于所有的数据库平台,因此这种检索方式是跨平台的。有的应用程序可能需要根据底层数据库的SQL方言,来生成一些特殊的查询语句。在Hibernate提供的各种检索方式中,HQL是使用最广的一种检索方式。当然,前提是必须在对象-关系映射文件上配置了它们的多对一的关系。注:Qurey接口支持方法链编程风格,它的set方法都返回自身实例,而不是返回void类型。Session类的Qurey接口支持HQL检索方式,它提供了以上列出的各种查询功能。原创 2025-04-23 12:35:42 · 433 阅读 · 0 评论 -
【Java】Hibernate的检索策略
Hibernate的Session在加载一个Java对象时,可以将与这个对象相关联的其他Java对象都加载到缓存中,以便程序及时调用。但有些情况下,我们不需要加载太多无用的对象到缓存中,一来这样会撑爆内存,二来增加了访问数据库的次数。所以为了合理的使用缓存,Hibernate提供了几种检索策略来供用户选择。原创 2025-04-22 15:08:48 · 603 阅读 · 0 评论 -
【Java】Hibernate映射继承关系
如果系统需要经常进行查操作且子类数量较多,则建议用第一种方案,即每棵生成树映射一张表,这也是最常用的方法,效率较高。如果追求细粒度的设计且子类数量不多,则可以用后两种方案:每个类映射一张表或每个具体类映射一张表。原创 2025-04-22 14:43:42 · 404 阅读 · 0 评论 -
Hibernate的组件映射
在实际的开发中,使用的是非常多的,还有几种比较特殊的关系映射:先看一下组件映射: 组件映射中, 组件也是一个类, 但是这个类它不独立称为一个实体, 也就是说, 数据库中没有一个表格单独的和它对应, 具体情况呢, 看演示:原创 2025-04-21 20:58:18 · 189 阅读 · 0 评论 -
Hibernate中多对多的联系
应用场景:每个老师可以上多门课程,反过来每门课程也有多个老师来上。这样子,老师------课程之间就构成一个多对多的关系,那么这种关系,在具体的应用中,表现要在老师页面去显示,具体某个具体老师所上的所有课程,反过来在课程页面也要去显示某门课程都有哪些老师在上的时候用。原创 2025-04-16 13:07:21 · 252 阅读 · 0 评论 -
Hibernate一对一的联系
唯一外键和前面的多对一的配置是差不多的,只不过为了实现一对一,就在多的这端的外键加上了唯一性约束, 从而实现了一对一的关联。2、场景中应该是人(Person)持有身份证(IdCard)的引用,所以两个对象关系维护应该由person端来控制。1、一个人只有一张身份证,唯一的一个身份证号, 反之亦然,两个对象(两张表中的对应记录)之间是一对一的关系;主键关联的关系模型: 数据结构上两个表里都没有外键, 直接让对应记录的id值相同。主键关联(不推荐用)和唯一外键关联(实际应用中我们推荐用后面这种)原创 2025-04-16 12:21:04 · 187 阅读 · 0 评论 -
Hibernate双向一对多的联系
双向多对一和单向多对一对比:单向多对一是在多这端需要访问一的那端是数据 , 前面也说里这么个场景: 学生(多的端)只能有一个班主任老师, 然后班主任老师(一的端)可以带很多个学生!学生(多)---班主任老师(一), 如果只需要在学生信息的页面显示这个学生的班主任老师的信息, 就是单向多一对一, 但是如果班主任老师从信息显示页面也要显示老师班上有哪些学生的话, 那么就变成双向多对一/双向一对多的情形了。反过来, 在一的这端, 也可以通过teacher_id来找到所有的对应学生。原创 2025-04-15 15:57:22 · 321 阅读 · 0 评论 -
10Hibernate 单向多对一的映射
我们在实际开发中,数据表之间往往不是孤立的,而是纵横交叉、相互关联的,比如一个用户发表了多篇文章,一个文章又有多个评论,这里涉及用户信息表, 文章表, 评论表, 它们之间存在很多关系的。默认情况下, 查询多的一端对象, 只要没使用到关联的对象, 不会发起关联的对象的查询!结论: 先增加一的一端的数据,发起的sql语句少, 先增加多的一端的数据发起sql语句条数多, 建议先加一的一端, 效率高些。删除的时候, 删除多的一端的对象和数据没问题, 删除多的一端,有外键约束!修改没什么要说的,都是正常情况。原创 2025-04-15 15:46:29 · 254 阅读 · 0 评论 -
Hibernate的映射关系的基本配置
根元素的子元素,用以定义一个持久化类与数据表的映射关系,如下是该元素包含的一些可选的属性。用于在联合子类中标识抽象的超类(默认值为false)原创 2025-04-15 15:24:33 · 790 阅读 · 0 评论 -
Hibernate的配置文件(XML与properties)
Batch Size越大,批量操作的向数据库发送sql的次数越少,速度就越快。Oracle数据库 Batch Size = 30 的时候比较合适,50也不错,性能会继续提升,50以上,性能提升的非常微弱,反而消耗内存更加多,就没有必要了。Oracle数据库的JDBC驱动默认的Fetch Size=10,是一个非常保守的设定,根据测试,当Fetch Size=50的时候,性能会提升1倍之多,当Fetch Size=100,性能还能继续提升20%,Fetch Size继续增大,性能提升的就不显著了。原创 2025-04-14 17:45:59 · 335 阅读 · 0 评论 -
Hibernate核心方法总结
临时对象变持久对象给对象分配id,这个id叫oid, 它和数据库的记录id对应一致执行save方法时会发起一条insert语句, 但要等到事务提交时才会作用到数据库save方法前设置id无效, save方法后设置id报异常,持久对象的id不准修改1.删除对象2.删除持久对象3.删除数据库里对应的记录4.当删除的对象数据库里没有对应的id值的记录是抛出异常。原创 2025-04-06 21:00:35 · 963 阅读 · 0 评论 -
Hibernate里的对象不同状态和Session的核心方法
①.对于刚创建的一个对象,如果session中和数据库中都不存在该对象,那么该对象就是瞬时对象(Transient)②.瞬时对象调用save方法,或者离线对象调用update方法可以使该对象变成持久化对象,如果对象是持久化对象时,那么对该对象的任何修改,都会在提交事务时才会与之进行比较,如果不同,则发送一条update语句,否则就不会发送语句③.离线对象就是,数据库存在该对象,但是该对象又没有被session所托管。原创 2025-04-05 15:15:00 · 1023 阅读 · 0 评论 -
【Java】Hibernate的一级缓存
Session是有一个缓存, 又叫Hibernate的一级缓存session缓存是由一系列的Java集合构成的。当一个对象被加入到Session缓存中,这个对象的引用就加入到了java的集合中,以后即使应用程序中的引用变量不再引用该对象,只要Session缓存不被清空,这个对象一直处于生命周期中。原创 2025-04-01 12:29:36 · 655 阅读 · 0 评论 -
inout参数模式存储过程和删除查看存储过程和MySQL总结
①myslq最基础的常识②查③增、改、删④数据库和数据表的管理⑤约束⑥事务控制⑦存储过程⑧变量和函数⑨索引⑩视图。原创 2025-04-01 12:09:49 · 272 阅读 · 0 评论 -
mysql数据库:out参数模式的存储过程
根据学生姓名,返回对应的年龄。原创 2025-04-01 12:06:32 · 343 阅读 · 0 评论 -
mysql数据库:in参数模式的存储过程
注意:在dos出现中文乱码,解决方法,set namea gbk;调用:call myp3('admin','admin') $call myp2('张三') $通过学生名查询对应的年龄。创建判断用户是否登录成功。原创 2025-03-31 17:25:15 · 307 阅读 · 0 评论 -
MySQL存储过程的介绍和无参数存储过程演示
存储过程:类似java中的方法存储过程:预先编辑好SQL语句的集合,这个集合完成了某项具体的功能集合,我需要这个功能的时候,只要调用这个过程就好了!原创 2025-02-23 18:21:01 · 365 阅读 · 0 评论 -
MySQL设置回滚点
【代码】MySQL设置回滚点。原创 2025-02-23 18:19:20 · 265 阅读 · 0 评论 -
MySQL事务并发问题
①脏读: 当t2正在更新某个字段但还没有提交数据库执行时,t1在这个时刻正好读取这个字段的数据,然后t2在发生错误,然后回滚数据,导致t1读取到数据就是t2更新时的临时数据,而且最终没有更新成功的无效数据!一个事务与其他事务隔离的程度称为隔离级别:数据库规定了事务隔离级别,不同隔离级别对应不同的干扰程度,级别越高,数据一致性越好,但并发性越弱!②不可重复读:t1读取一个字段是数值,然后t2更新了这个字段,之后t1在读取同一个字段,值发生了变化!//这时候你看到查到的数据是C,但是前一个事务并没有提交。原创 2025-02-23 18:18:10 · 406 阅读 · 0 评论 -
MySQL的事务处理演示
注意:默认MySQL是开启自动提交事务的,用show variables like 'autocommit';命令可以查看到. 所以开启显示事务前,要关掉它,用set autocommit=0;①隐视事务:事务没有明显的开始和结束的标记.这时候像insert语句,update语句和delete语句,每一条SQL语句就默认是一个事务.②显示事务:说白了,这个事务模式,就要我们中程序中手动的用命令来开启事务,和结束事务,并让事务里的多条SQL语句去执行.回滚事务,恢复数据库执行前的状态!原创 2025-02-20 16:36:02 · 270 阅读 · 0 评论 -
MySQL事务介绍
②一致性(Consistency):事务必须让数据的数据状态变化到另一个一致性的状态,比如:刚刚的例子中A和B的余额总和是2000,转账后,A和B的余额总和不能变.前后具有一致性.④持久性(Durability):一个事务被提交,并成功执行,那么它对数据的修改就是永久性的.接下来的其他操作或出现的故障,不能影响到它执行的结果!③隔离性(Isolation):一个事务的执行,不受其他事务的干扰,相互应该是隔离的,但是实际上是很难做到的,要通过隔离级别做选择!①√②×:A的钱减少了,B的钱没增加!原创 2025-02-16 23:50:01 · 251 阅读 · 0 评论 -
MySQL标识列
自增长列必须和键(一般是主键)搭配一个表中有且只能有一个自增长列自增长列的类型只能是数值型,一般情况用int自增长列可以设置步长(set auto_increment_increment=3;),也可以手动插入一个数值改变起始值。原创 2025-02-16 09:34:34 · 214 阅读 · 0 评论 -
MySQL修改表时添加和删除约束
【代码】MySQL修改表时添加和删除约束。原创 2025-02-16 09:29:35 · 162 阅读 · 0 评论 -
MySQL主键和唯一两个约束的区别和外键的特点
④插入数据时,先插入主表,在插入从表;删除的时候,要先删除从表记录,在删除主表的记录。③主表上的关联列必须是一个key(一般是主键,很少时候也可以是唯一键)②从表上的列和主表上的对应的关联列的数据类型必须一致,含义意义一致。在同一个表中可以将多个字段组合成一个唯一约束(不推荐)在同一个表中可以将多个字段组合成一个主键(不推荐)①主键约束: 同时保证唯一和非空。②唯一约束: 保证唯一但可以为空。在同一个表中唯一约束可有很多个。在同一个表中主键只能有一个。①要求在从表上设置外键约束。原创 2025-02-11 00:44:08 · 213 阅读 · 0 评论 -
MySQL创建表时添加约束
【constraint 约束名字】 约束类型(字段名称) 【额外的东西,如外键】原创 2024-12-15 11:51:00 · 228 阅读 · 0 评论 -
MySQL常见的约束
限制,限制我们表中的数据,保证添加到数据表中的数据准确和可靠性!凡是不符合约束的数据,插入时就会失败,插入不进去的!比如:学生信息表中,学号就会约束不可重复!原创 2024-12-15 11:47:46 · 206 阅读 · 0 评论 -
MySQL数据类型
MySQL数据库中的常用数据类型①整型②小数类型①短的文本:char varchar②长的文本:text blob(二进制)原创 2024-12-13 22:08:53 · 421 阅读 · 0 评论 -
MySQL数据表的管理
①修改publishDate为publish_date。案例:中books里创建一张表book用来保存书的信息。②修改publish_date的时间时间类型。首先看看可以修改表的那些东西?④只复制部分字段,且不要数据。案例:创建书的作者信息表。③只复制表结构和部分数据。(注意后面要跟上类型)③给作者表添加工资字段。④删除作者表工资字段。②复制表的结构和数据。原创 2024-12-13 21:58:00 · 471 阅读 · 0 评论 -
MySQL数据表记录删操作
删除操作:作用删除表里的记录行(都是整行整行的删除的。原创 2024-12-12 20:38:43 · 360 阅读 · 0 评论 -
MySQL数据表记录改操作
修改语句:作用修改记录里的部分值。原创 2024-12-12 20:34:23 · 246 阅读 · 0 评论 -
MySQL数据表记录增操作
①insert记录值时候要保持插入的记录值的类型和表结构设计的类型一致,除了数字类型外,字符串型varchar和日期类型datetime等都应该用单引号包裹起来。③表名后的字段列表的顺序必须和values后面的值列表没有严格是顺序限制但必须前后一一对应(内容上一致,还有数量上一致,数据类型一致)④表名后面的字段列可以连带括号都可以省略,省略后意味着后面的values值列表必须和表结构中所有字段一一对应.(不建议这样用)②表结构设计中规定不可为空的字段必须插入记录值,可以为null的列在插入的时候可以不写。原创 2024-12-10 21:37:32 · 484 阅读 · 0 评论 -
MySQL之union联合查询
关键字union,作用就是将多条查询语句的结果合并成一个结果集;查询部门编号大于100或名字中含有a字符的员工信息。原创 2024-12-08 21:34:07 · 381 阅读 · 0 评论 -
MySQL分页查询
比如:size=10那么, page 和 size 记录范围 和 起始记录索引值 limit。limit offset(开始记录索引,是从0开始的),size(要取出的条数);通用的分页查询写法(page:页数,size:每页显示的记录条数)记住每页的起始记录索引值:(page-1)*size。where ....等等前面学过的所有写法。数据记录条数过多的时候,需要分页来显示。3页: 21_30条 20,10。2页:11-20条 10,10。1页: 1-10条 0,10。select 查询字段。原创 2024-12-08 21:30:54 · 403 阅读 · 0 评论 -
MySQL之exists后面的子查询
注意:能用exists的绝对能用前面讲过的in来实现,所以exists很少使用。exists的作用是:判断子查询有没有结果的存在。exists后面(相关子查询)案例:查询有员工的部门名。原创 2024-12-06 19:09:09 · 405 阅读 · 0 评论 -
MySQL之select和from后面的子查询
select 后面(很少用的,可以用前面讲的方法实现)案例:查询每个部门的平均工资等级。原创 2024-12-06 19:05:55 · 426 阅读 · 0 评论 -
MySQL子查询之where后的列子查询和行子查询
首先来看一下多行操作符in/not in:等于列表中的任意一个可以替换 a=10 or a=20 or a=30;any/some:和子查询返回的某一个值比较可以替换 a > min(10,20,30);all:和子查询返回的所有值比较可以替换 a > max(10,20,30);原创 2024-12-05 23:20:05 · 407 阅读 · 0 评论 -
MySQL子查询介绍和where后的标量子查询
出现在其他语句中的select语句,被包裹的select语句就是子查询或内查询包裹子查询的外部的查询语句:称主查询语句。原创 2024-11-23 14:52:19 · 551 阅读 · 0 评论 -
SQL99版全外连接和交叉连接和总结
全外连接MySQL不支持交叉连接就两个记录做笛卡尔积!没什么好说的,基本也没用过!原创 2024-11-23 14:47:55 · 463 阅读 · 0 评论 -
SQL99版外连接
看这样的场景,在ta和tb两表中查询没有对应年龄数据的学生姓名和年龄。所以外连接主要就是解决这种情况,一边有数据对应的另一张表中没有数据!外连接:当从表没有记录的时候,会保留主表的记录,对应从表null。在ta和tb两表中查询没有对应年龄数据的学生姓名和年龄。内连接:当从表没有记录的时候,主、从表的记录都丢掉!结果没有,所以前面的查询是解决不了这种问题!外表中没有对应的数据,结果记录上填充null。外表有对应数据,结果记录上显示对应数据。原创 2024-11-22 15:11:06 · 546 阅读 · 0 评论