们将在这个小小的城镇中相互扶持,共同生活下去
今宵之月,绝不西沉。只此美梦,不再苏醒。从今往后,生生世世,长相厮守,为你立誓。
我们不能让这次冒险之旅没有意义没有收获
我们的本质就是血,一层层地重复,然后世代脉脉相传的血才是黑血的真实
当你知道自己被爱著的时候就不会自卑了asd
不要哭,我还没有努力到要哭的程度,不甘心就可以了das
既不回头,何必不忘;既然无缘,何必誓言;今日种种,似水无痕
空谈之类,是谈不久,也谈不出什么来的,它终必被事实的镜子照出原形,拖出尾巴而去
只愿涤荡四方,护得一世之隅。
你看你浪费了多少流星,哈哈……不牵个手也很浪费这样的夜晚呢
有形的东西迟早会凋零,但只有回忆是永远不会凋零的
已经无法回来的东西,得到和舍弃都很痛苦
Pain past is pleasure.11222
我因为后来离开村子,在远处看见这一村庄人的火焰。看见他们比熄灭还要寂静的那一场燃烧。我像一根逃出火堆的干柴,幸运而孤独地站在远处。
河川,激流逆流顺流回流,犹如人生前后进退往复不息
首页
统计
免费Chat GPT
关于
更多
友链
每日新闻
视频
高清壁纸
Search
1
2023彩虹易支付最新原版开源网站源码,完整的易支付源码,无后门
465 阅读
2
ThinkPHP6的常见问题解答
387 阅读
3
Spring Boot之七牛云分片上传
239 阅读
4
小狐狸ChatGPT付费创作系统V2.4.9独立版 +WEB端+ H5端 + 小程序端(支持分享朋友圈、破解弹窗)
230 阅读
5
国内最好用的六款虚拟机软件
211 阅读
技术分享
源码分享
课程分享
号卡套餐
移动专区
电信专区
联通专区
广电专区
软件仓库
电脑软件
安卓软件
活动线报
值得一看
Search
标签搜索
技术分享
源码
源码分享
css
安卓软件
活动线报
软件
课程分享
号卡
电脑软件
PHP
值得一看
HTML
js
教程
chatgpt
AI
小程序
ThinkPHP
联通
老K博客
累计撰写
420
篇文章
累计收到
338
条评论
今日撰写
0
篇文章
首页
栏目
技术分享
源码分享
课程分享
号卡套餐
移动专区
电信专区
联通专区
广电专区
软件仓库
电脑软件
安卓软件
活动线报
值得一看
页面
统计
免费Chat GPT
关于
友链
每日新闻
视频
高清壁纸
用户登录
登录
搜索到
55
篇与
的结果
2023-07-14
2023全新UI彩虹站长在线工具箱系统源码下载 全开源版本
2023全新UI彩虹站长在线工具箱系统源码下载 全开源版本 支持暗黑模式支持高达72种站长工具、开发工具、娱乐工具等功能。本地调用API、自带免费API接口,是一个多功能性工具程序支持后台管理、上传插件、添加增减删功能。2023全新UI彩虹站长在线工具箱系统源码下载 全开源版本 支持暗黑模式支持高达72种站长工具、开发工具、娱乐工具等功能。本地调用API、自带免费API接口,是一个多功能性工具程序支持后台管理、上传插件、添加增减删功能。环境要求:PHP >= 7.4MySQL >= 5.6fileinfo 扩展安装教程:设置运行目录为 public设置伪静态 thinkphp 规则访问 http://你的域名/install 进行安装 隐藏内容,请前往内页查看详情
2023年07月14日
11 阅读
10 评论
0 点赞
2023-06-16
一个简单实用的网站访客统计PHP源码
简介一个简单统计网站访客的PHP源码,实现前端网页显示访问量,采用PV统计方式,单个用户连续点击N篇文章,记录N次访问量,源码会自动生成TXT记录文档,记录的访问量可以自行修改源码在网站根目录新建一个名为FKTJ.php的文件,然后写入以下代码<?php $n=file_get_contents('FKTJ.txt'); $n++; file_put_contents('FKTJ.txt',$n); echo "document.write($n);"; ?>...在需要显示的地方添加以下调用代码你是第<script type=text/javascript src=FKTJ.php></script>位访问者 ...注意加入调用代码后打开网页,会在后台生成一个名为FKTJ.txt的记录文件,编辑此文件可以实现修改访问量,如需统计次目录下的单页访问量,可以在次目录下新建FKTJ.php文件,然后添加调用代码即可
2023年06月16日
38 阅读
0 评论
0 点赞
2023-06-15
Mybatis-plus的使用
Mybatis-plus的使用一、简介{card-describe title=""}Mybatis-plus的基于mybatis的,简化了单表mybatis的操作。注意:它并没有提升性能,只是简化了开发过程。{/card-describe}二、在springboot中的基本使用{card-describe title=""}1、倒入依赖{/card-describe}<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version> </dependency> ...{card-describe title=""}2、添加相应的数据库配置(application.properties){/card-describe}# 数据库驱动: spring.datasource.driver-class-name=com.mysql.jdbc.Driver # 数据库连接地址 spring.datasource.url=jdbc:mysql://localhost:3306/books?useUnicode=true&characterEncoding=utf-8 # 数据库用户名&密码: spring.datasource.username=root spring.datasource.password=root # mapper的路径 mybatis-plus.mapper-locations=classpath*:/mapper/**/*.xml ...{card-describe title=""}3、在Application类上添加dao接口的路径扫描{/card-describe}@SpringBootApplication @MapperScan("com.qf.day15.dao") public class Day15Application { public static void main(String[] args) { SpringApplication.run(Day15Application.class, args); } } ...{card-describe title=""}4、编写实体类{/card-describe}// 如果表名和实体类的名称一致,如果属性名和数据库表中字段名一致,可以不配置任何实体相关内容 @Data public class User { private Long id; private String name; private Integer age; private String email; } ...{card-describe title=""}5、编写dao接口{/card-describe}public interface UserDAO extends BaseMapper<User> { } ...{card-describe title="}6、测试使用{/card-describe}@SpringBootTest class Day15ApplicationTests { @Resource private UserDAO userDAO; @Test void contextLoads() { List<User> list = userDAO.selectList(null); System.out.println(list); } } ...三、常用配置1、实体类配置当实体类与表名不一致,字段名与属性名不一致时,需要相应的配置@TableName 一般用来配置实体类对应的表名,resultMap,以及忽略的属性名(3.3.1以上的版本)等。用在类上。@TableId一般用来配置主键的增长方式,并且配置表中的主键字段的名称。相当于id标签@TableField 一般用来配置表中列的名称。相当于result标签@Version乐观锁标记。@Data @TableName("tb_user") public class User { @TableId(value = "u_id", type = IdType.AUTO) private Long id; @TableField("u_name") private String name; @TableField("u_age") private Integer age; @TableField("u_email") private String email; } ...四、常用方法// 添加 int insert(T entity); // 根据id删除 int deleteById(Serializable id); int deleteByMap(@Param("cm") Map<String, Object> columnMap); // 根据where条件删除 int delete(@Param("ew") Wrapper<T> wrapper); // 批量根据ids删除 int deleteBatchIds(@Param("coll") Collection<? extends Serializable> idList); // 根据id修改 int updateById(@Param("et") T entity); // 根据where条件修改 int update(@Param("et") T entity, @Param("ew") Wrapper<T> updateWrapper); // 根据id查询对象 T selectById(Serializable id); // 根据一组ids查询集合 List<T> selectBatchIds(@Param("coll") Collection<? extends Serializable> idList); List<T> selectByMap(@Param("cm") Map<String, Object> columnMap); // 根据添加查询单个对象 T selectOne(@Param("ew") Wrapper<T> queryWrapper); // 根据添加查询数量 Integer selectCount(@Param("ew") Wrapper<T> queryWrapper); // 根据添加查询集合 List<T> selectList(@Param("ew") Wrapper<T> queryWrapper); List<Map<String, Object>> selectMaps(@Param("ew") Wrapper<T> queryWrapper); List<Object> selectObjs(@Param("ew") Wrapper<T> queryWrapper); // 分页查询 <E extends IPage<T>> E selectPage(E page, @Param("ew") Wrapper<T> queryWrapper); <E extends IPage<Map<String, Object>>> E selectMapsPage(E page, @Param("ew") Wrapper<T> queryWrapper); ...构造查询条件Wrapper具体参考:https://mybatis.plus/guide/wrapper.html#inpublic List<User> findAll(int age){ QueryWrapper wrapper = new QueryWrapper(); wrapper.gt("u_age", age); return userDAO.selectList(wrapper); } ...五、关联查询的实现mybatis-plus对于关联查询本身需要mybatis来支持,所以可以写mapper.xml来实现。@Data @TableName("book_type") public class BookType { @TableId(value = "id", type = IdType.AUTO) private Integer id; private String name; } @Data @TableName(value = "books", resultMap = "bookMap") // 关联xml中的resultMap配置 public class Book { @TableId(value = "id", type = IdType.AUTO) private Integer id; private String name; private String author; @TableField("book_desc") private String bookDesc; @TableField("create_time") private Date createTime; private BookType type; @TableField("img_path") private String imgPath; } ...<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.qf.day15.dao.BookDAO"> <resultMap id="bookMap" type="com.qf.day15.entity.Book"> <association property="type" column="type_id" select="com.qf.day15.dao.BookTypeDAO.selectById"></association> </resultMap> </mapper> ...
2023年06月15日
43 阅读
0 评论
0 点赞
2023-06-11
微信小程序——实现蓝牙设备搜索及连接功能
1、在小程序的app.json文件中添加蓝牙权限在app.json中写入如下代码 "permission": { "scope.userLocation": { "desc": "你的位置信息将用于小程序定位" }, "scope.bluetooth": { "desc": "你的蓝牙信息将用于小程序连接设备" } }, ...2、新建一个展示蓝牙列表的界面 index在pages目录下,新建一个Page,命名为index,生成如下文件:2.1、在index.wxml文件中,添加如下代码:<view class="container"> <view class="title">蓝牙设备列表</view> <view class="list"> <block wx:for="{{devices}}" wx:key="index"> <view class="item" bindtap="connectDevice" data-device="{{item}}"> <view class="name">{{item.name}}</view> <view class="rssi">信号强度:{{item.RSSI}}</view> </view> </block> </view> </view> ...2.2、在index.wxss文件中添加如下代码:.container { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100vh; } .title { font-size: 24px; font-weight: bold; margin-bottom: 20px; } .list { width: 100%; } .item { display: flex; flex-direction: row; align-items: center; justify-content: space-between; padding: 10px; border-bottom: 1px solid #eee; } .name { font-size: 16px; font-weight: bold; } .rssi { font-size: 14px; color: #999; } ...2.3、在index.js文件中相关代码及说明第一步:蓝牙初始化,wx.openBluetoothAdapter(Object object); 初始化蓝牙模块。iOS 上开启主机/从机(外围设备)模式时需分别调用一次,并指定对应的 mode。 // 第一步,蓝牙初始化成功 onLoad: function () { wx.openBluetoothAdapter({ success: (res) => { console.log('第一步,蓝牙初始化成功', res) //开始搜索附近蓝牙 this.startBluetoothDevicesDiscovery() }, fail: (res) => { console.log("第一步、蓝牙初始化失败", res); wx.showToast({ title: '蓝牙初始化失败', icon: 'none' }) } }) }, ...注意 其他蓝牙相关 API 必须在 wx.openBluetoothAdapter 调用之后使用。否则 API 会返回错误(errCode=10000)。 在用户蓝牙开关未开启或者手机不支持蓝牙功能的情况下,调用 wx.openBluetoothAdapter 会返回错误(errCode=10001),表示手机蓝牙功能不可用。此时小程序蓝牙模块已经初始化完成,可通过 wx.onBluetoothAdapterStateChange 监听手机蓝牙状态的改变,也可以调用蓝牙模块的所有API。第二步:开始搜索附近的蓝牙设备,wx.startBluetoothDevicesDiscovery(Object object) 开始搜寻附近的蓝牙外围设备。 此操作比较耗费系统资源,请在搜索到需要的设备后及时调用 wx.stopBluetoothDevicesDiscovery 停止搜索 // 第二步 开始搜索附近的蓝牙设备 startBluetoothDevicesDiscovery() { wx.startBluetoothDevicesDiscovery({ allowDuplicatesKey: false, success: (res) => { console.log('开始搜索附近的蓝牙设备', res) this.onBluetoothDeviceFound() }, }) }, ...注意 考虑到蓝牙功能可以间接进行定位,安卓 6.0 及以上版本,无定位权限或定位开关未打开时,无法进行设备搜索。这种情况下,安卓 8.0.16 前,接口调用成功但无法扫描设备;8.0.16 及以上版本,会返回错误。第三步:监听发现附近的蓝牙设备,wx.onBluetoothDeviceFound(function listener) 监听搜索到新设备的事件 // 第三步 监听发现附近的蓝牙设备 onBluetoothDeviceFound() { wx.onBluetoothDeviceFound((res) => { res.devices.forEach(device => { if (!device.name && !device.localName) { return } console.log("发现的蓝牙设备", device) this.data.devices.push(device) this.setData({ devices: this.data.devices }) }) }) }, ...注意 若在 wx.onBluetoothDeviceFound 回调了某个设备,则此设备会添加到 wx.getBluetoothDevices 接口获取到的数组中。第四步:建立连接,wx.createBLEConnection(Object object) 连接蓝牙低功耗设备。 若小程序在之前已有搜索过某个蓝牙设备,并成功建立连接,可直接传入之前搜索获取的 deviceId 直接尝试连接该设备,无需再次进行搜索操作。 // 第四步、 建立连接 connectDevice: function (e) { const device = e.currentTarget.dataset.device wx.createBLEConnection({ deviceId: device.deviceId, success: (res) => { console.log('createBLEConnection success', res) wx.showToast({ title: '蓝牙连接成功', icon: 'none' }) this.stopBluetoothDevicesDiscovery() wx.navigateTo({ url: '/pages/main/main?deviceId=' + device.deviceId }) }, fail: (res) => { wx.showToast({ title: '蓝牙连接失败', icon: 'none' }) } }) }, ...注意 请保证尽量成对的调用 wx.createBLEConnection 和 wx.closeBLEConnection 接口。安卓如果重复调用 wx.createBLEConnection 创建连接,有可能导致系统持有同一设备多个连接的实例,导致调用 closeBLEConnection 的时候并不能真正的断开与设备的连接。 蓝牙连接随时可能断开,建议监听 wx.onBLEConnectionStateChange 回调事件,当蓝牙设备断开时按需执行重连操作。 若对未连接的设备或已断开连接的设备调用数据读写操作的接口,会返回 10006 错误,建议进行重连操作。第五步:停止搜索,wx.stopBluetoothDevicesDiscovery(Object object) 停止搜寻附近的蓝牙外围设备。若已经找到需要的蓝牙设备并不需要继续搜索时,建议调用该接口停止蓝牙搜索。 // 第五步、 停止搜索 stopBluetoothDevicesDiscovery(){ wx.stopBluetoothDevicesDiscovery({ success: function(res) { console.log('停止搜索成功'); }, fail: function(res) { console.log('停止搜索失败'); } }); } ...其中,devices在data中定义如下: data: { devices: [] }, ...3、测试选择整机调试,效果图如下:
2023年06月11日
15 阅读
0 评论
0 点赞
2023-06-10
二次元风格的登录界面,也只是用html和css来写的,大家可以来看看!
给大家带来比较具有二次元风格的登录界面,也只是用html和css来写的,大家可以来看看!HTML部分既然是制作登录界面我们可以使用表单元素,会比盒子更加简单一些,个人相信大家应该可以明白里头的啥意思吧!!!这边就介绍一下CSS部分吧<div class="shell"> <div id="img-box"> <img src="./a34a7810c48ee409750f92812023beb0-1.jpg" alt=""> </div> <form action="" method="post"> <div id="form-body"> <div id="welcome-lines"> <div id="w-line-1">HI,老K</div> <div id="w-line-2">Welcome Back</div> </div> <div id="input-area"> <div class="f-inp"> <input type="text" placeholder="Email Address"> </div> <div class="f-inp"> <input type="password" placeholder="Password"> </div> </div> <div id="submit-button-cvr"> <button type="submit" id="submit-button">LOGIN</button> </div> <div id="forgot-pass"> <a href="#">Forgot password?</a> </div> </div> </form> </div>...CSS部分还是给我们先清除内外边距然后这个ountline:none;的意思是鼠标点击文本框的时候,文本的边框焦点会被去除掉还是设置一个背景颜色,这里我们使用的是渐变色:然后在需要让盒子来正中间,需要使用弹性布局感觉下面都挺简单的,我就着重讲一下这个伪元素吧placeholderplaceholder 是HTML5 中新增的一个属性。placeholder可以用来描述输入字段预期值的简短的提示信息。提示信息会在用户输入值之前显示,一旦用户输入信息该提示就会自动消失。比如:我们在登录时需要输入用户名和密码,它会提示你什么地方输入用户名,什么地方输入密码,这个就是使用的placeholder属性。* { padding: 0; margin: 0; outline: none; } body { background: linear-gradient(45deg, #fbda61, #ff5acd); display: flex; justify-content: center; align-items: center; height: 100vh; } .shell, form { position: relative; } .shell { display: flex; justify-content: center; } form { width: 562px; height: 520px; background-color: #fff; box-shadow: 0px 15px 40px #b6354e; border-radius: 15px; display: flex; justify-content: center; align-items: center; } #img-box { width: 330px; height: 520px; } #img-box img { height: 100%; margin-left: -175px; border-radius: 20px; } #form-body { width: 320px; display: flex; justify-content: center; align-items: center; flex-direction: column; } #welcome-lines { width: 100%; text-align: center; line-height: 1; } #w-line-1 { color: #7f7f7f; font-size: 50px; } #w-line-2 { color: #9c9c9c; font-size: 30px; margin-top: 17px; } #input-area { width: 100%; margin-top: 40px; } .f-inp { padding: 13px 25px; border: 2px solid #6e6d6d; line-height: 1; border-radius: 20px; margin-bottom: 15px; } .f-inp input { width: 100%; font-size: 14px; padding: 0; margin: 0; border: 0; } .f-inp input::placeholder { color: #b9b9b9; } #submit-button-cvr { margin-top: 20px; } #submit-button { display: block; width: 100%; color: #fff; font-size: 14px; margin: 0; padding: 14px 40px; border: 0; background-color: #f5506e; border-radius: 25px; line-height: 1; cursor: pointer; } #forgot-pass { text-align: center; margin-top: 10px; } #forgot-pass a { color: #868686; font-size: 12px; text-decoration: none; }...接下来展示源码,素材图片就是封面哦<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>老K&&前端小窝</title> <style> * { padding: 0; margin: 0; outline: none; } body { background: linear-gradient(45deg, #fbda61, #ff5acd); display: flex; justify-content: center; align-items: center; height: 100vh; } .shell, form { position: relative; } .shell { display: flex; justify-content: center; } form { width: 562px; height: 520px; background-color: #fff; box-shadow: 0px 15px 40px #b6354e; border-radius: 15px; display: flex; justify-content: center; align-items: center; } #img-box { width: 330px; height: 520px; } #img-box img { height: 100%; margin-left: -175px; border-radius: 20px; } #form-body { width: 320px; display: flex; justify-content: center; align-items: center; flex-direction: column; } #welcome-lines { width: 100%; text-align: center; line-height: 1; } #w-line-1 { color: #7f7f7f; font-size: 50px; } #w-line-2 { color: #9c9c9c; font-size: 30px; margin-top: 17px; } #input-area { width: 100%; margin-top: 40px; } .f-inp { padding: 13px 25px; border: 2px solid #6e6d6d; line-height: 1; border-radius: 20px; margin-bottom: 15px; } .f-inp input { width: 100%; font-size: 14px; padding: 0; margin: 0; border: 0; } .f-inp input::placeholder { color: #b9b9b9; } #submit-button-cvr { margin-top: 20px; } #submit-button { display: block; width: 100%; color: #fff; font-size: 14px; margin: 0; padding: 14px 40px; border: 0; background-color: #f5506e; border-radius: 25px; line-height: 1; cursor: pointer; } #forgot-pass { text-align: center; margin-top: 10px; } #forgot-pass a { color: #868686; font-size: 12px; text-decoration: none; } </style> </head> <body> <div class="shell"> <div id="img-box"> <img src="./a34a7810c48ee409750f92812023beb0-1.jpg" alt=""> </div> <form action="" method="post"> <div id="form-body"> <div id="welcome-lines"> <div id="w-line-1">HI,老K</div> <div id="w-line-2">Welcome Back</div> </div> <div id="input-area"> <div class="f-inp"> <input type="text" placeholder="Email Address"> </div> <div class="f-inp"> <input type="password" placeholder="Password"> </div> </div> <div id="submit-button-cvr"> <button type="submit" id="submit-button">LOGIN</button> </div> <div id="forgot-pass"> <a href="#">Forgot password?</a> </div> </div> </form> </div> </body> </html>...最后的效果是这样子的:大家可以尝试敲一敲,这样一步步就会了解到这种类型的布局,然后自己在尝试几次就可以自己来写自己的专属登录界面然后后期通过js完善一下会更加完美哦!!
2023年06月10日
36 阅读
3 评论
0 点赞
1
...
10
11
CC BY-NC-ND