- 博客(54)
- 收藏
- 关注
原创 散·碎
2021-08-20天渐黑了像是本没有灯的房间,悄悄拉上了窗帘灯,一盏接着一盏,涌入了眼用力把眼睛里的光揉碎流到脸颊的依旧是光直到这城,灯火万盏才发现走的越远,越想念家的饭
2021-08-21 00:45:32
206
原创 MyBatis(八) —— 逆向工程
MyBatis 逆向工程就是使用MyBatis提供的一个叫做MyBatis Generator的工具,帮助我们自动生成mapper、pojo、sql等,省去很多步骤,提高开发效率。
2020-08-26 21:31:27
265
原创 MyBatis(七) ——延时加载与查询缓存
1.延时加载延迟加载,也可以理解为按需加载,先从单表查询做起,在需要时再关联查询,减少了不必要的查询,可以从一定程度上提高数据库的性能。MyBatis里面的关联查询标签<association>和<collection>都具备延时加载的功能从基本需求开始说起吧。需求是,查询订单信息,在需要是关联查询用户信息。下面来看看,MyBatis是怎么实现延时加载的。1. Mapper.javapublic List<OrdersCustom> findOrderAndUse
2020-08-20 21:09:59
260
原创 MyBatis(六) —— 高级映射
1. 数据模型分析MyBatis高级映射涉及到联合查询,包括一对一、一对多、多对多等复杂查询。本文中所用的数据来自于MyBatis(二)—— 入门程序之单表增删查改。这里面有用户表、商品表、订单表、订单明细表。订单关联用户,订单明细关联订单和商品,以下是用visio2010画的数据库模型图。根据上述模型图和表的实际含义,可以推测出下面的对应关系:订单——用户: 一个订单对应一个用户,属于一对一的关系;用户——订单:一个用户可以创建多个订单,属于一对多的关系;订单——订单明细:一个订单可以对应多
2020-08-18 21:48:47
766
原创 MyBatis(五) —— SQL映射文件
SQL映射文件对于MyBatis的开发而言很重要,这个映射文件省去我们很多JDBC开发。再这个配置文件当中,基本单表的增(insert)、删(delete)、查(select)、改(update)前面也都有提到,这里就不多赘述了。需要多留个心眼儿的地方是,插入时自增主键和非自自增主键的返回,是通过<selectKey>标签来完成的,具体可参考MyBatis(二)—— 入门程序之单表增删查改。复杂的操作会在后面进行说明,也不在本篇的范围之内。本篇主要讲一些SQL映射中比较常用的属性或者标签。
2020-08-16 16:04:54
477
原创 MyBatis(四) —— MyBatis全局配置文件SqlMapConfig.xml中各属性详解
MyBatis 的全局配置文件(SqlMapConfig.xml,名字不固定)包含了影响 MyBatis 行为甚深的设置和属性信息。 XML文档的高层级结构如下:configuration 配置properties 属性settings 设置typeAliases 类型命名typeHandlers 类型处理器objectFactory 对象工厂plugins 插件environments 环境environment 环境变量transactionManager 事务管理器data
2020-08-15 21:44:23
752
原创 MyBatis(三) ——数据访问对象(DAO)的开发
1. 范围与生命周期这一节,我们来讨论一下三个范围与生命周期,理解不同范围和生命周期类是很重要的。不正确的使用它们会导致严重的并发问题。1.1 SqlSessionFactoryBuilder这个类可以被实例化,使用和丢弃。一旦你创建了 SqlSessionFactory 后,这个类就不需要存在了。因此 SqlSessionFactoryBuilder 实例的最佳范围是方法范围(也就是本地方法变量)。你可以重用 SqlSessionFactoryBuilder 来创建多个 SqlSessionFact
2020-08-14 20:40:35
300
原创 MyBatis(二)—— 入门程序之单表增删查改
1.数据准备在mysql中创建一个名为mybatis的数据库;导入table.sql创建数据表(本例中使用的是MySQL5.7,这个sql文件其他版本可能不适用)-- MySQL dump 10.13 Distrib 5.7.17, for Win64 (x86_64)---- Host: localhost Database: mybatis-- -------------------------------------------------------- Server ver
2020-08-10 21:55:58
383
原创 Mybatis(一)—— 初识MyBatis
1. 从JDBC说起1.1 JDBC的问题先看一个JDBC的程序。jdbc.propertiesdriver=com.mysql.jdbc.DriverjdbcUrl=jdbc:mysql://192.168.100.120:3306/Antennapara?autoReconnect=trueuser=monicapassword=***JDBCUtils.javaimport java.io.InputStream;import java.sql.Connection;i
2020-08-05 20:38:36
727
原创 漫谈设计模式(五)—— 装饰器模式
1. 需求1.1 最开始的需求假设现在有一个老板,开了一家面店,提供各种各样的面。那么编程如下。超类package decorator;abstract class Nooddles { private String name; public Nooddles(String name) { this.name = name; } public String getName() { return name; } @Overridepublic String to
2020-07-18 14:38:39
174
原创 漫谈设计模式(四)—— 原型模式
1.前言原型模式是创建型设计模式之一。本来已经决定不写相关部分的内容,因为其内容并不是很难。后来想了一下,里面涉及到的思考点和细节点比较多,还是应该总结一下。其次,设计模式本身可能并不会很难,哪怕是对花点时间多去看一些例子,总归能看懂,但是设计模式之难不在其本身,难在其应用场景,你可能知道它是怎样实现的,但是你不知道它应该在什么场合下被使用。使用好了它有益于系统,而滥用则会为系统增加复杂度和冗余度,它考察编程人员举一反三的能力和设计思维。此外,原型模式也算是相对比较常见常用的设计模式之一。基于此,还
2020-05-23 23:28:27
266
原创 漫谈设计模式(三)—— 建造者模式
1.what & why创造者模式(Builder Pattern,根据翻译的不同,又可较为创建者模式、生成器模式等),其目的是为了将对象的创建与其“表示”(representation)分离开来,这样对象可以有多个不同的“表示”。对象的创建过程保持不变,但是最终创建的对象可以有不同的表示。...
2020-05-13 18:15:51
172
原创 漫谈设计模式(二)—— 工厂模式(简单工厂、工厂方法、抽象工厂)
1. 必要性从易维护、高可靠、低耦合的角度来看,当需要将一种类(types)添加到系统中时,比较合理的方式是使用多态特性为这些类创建一个通用接口。这将使得可以在尽可能不改变现有类的情况下向系统添加新的types。因为是一种类,所以理想情况下这些类能够被抽象出通用接口。注意,是尽可能。假设可以并已经抽象出接口或者基类,当创建新types时,实现接口或者继承基类并扩展它们是第一个要修改的地方,这...
2020-04-28 10:25:51
258
原创 漫谈设计模式(一) —— 单例模式
1. 设计模式设计模式(Design patterns)是一种解决特定类型问题的巧妙而具有深刻见解的方法,随着众多开发前辈的反复使用与推敲,成为软件领域的一个分支,为众多面向对象的软件开发人员所使用。设计模式的目标是隔离代码中需要更改的部分,使得其优雅而易于维护且具备更好的可靠性。从实现目标的角度看,继承、组合都算是一种模式。1995年,由Addison-wesley出版的《Design P...
2020-04-23 13:17:08
204
原创 使用apache commons configuration代替java.util.Properties写配置文件
0 需求存在一个配置文件,用于记录一些数据,且这些数据可能通过用户界面更改,保存后重新写进配置文件。1 原有方式采用java.util.Properties.Properties()方法配合IO流来完成,见下方代码:public void setProperty(String properties, String key , String newValue) { Properties p...
2020-03-19 17:25:42
726
原创 LocalDateTime(LocalDate)+Clock 代替 Date+Calendar+DateFormat
1. Date+Calendar+DateFormatDate自从JDK1.1开始使用,根据官方源码注释:Unfortunately, the API for these functions was not amenable to internationalization. As of JDK 1.1, the Calendar class should be used to conv...
2019-12-31 17:30:56
577
1
原创 新环境下重新导入Web项目遇到的一些问题
在 Win 10 环境下,进行了一次“全新启动”操作,重新安装了系统,过程中删除了部分安装的软件,但是工作目录等文件夹已然存在。重装了tomcat 和 eclipse,将原来的工作目录作为新工作目录。1. tomcat 启动时信息乱码问题将conf/logging.properties 中的java.util.logging.ConsoleHandler.encoding由原来的UTF-8改为...
2019-11-11 09:54:46
248
原创 Maven 在 Ubuntu 中的使用
安装与配置首先,确保jdk已安装并配置好。其次,下载apache maven, 地址 https://maven.apache.org/download.cgi ,因为是linux,所以下载 tar.gz版本。下载完成后,解压,将文件夹移动到/usr/local下,在 /etc/profile 中做如下配置(类似jdk配置,~/.bashrc里配置应该也可以,不过这里就不做尝试了):exp...
2019-10-31 17:31:34
653
原创 Windows批量修改一个文件夹下所有子目录中同类文件的后缀名
文件夹结构如:-rootDir - subDirA -1.txt -2.txt -... -subDirB -1.txt -2.txt -... 需求:将一个文件夹中(包括所有子目录中)所有同类文件(如txt文件)的后缀名改成另外一种类型文件(如 doc文件)。使用windows bat批处理changeSuffixName.bat@echo offD...
2019-10-16 18:22:07
1984
原创 Spring 报错 java.lang.IllegalArgumentException
在使用Spring3.2.0开发项目的过程中,在如下两个场景下遇到了报错java.lang.IllegalArgumentException的情况。Spring 3.2.0 + jdk1.8 注解注入,如(a)初始化@PostConstruct public void init() { //initialization }(b)applcaitonContext.xml&...
2019-09-02 10:30:57
2009
原创 Spring 报错:Unable to locate Spring NamespaceHandler for XML schema namespace
在开发项目过程中,将所用到的spring依赖包合并成一个,且先叫做Spring.jar好了。后面发现合并之后报错,而且即使spring依赖包没有合并,项目工程生成可运行jar后,也报同样的错,具体信息为org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: U...
2019-08-29 10:29:21
5260
原创 Spring+Mybatis连接多个数据库
1.需求开发先从需求或项目情况说起,项目用到几个简单的数据库和表,但是因为库和表简单,所以都配置在一个mapper里面。也即,一个mapper,需要对应多个数据库。数据库配置文件要放在最终生成的可执行jar同目录下的config文件里,跟其它设备的相关配置一起放在connection.properties文件中。2.开发与设计2.1 数据库配置信息屏蔽了ip信息jdbc.driv...
2019-08-29 09:49:39
5558
原创 Spring/Mybatis从应用外部读取配置文件
一般配置文件(以db.properties为例)都放在classpath 下,然后这样调用<properties resource="db.properties" />。但是通常会有这样的需求,即,将配置文件放在电脑本地目录中,以便数据库变动时,方便修改配置文件。假设配置文件放在home目录下(Linux)的config文件夹中,通过<properties resource=...
2019-08-19 18:43:03
1024
原创 phpmyadmin 下 mysql 的中文支持
基于phpmyamin操作mysql,可见搭建方法传动门之前项目中用到的都是英文,还没发现,这次自己鼓捣鼓捣,就发现了中文支持的问题。先从复现问题开始吧,都是一些简单的创建、插入等操作,但是为了能说清楚,以后能记得住,还是一点一点来吧。新建一个数据库,使用默认的排序方式。创建数据表添加字段,除了一些基本的设置和设置主键唯一且自增外,其余都默认。插入带中文的数据...
2019-07-05 18:33:22
417
原创 仿Eclipse tab 右键菜单
【项目开发】项目需要,仿Eclipse 的 tab 右键菜单,主要用于关闭tab。Eclipse(Version: Oxygen.3a Release (4.7.3a))右键菜单如下。创建菜单private JPopupMenu createPopupMenuForTab() { JPopupMenu popup = new JPopupMenu(); //创建菜单项 JMe...
2019-07-04 17:39:22
146
原创 HightCharts —— html5交互性图表库
在Zeroc ice js项目中,在处理数据时需要绘图,经过查询,选择了HighCharts。下面总结一下项目过程中使用的HighCharts的一些收获以及在开发过程中碰到的一些疑难问题和解决方法。附上HighCharts中文官网 https://www.highcharts.com.cn/API可在官网上方的选项栏中找到。1. 基本使用方法-实例化HighCharts 通过 HighCh...
2019-07-02 09:08:54
1169
1
原创 Zeroc ice3.7 js 初体验
Zeroc ice 是一个比较好用的分布式框架,之前在项目中也一直在用,用的是3.5版本。从3.6版本开始,ice就开始支持 js 使用。这回因为项目 html 页面中也需要用到 ice,所以直接用了 3.7版本。但是因为服务端用的都是较低版本的ice,3.3、3.5之类的,不支持js,所以只能用3.7版本再搭建一层服务端,最后才是客户端和前端页面。3.6以上版本的 ice js库文件可以在下...
2019-06-30 13:55:30
1351
原创 js事件应用 —— 拖拽、自定义滚动条
js事件本身有较多的知识点,如事件类型、事件处理函数的注册等等,不多赘述。强调一点,原教程中说到阻止默认行为时只提及返回 false 这种方法。除此方法之外,《JavaScript权威指南》中说到:在支持addEventListener()的浏览器中,也能通过调用事件对象的preventDefault() 方法取消事件的默认操作。不过,在IE9之前的IE中,可以通过设置对象的returnValu...
2019-05-13 17:33:26
924
原创 js运动(三)—— 多元素的运动
本文以元素的单一属性变化为切入点,介绍适用于所有元素、所有属性运动的缓动函数的开发过程和思路。针对实际开发过程遇到的一些问题,引申出知识点。
2019-05-07 18:10:15
317
原创 js运动(二)—— 右侧悬浮框
本文介绍了文档坐标和视口坐标的转换情况,并对个人理解进行了阐述。同时,也介绍了一些关于元素尺寸、位置和溢出的一些信息。以上所述的知识点为右侧悬浮框的实现提供了理论基础。在上述理论基础的及相关材料的指导下,完成并叙述了右侧悬浮框的实现过程并提出了需要注意的问题,也相当于对缓动知识进行了复习和巩固
2019-05-06 18:27:11
933
原创 关于vim编辑器的一些操作
vim是Linux下常用也比较好用的一款编辑器,退出(q)、强制退出(q!)、保存退出(wq)这些基本的操作就不多言了,在此记录一下总要用但是偶尔会忘记的功能,随遇更新。ctrl+s会使得vim屏幕无响应,ctrl+q即可恢复yy复制光标所在行,p粘贴已复制行,二者同时使用。nyy复制光标以下第n行,复制后仍然使用p粘贴。dd删除光标所在行:n,n+M co X 将第n到n+M行复制到第...
2019-05-05 16:10:10
142
原创 js运动(一)—— sidebar(分享到)
1.前言在一些网页中,经常可以看到边框上,有一个“分享到”的小标签,鼠标进入后,划出一个小框,上面是微信、QQ等选项。这个效果可以使用js运动来实现。尽管在现实开发中,运动可能大都使用 jQuery 等框架来完成,但是生js编码还是要熟悉一下。在学习过程中,看着挺简单的,结果是脑子会了,自己做得时候手没跟上(主要是布局方面),所以即使看起来简单的东西还是要自己做自己积累。2. 运动原理一...
2019-04-29 15:44:56
670
原创 js表格初学
《JavaScript权威指南第六版》书中只提及表单,但未提及表格,尽管实际开发中表格可能已经很少使用到,但在学习过程中见到相关的东西,还是记录下来备忘。1.表格和表单表格用于布局,一般用于存放数据;表单用于传输数据;、一般而言,表格中可以包含表单,表单中也可以包含表格。2. 表格的使用2.1 表格的创建<table border = "1" > <thead&...
2019-04-26 10:23:17
954
原创 DOM之子节点
说明单独将子节点这一节单独拿出来记录的原因:在学习和实际开发中,发现了一些问题,为避免遗忘或在以后开发中造成疑惑,故将这一块单独记录。1.childNodeschildNodes 是一个只读的类数组对象( NodeList 对象),它是某一个节点的子节点的实时表示。需要注意的是,这里面有一些坑。<body><ul><li></li><l...
2019-04-26 09:57:26
385
原创 IE浏览器调试Javascript
在实际开发中,不难发现的是,客户端JavaScript编程中的很多不兼容性都是针对IE的,这就导致需要按照一定的规则去为IE编写代码,而用另外一种方式去为其他浏览器编码。1. 扩展兼容性通用的方式是用if…else…语句来扩展兼容性,如if(element.addEventListener){ //可使用该W3C方法的浏览器的相关处理}else if (element.attachEv...
2019-04-26 09:09:10
824
原创 Java 日常开发小纪
1. eclipse清除launch configuration清空 workspace目录下.metadata/.plugins/org.eclipse.debug.core/.launches中的内容。2. Java 读取 exel内容需要下载 jxl.jar。当出现Unable to read OLE stream错误时,需要将exel文件另存为exel97—2003工作簿,并将文件...
2019-04-23 14:17:00
131
原创 Ubuntu中服务自启动示例
以自启动svn服务为例,说明在Ubuntu中如何设置完成服务的自启动。1 runsvn.sh#!/bin/bashcase "$1" in start) NUM=$(ps -efw | grep "svnserve --listen-port=8899 -d -r /var/svn" | grep -v grep | wc -l) if [ $NUM == 0 ]; t...
2019-04-23 13:55:35
1211
原创 JNLP的使用及碰到的一些问题
JNLP(Java Network Launching Protocol )是java提供的一种可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url连接打开一个java应用程序。Java桌面应用程序以JNLP 的方式发布,如果版本升级后,不需要再向所有用户发布版本,只需要更新服务器的版本,这就相当于让java应用程序有了web应用的优点。[以上内容摘自百度搜索,侵...
2019-04-23 13:45:11
4010
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人