资源网站
记录一些资源网站Static Badge-静态图标用于生成一些小标签,比如博客网站底部的标签
https://shields.io/badges
Simple Icons-icon图标icon图标资源网站
https://simpleicons.org/
try-with-resources
try-with-resources写法 采用try-with-resources写法,当try中代码执行结束(正常结束/异常结束)之后就会调用try()括号中对象的close()方法来关闭资源,虽然表面上来看try-with-resources写法更加优雅
因为实现了autoCLoseAble接口,再try代码块结束后,connection的close方法会自动调用
// 假设dataSource可用try{ try(Connection conn = dataSource.getConnection()) { ... String sql = "select * from ..."; try(PreparedStatement statement = conn.prepareStatement(sql)) { ... } }} catch(...) { ...} finally { ...}在执行完后,conn和其中使用的statement等资源 ...
spring+jdbcTemplate操作数据库
spring+jdbcTemplate操作数据库(mysql)// 初始化数据源org.springframework.jdbc.datasource.DriverManagerDataSource dataSource = new org.springframework.jdbc.datasource.DriverManagerDataSource();dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");dataSource.setUrl("jdbc:mysql://localhost:3306/zyappdata_db");dataSource.setUsername("root");dataSource.setPassword("root");// jdbcTemplate操作数据库org.springframework.jdbc.core.JdbcTemplate jdbcTemplate = new org.springframewo ...
使用jdbcTemplate时,插入数据后获取自增的id
使用jdbcTemplate时,插入数据后获取自增的id(mysql)两种写法
Connection connection = null;PreparedStatement ps = null;ResultSet generatedKeys = null;connection = dataSource.getConnection();// 准备插入数据的SQL语句,同时指定返回自动生成的主键String mSql = "INSERT INTO your_table_name (view_name, view_desc, database_id, version, creator_account, create_time) VALUES (?, ?, ?, ?, ?, ?)";ps = connection.prepareStatement(mSql, Statement.RETURN_GENERATED_KEYS);ps.setString(1, viewName);ps.setString(2, viewDesc);ps.setString(3, database ...
JS将信息拼接并复制到剪切板
let copyStr = '';// 版本号const version = '...';// 更新时间const updateTime = '...';// 编辑备注const editDesc = '...';// 脚本const editScript = '...';copyStr = `版本号:${version};\n更新时间:${updateTime};\n编辑备注:${editDesc};\n更新脚本:\n${editScript}`;// 创建输入元素const input = document.createElement('textarea');document.body.appendChild(input);input.value = copyStr;input.select();// 复制到剪切板if (document.execCommand('copy& ...
JS原生获取当前时间并格式化为yyyy-MM-dd HH:mm:ss
// js获取当前时间并格式化const currentDate = new Date();const year = currentDate.getFullYear();const month = String(currentDate.getMonth() + 1).padStart(2, '0');const day = String(currentDate.getDate()).padStart(2, '0');const hours = String(currentDate.getHours()).padStart(2, '0');const minutes = String(currentDate.getMinutes()).padStart(2, '0');const seconds = String(currentDate.getSeconds()).padStart(2, '0');console.log(`${year}-${month ...
记录当前可用docker数据源
docker源不可控因素不能连接了,目前只能临时找还没下架的源拉取镜像vim /etc/docker/daemon.json
ICUhttps://dockerhub.icu/
sudo systemctl daemon-reload #重启daemon进程sudo systemctl restart docker #重启docker
sqlserver:sqljdbc4下载失败问题
sqlserver:sqljdbc4下载失败问题出现Cannot resolve com.microsoft.sqlserver:sqljdbc4:4.0
解决办法一:直接换代码<dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>6.2.0.jre8</version> <scope>test</scope></dependency>
解决办法二:手动下载
进入jar包目录执行:
mvn install:install-file -Dfile=sqljdbc4-4.0.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jarmvn install:install-file -Dfile=“jar包的 ...
守护线程
守护线程 所谓守护线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程,并且这种线程并不属于程序中不可或缺的部分。因此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在运行,程序就不会终止。
用户线程和守护线程两者几乎没有区别,唯一的不同之处就在于虚拟机的离开:如果用户线程已经全部退出运行了,只剩下守护线程存在了,虚拟机也就退出了。 因为没有了被守护者,守护线程也就没有工作可做了,也就没有继续运行程序的必要了。
将线程转换为守护线程可以通过调用Thread对象的setDaemon(true)方法来实现。在使用守护线程时需要注意一下几点:
thread.setDaemon(true)必须在thread.start()之前设置,否则会抛出一个IllegalThreadStateException异常。你不能把正在运行的常规线程设置为守护线程。
在Daemon线程中产生的新线程也是Daemon的。
守护线程应该永远不去访问固有资源,如文件、数据库,因为它会在任何时候甚至在一个操作的中间发生中断。
docker部署svn
docker部署svn镜像拉取和部署查找并拉取garethflowers/svn-server的svn镜像
docker search svndocker pull docker.io/garethflowers/svn-server
拉取完成后,启动容器
docker run --restart always --name svn -d -v /mydata/svnRepo:/var/opt/svn -p 3690:3690 garethflowers/svn-server
配置进入容器
docker exec -it svn sh
创建svn资源仓库
svnadmin create cyk
查看目录结构
ls cyk
配置修改cd /var/opt/svn/cyk/confvi svnserve.conf#配置详解anon-access = none # 匿名用户不可读写,也可设置为只读 readauth-access = write # 授权用户可写password-db = passwd # ...