- 博客(72)
- 收藏
- 关注
原创 JAVA——导出与写入数据
上述代码为写入,使用的是easyExcel框架,需要在maven中导入,这里的PriceExce为模版类,prices为需要导出的数据。希望过客可以帮到你们。
2023-12-12 10:49:03
500
原创 JAVA-分布式锁
原理是通过springAOP前后置任务对需要调用的方法加锁,不懂aop的可以先去学习一下aop,这里就直接上锁代码了。今天给大家带来一个项目中单模块加锁的方法。
2023-10-19 16:56:24
124
原创 (Java)关于easyExcel合并单元格
今天过客遇到一个需要合并单元格的业务,但是之前过客用的一直是easyExcel框架,所以这次也不想去使用其他的框架,今天就跟大家讲讲easyExcel怎么进行单元格的合并。.registerWriteHandler(new CustomMergeStrategy()) 方法,其中CustomMergeStrategy为自定义策略类。首先使用easyExcel进行导出的实体类一样是依据之前那样写,之后在编写导出代码时候使用。像这样就可以完成单元格的合并了。
2023-09-28 14:06:54
3141
3
原创 JAVA每日小知识(关于excel下载时插入和stream流遍历优化)
在stream流中需要new对象时,可能会出现new很多对象堆积在堆中,这是需要用try,finally在finally中将new的对象为null,并用gc收集。在使用easyexcel时,由于监听器无法被spring管理,所以无法在监听器内部使用mp,此时可以用重写的方式将。在bin目录下使用cmd。
2023-09-05 15:30:59
586
原创 Java每日小知识
BeanUtils.copyproperties(O1,O2),是把O1赋值给O2,注意O1的格式空格之类的。输出结果如下:[1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8]
2023-08-28 14:13:23
167
原创 Elasticsearchr入门
首先在官网下载elasticsearch8.9版本,以及8.9版本的kibana。解压,点击es8.9bin目录下的elasticsearch.bat文件启动es。这时候就已经可以使用了基本使用操作如下代码块。启动之后打开idea,添加依赖。
2023-08-04 17:02:02
340
原创 Servlet知识
Servlet(Server Applet)是Servlet的简称,称为小服务程序或服务连接器,用Java编写的端程序,具有独立于平台和的特性,主要功能在于交互式地浏览和生成数据,生成动态内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于。
2022-12-16 18:50:20
691
原创 JavaScript常用知识点
5、querySelector():用于查询某个标签元素,这个标签与getElementById()区别在于前者是静态的,后者是动态的。7、innerHtml:也是用于添加和修改新内容。
2022-11-17 09:01:35
270
原创 JavaScript基础
js在Html的文件里写,写在标签中,一般写在标签后面,js中变量的命名不需要想java基础中一样不同的数据类型要用不同的数据进行创建接收,只需要var一个变量即可,js可以自动转换数据类型,因此不需要通过int,String等创建不同数据类型变量。concat连接任意个字符串。js中的打印语句为document.write('想打印的内容'),这种写法会让括号里的文本内容出现在浏览页面中,还有一种写法时console.log(),这种写法会让括号里的内容在浏览器控制台输出。
2022-11-10 10:02:40
214
原创 Html浮动精讲
进行浮动,有时会造成边框塌陷,这时就需要用到清除浮动,clear属性表示清除浮动,clear:left表示清除左浮动,clear:right表示清楚右浮动,clear:both表示清除两边的浮动,当一个元素设置它的一边没有浮动,若他设置了没有浮动的那边原先有浮动 元素,那么这个浮动元素就会进行向下换行。当父类边框塌陷时,还可以通过父类标签的class名:after{content:"";这表示右浮动 , float:left;
2022-11-10 08:59:53
936
原创 jdbc——行文架构
(1)表示层(View)- 命名:XxxView- 职责:收集用户的数据和需求、战术数据(2)业务逻辑层(service)- 命名:XxxServiceImpl- 职责:数据加工处理、调用DAO完成业务实现、控制事务(3)数据访问层(Dao)- 命名:XxxDaoImpl- 职责:向业务层提供数据,将业务层加工后的数据同步到数据库
2022-11-02 11:44:44
224
原创 java——事务
因为在当前代码中连接对象叫Connection,而在其它数据库连接框架中,连接对象不叫Connection(Mybatis框架中数据库连接对象叫SqlSession,Hibernate框架中数据库连接对象叫session),这时候,你需要重新定义接口,重新传递连接对象。但是在XXXServiceImpl类中,既有业务需求,还有获取数据库连接对象以及释放资源的代码,在XXXServiceImpl类中,应该只有业务逻辑需求,除此,没有其它操作代码,这才是我们需要的。其它类代码保持不变。
2022-11-02 11:43:30
564
原创 jdbc——工具类的创建
/读取配置文件的Map。// 注册驱动,通过driverName的键获取对应的值(com.mysql.jdbc.Driver)(1)在项目src文件夹下创建db.properties文件,在文件中编写数据库驱动、数据库url、用户名、密码相关数据。//通过driverName的键获取对应的值(com.mysql.jdbc.Driver)(2)在工具类DBUtils类中读取db.properties配置文件数据。// 通过复用本类自带流,读取配置文件中的数据。//通过复用本类自带流,读取配置文件中的数据。
2022-11-01 13:37:51
381
原创 jdbc——sql注入
在用户输入的数据中有SQL关键字或语法,并且关键字或语法参与了SQL语句的编译。导致SQL语句编译后的条件为true,一直得到正确的结果。这种现象就是SQL注入。上面案例代码中,当你的用户名为 abc' or 1=1;# 密码为123,拼接到SQL语句中,变成如下效果:此SQL语句or 后面1=1永远正确,#后面的成了注释,所以这条语句会将表中所有的数据查询出来,然后再做数据判断的时候,就会得到正确结果,从而说用户名和密码正确,登录成功。
2022-10-31 08:58:07
1032
原创 jdbc的增删改查
这里首先我们创建一个teacher表,然后创建一个Teacher类,将表中所有的列写为私有变量,并且写出所以的getset方法,构造方法,及toString方法,然后创建一个操作类里面书写怎删改查的代码,最后书写一个测试类进行运行操作类中的代码,基本操作如下代码:(其中的DB01是我的工具类)
2022-10-29 10:05:06
476
1
原创 jdbc书写工具类
首先我们可以创建一个文件,在该文件中书写注册新的代码,如下:其中localhost表示本地的ip地址,若想连接其他的ip地址也可以,改成相应的地址就行,3306代码我这个本地地址的接口,想连接其他端口也可以,操作同上。上一讲讲了jdbc的基本用法,jdbc就是通过java代码注册连接到数据库然后使用java代码进行操作数据库,但是在实际操作中需要经常用到注册和连接代码因此我们这里可以创建一个工具类,方便随时使用工具类中的方法。这样我们工具类就创建完成,书写代码只需要直接调用即可。
2022-10-29 09:54:48
781
原创 jdbc的简介与入门
interface | java.sql.ResultSet | 保存SQL查询语句的结果数据(结果集) || interface | java.sql.Connection | 代表一个数据库连接(当connection不为null时,表示已连接数据库) || class | java.sql.DriverManager | 管理多个数据库驱动类,提供了获取数据库连接的方法 |
2022-10-28 10:44:01
721
原创 数据库mysql——分页查询
查询语句执行顺序:from - where -group by - having - select - order by-limit。查询语句书写顺序:select – from- where- group by- having- order by-limit。如果一页记录为10条,希望查看第3页记录应该怎么查呢?LIMIT用来限定查询结果的起始行,以及总行数。注意,起始行从0开始,即第一行开始!查询10行记录,起始行从3开始。查询5行记录,起始行从0开始。
2022-10-19 09:06:25
698
原创 数据库mysql——分组查询
当需要分组查询时需要使用GROUP BY子句,例如查询每个部门的工资和,这说明要使用部分来分组。注:凡和聚合函数同时出现的列名,则一定要写在group by 之后。
2022-10-19 09:04:52
1100
原创 数据库——mysql和sqlyog
我这里创建的员工表用到IF NOT EXISTS是为了解决'users' already exists异常,创建完表格之后就可以在括号里书写自己想要添加的内容,反撇号中写的就是表中的一个字段,后面通过相关的关键字在分别加上新字段或者该字段的数据类型和长度属性。截至至上一章,java基础的内容已经全部结束了,今天开始我们开启一个新的模块数据库,数据库的重要性相信我就不多说了,直接上干货。1、sqlyog用`表示单引号,图上代码用``括起来的就是表名,表名可以是自己创建的也可以是自带的。
2022-10-17 15:58:08
2100
原创 java高级——使用DOM4J解析xml
首先我们要导入一个DOM4J的jar包,可以在DOM4J的官网中下载。导入DOM4J的jar包后,可以创建一个SAXReaderL对象,SAXReader saxReader=new SAXReader();然后通过这个对象使用read()方法读取到xml文件,读取到之后通过read.getRootElement();这里是获取到xml文件中数据的方法,我们还可以通过一下代码操作对xml文件进行增加、删除或者修改。
2022-10-17 09:38:15
1288
原创 java高级之xml
->再比如,气象部门发布了天气预报信息,不同的系统(计算机、手机)以及不同的软件(QQ、MSN)和各种网站都可以去读取和显示这些信息,正是因为天气预报信息以XML格式存储,才使得不同系统、不同软件都能解析统一的数据并显示。-->现在可以使用XML来交换数据,例如可以将数据库A中的数据转换成标准的XML文件,然后数据库B再将该标准的XML文件转换成适合自己数据要求的数据,以达到交换数据的目的。(1)在XML中,用尖括号括起来的各种标签(Tag)来标记数据,标签需成对使用来界定字符数据。
2022-10-15 11:58:59
481
2
原创 java高级——socket
(括号里的数字可以填写1-2^16次方中的任意一个数),因为1-1024的数字基本已经被占用了,所以我们在创建端口时不要使用1-1024的数字。因为我是在同一台电脑上创建的服务器和客户端,所以括号左边就通过这个方法选到本机的ip地址,如果在不同机器上创建的,则左边就可以写服务器对应的ip地址或者域名,如百度就是。在我们进行创建客户端和服务器,并在客户端和服务器之间传输数据时,我们会使用到Socket的方法和之前学习的IO流的方法。3、然后创建一个客户端类,通过以下代码连接到服务器中的端口。
2022-10-12 19:22:10
735
原创 java高级——认识网络
(2)分布在不同地里区域的计算机与专门的外部设备通过通信线路互连在一起,形成一个规模大、功能强大的网络系统,从而使众多的计算机可以方便地互相传递信息、共享信息资源。(5)早期的TCP/IP模型是4层结构,在后来的使用过程中,借鉴OSI的7层参考模型,将网络接口层划分为物理层和数据链路层,形成新的5层结构。(4)进行数据通信的两台计算机可以相距很近(如同一间办公室),也可以在地理位置上相隔很远(如不同的国家)。(1)如同一个公司的组织架构一样,网络上的信息传递,也是由不同的层级负责不同的工作任务。
2022-10-12 18:58:55
138
1
原创 java高级——多线程(中):线程的状态与线程优先级
->处于阻塞状态的线程可以转回到可运行状态,例如,在调用sleep()方法之后,这个线程的睡眠时间已经达到了指定的间隔,那么它就有可能重新回到可运行状态。-->当调用了start()方法启动线程之后,系统为该线程分配除CPU外的所需资源,这个线程就有了运行的机会,线程处于可运行的状态,在这个状态当中,该线程对象可能正在运行,也可能尚未运行。(1)当同一时刻有多个线程处于可运行状态,它们需要排队等待CPU资源,每个线程会自动获得一个线程的优先级(Priority),优先级的高低反映线程的重要或紧急程度。
2022-10-12 09:13:58
263
原创 java高级——多线程(上)
-》实现Runnable接口的方式,当一个线程继承了另一个类时,就只能用实现Runnable接口的方法来创建线程,而且这种方式还可以使多个线程之间使用同一个Runnable对象。--》Thread类的run()方法是线程要执行操作任务的方法,所以线程要执行的操作代码都需要写在run()方法中,并通过调用start()方法来启动线程。--》一个类可以通过实现Runnable接口并实现run()方法完成线程的所有活动,已实现的run()方法称为该对象的线程体。1. 使用Thread类创建线程。
2022-10-12 09:11:05
181
原创 java高级——IO流(下)
利用DataOutputStream类写二进制文件,其实与利用FileOutputStream类写文本文件及其相似,也要用到FileOutputStream类关联二进制文件。利用DataInputStream类读二进制文件,其实与利用FileInputStream类读文本文件及其相似,也要用到FileInputStream类关联二进制文件。//读取出来的数据是Byte。//把数据写入二进制文件。3)利用数据输入流类的方法读取二进制文件中的数据。3)利用数据输出流类的方法把数据写入二进制文件。
2022-10-12 08:58:49
208
原创 java高级——IO流(中)
(3)使用序列话的意义在于将Java对象序列化后,可以将其转换为字节序列,这些字节序列可以被保存在磁盘上,也可以借助网络进行传输,同时序列化后的对象保存的是二进制状态,这样实现了平台无关性。(1)如果一个类的成员包含其他类的对象,那么序列化这个类的对象时,也要保证该类中的引用类型的对象也是可以序列化的。2)通过对象输入流的readObject()方法读取对象,该方法返回一个Object类型的对象,如果程序知道该Java对象的类型,则可以将该对象强制转换成其真实的类型。
2022-10-12 08:55:55
150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人