目录:
1.后台增删改查方法
2.R工具类的使用
3.前端代码的实现
为什么要用增删改查:
Layui是一个轻量级的前端UI库,被广泛应用于Web开发中。在开发过程中,经常需要对数据进行增删改查操作,这是因为数据是应用程序的核心内容,而增删改查是对数据进行基本的操作。
以下是几个原因解释为什么在Layui中使用增删改查操作:
数据管理和交互:对于大部分Web应用来说,用户需要与数据进行交互,包括增加新数据、删除不需要的数据、修改已有的数据以及查询获取所需的数据。增删改查操作是直接操作数据的方式,能够满足用户的需求。
数据展示与操作:Web应用通常需要以表格、列表等形式展示数据,而增删改查操作则是管理和操作这些数据的重要手段。通过增删改查操作,用户可以方便地管理和编辑数据,从而提升用户体验和操作效率。
安全性和数据完整性:通过对数据的增删改查操作,可以增强数据的安全性和完整性。例如,可以限制用户对数据的访问和操作权限,避免未经授权的人员对数据进行操作。
数据持久化:在Web开发中,数据通常需要永久保存并持久化到数据库,以便长期使用和管理。增删改查操作是对数据库中数据进行操作的方式,通过这些操作可以实现数据的持久化和管理。
总之,使用增删改查操作可以方便地管理、操作和展示数据,从而提供良好的用户体验和数据管理能力。Layui作为一个前端UI库,提供了方便易用的UI组件和交互方式,使得开发人员可以更快地实现增删改查功能。
1.后台增删改查方法:
查询语句:
SELECT u.*,
(CASE
WHEN u.rid='1' THEN
'管理员'
WHEN u.rid='2' THEN
'发起者'
WHEN u.rid='3' THEN
'审批者'
WHEN u.rid='4' THEN
'参与者'
WHEN u.rid='5' THEN
'会议是管理员'
ELSE
'其他'
END
)rname
FROM t_oa_user u
dao方法:
package com.zking.dao;
import java.util.List;
import java.util.Map;
import com.zking.entity.User;
import com.zking.util.BaseDao;
import com.zking.util.PageBean;
import com.zking.util.StringUtils;
public class UserDao extends BaseDao {
public List list(User user, PageBean pageBean) throws Exception {
String sql="select * from t_oa_user where 1=1";
return super.executeQuery(sql, User.class, pageBean);
}
public User login(User user) throws Exception {
String sql="select * from t_oa_user where loginName='"+user.getLoginName()+"' and pwd ='"+user.getPwd()+"' ";
List l = super.executeQuery(sql, User.class, null);
if(l!=null && l.size()==1) {
return l.get(0);
}
return user;
}
/**
* List与List都是转成一样的json数组
* 插叙吧结果溴代rname
* @param user
* @param pageBean
* @return
* @throws Exception
*/
public List> userRole(User user, PageBean pageBean) throws Exception {
String sql="SELECT u.*,\r\n" +
"(CASE \r\n" +
" WHEN u.rid='1' THEN\r\n" +
" '管理员'\r\n" +
" WHEN u.rid='2' THEN\r\n" +
" '发起者'\r\n" +
" WHEN u.rid='3' THEN\r\n" +
" '审批者'\r\n" +
" WHEN u.rid='4' THEN\r\n" +
" '参与者'\r\n" +
" WHEN u.rid='5' THEN\r\n" +
" '会议是管理员'\r\n" +
" ELSE\r\n" +
" '其他'\r\n" +
"END \r\n" +
")rname\r\n" +
"FROM t_oa_user u where 1=1";
String name = user.getName();
if(StringUtils.isNotBlank(name)) {
sql += " and name like '%"+name+"%'";
}
return super.executeQuery(sql, pageBean);
}
public int add(User user) throws Exception {
String sql="insert into t_oa_user(name,loginName,pwd) value(?,?,?)";
return super.executeUpdate(sql, user, new String[] {"name","loginName","pwd"});
}
public int del(User user) throws Exception {
String sql="delete from t_oa_uesr where id=?";
return super.executeUpdate(sql, user, new String[] {"id"});
}
public int edit(User user) throws Exception {
String sql="update t_oa_uesr set name=?,loginName=?,pwd=? where id=?";
return super.executeUpdate(sql, user, new String[] {"name","loginName","pwd","id"});
}
// public static void main(String[] args) throws Exception {
// User user = new User("kk","123","123123");
// user.setName("朱");
// int add = new UserDao().add(user);
// System.out.println(add);
// }
}
JUnit:
package com.zking.dao;
import static org.junit.Assert.*;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import com.zking.entity.User;
public class UserDaoTest {
private UserDao userDao =new UserDao();
@Test
public void testUserRole() throws Exception {
User user = new User();
user.setName("朱");
List> userRole = userDao.userRole(user, null);
for (Map u : userRole) {
System.out.println(u);
}
}
@Test
public void testAdd() throws Exception {
User user =new User(88, "朱俊良", "zjl", "12345", 4);
userDao.add(user);
}
@Test
public void testDel() throws Exception {
User user =new User(88, "朱俊良", "zjl", "12345", 4);
userDao.del(user);
}
@Test
public void testEdit() throws Exception {
User user =new User(16, "小飞机来了", "zjl", "1234567", 4);
userDao.edit(user);
}
}
输出结果:
2.R工具类的使用:
后台查询:以前的写法:userAction(弊端:代码比较多):
package com.zking.web;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zking.dao.UserDao;
import com.zking.entity.User;
import com.zking.framework.ActionSupport;
import com.zking.framework.ModelDriver;
import com.zking.util.PageBean;
import com.zking.util.ResponseUtil;
public class UserAction extends ActionSupport implements ModelDriver {
private User user=new User();
private UserDao userDao=new UserDao();
public void login(HttpServletRequest req, HttpServletResponse resp) {
try {
User u = userDao.login(user);
ResponseUtil.writeJson(resp, u);
} catch (Exception e) {
e.printStackTrace();
}
}
public void userRole(HttpServletRequest req, HttpServletResponse resp) {
try {
PageBean pageBean=new PageBean();
pageBean.setRequest(req);
List> userRole = userDao.userRole(user, pageBean);
Map map=new HashMap();
map.put("code", 0);
map.put("msg", "查询成功");
map.put("count", pageBean.getTotal());
map.put("date", userRole);
ResponseUtil.writeJson(resp, map);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public User getModel() {
return user;
}
}
输出结果:
后台查询:现在的方法:工具类(代码较少,比较容易动懂):
package com.zking.util;
import java.util.HashMap;
public class R extends HashMap{
public R data(String key, Object value) {
this.put(key, value);
return this;
}
public static R ok(int code, String msg) {
R r = new R();
r.data("success", true).data("code", code).data("msg", msg);
return r;
}
public static R error(int code, String msg) {
R r = new R();
r.data("success", false).data("code", code).data("msg", msg);
return r;
}
public static R ok(int code, String msg,Object data) {
R r = new R();
r.data("success", true).data("code", code).data("msg", msg).data("data", data);
return r;
}
public static R ok(int code, String msg, long count, Object data) {
R r = new R();
r.data("success", true).data("code", code).data("msg", msg).data("count", count).data("data", data);
return r;
}
}
输出结果:
增删改查方法:
package com.zking.web;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zking.dao.UserDao;
import com.zking.entity.User;
import com.zking.framework.ActionSupport;
import com.zking.framework.ModelDriver;
import com.zking.util.PageBean;
import com.zking.util.R;
import com.zking.util.ResponseUtil;
public class UserAction extends ActionSupport implements ModelDriver {
private User user=new User();
private UserDao userDao=new UserDao();
public void login(HttpServletRequest req, HttpServletResponse resp) {
try {
User u = userDao.login(user);
ResponseUtil.writeJson(resp, u);
} catch (Exception e) {
e.printStackTrace();
}
}
public void userRole(HttpServletRequest req, HttpServletResponse resp) {
try {
PageBean pageBean=new PageBean();
pageBean.setRequest(req);
List> userRole = userDao.userRole(user, pageBean);
// Map map=new HashMap();
// map.put("code", 0);
// map.put("msg", "查询成功");
// map.put("count", pageBean.getTotal());
// map.put("date", userRole);
ResponseUtil.writeJson(resp, R.ok(0, "查询成功", pageBean.getTotal(), userRole));
} catch (Exception e) {
e.printStackTrace();
}
}
public void add(HttpServletRequest req, HttpServletResponse resp) {
try {
int add = userDao.add(user );
ResponseUtil.writeJson(resp, R.ok(0, "新增成功"));
} catch (Exception e) {
e.printStackTrace();
}
}
public void del(HttpServletRequest req, HttpServletResponse resp) {
try {
int del = userDao.del(user );
ResponseUtil.writeJson(resp, R.ok(0, "删除成功"));
} catch (Exception e) {
e.printStackTrace();
}
}
public void edit(HttpServletRequest req, HttpServletResponse resp) {
try {
int edit = userDao.edit(user );
ResponseUtil.writeJson(resp, R.ok(0, "修改成功"));
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public User getModel() {
return user;
}
}
3.前端代码的实现:
编写UserManage界面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@include file="/common/header.jsp"%>
用户管理
实现所有方法:
let layer,$,table;
var row;
layui.use(['jquery', 'layer', 'table'], function(){
layer = layui.layer
,$ = layui.jquery
,table = layui.table;
//初始化数据表格
initTable();
//绑定查询按钮的点击事件
$('#btn_search').click(function(){
query();
});
//绑定新增按钮的点击事件
$('#btn_add').click(function(){
row=null;
edit('编辑');
});
});
//打开增加界面
function edit(title){
layer.open({
type: 2, //layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
title:title,
area: ['660px', '340px'], //宽高
skin: 'layui-layer-rim', //样式类名
content: '/jsp/system/userEdit.jsp', //书本编辑页面
btn:['保存','关闭'],
yes: function(index, layero){
//调用子页面中提供的getData方法,快速获取子页面的form表单数据
let data= $(layero).find("iframe")[0].contentWindow.getData();
console.log(data);
//判断title标题
let methodName="add";
if(title=="编辑")
methodName="edit";
$.post('/user.action?methodName='+methodName,
data,function(rs){
if(rs.success){
//关闭对话框
layer.closeAll();
//调用查询方法刷新数据
query();
}else{
layer.msg(rs.msg,function(){});
}
},'json');
},
btn2: function(index, layero){
layer.closeAll();
}
});
}
//1.初始化数据表格
function initTable(){
table.render({
elem: '#test'
,url:'user.action?methodName=userRole'
,toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板
,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可
title: '提示'
,layEvent: 'LAYTABLE_TIPS'
,icon: 'layui-icon-tips'
}]
,title: '用户数据表'
,cols: [[
{type: 'checkbox', fixed: 'left'}
,{field:'id', title:'ID', width:80, fixed: 'left', unresize: true, sort: true}
,{field:'loginName', title:'账户名', width:120, edit: 'text'}
,{field:'name', title:'用户名', width:150, edit: 'text', templet: function(res){
return ''+ res.name +' '
}}
,{field:'pwd', title:'密码', width:80, edit: 'text', sort: true}
,{field:'rname', title:'角色名字', width:100}
,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
]]
,page: true
});
//在页面中的中必须配置lay-filter="tb_goods"属性才能触发属性!!!
table.on('tool(tb)', function (obj) {
row = obj.data;
if (obj.event == "edit") {
open("编辑");
}else if(obj.event == "del"){
layer.confirm('确认删除吗?', {icon: 3, title:'提示'}, function(index){
$.post('/user.action',{
'methodName':'del',
'id':row.id
},function(rs){
if(rs.success){
//调用查询方法刷新数据
query();
}else{
layer.msg(rs.msg,function(){});
}
},'json');
layer.close(index);
});
}else{
}
})
}
//查询
function query() {
table.reload('test',{
where :{
name:$("name").val()
}
,request:{
pageName:'page'
,limitName:'rows'
}
});
}
增加:
删除:
修改:
查询:
你可能感兴趣的:(layui,前端,javascript)
【前后端联调】MethodArgumentNotValidException
宣布无人罪
前后端联调 java tomcat spring boot spring
【前后端联调】MethodArgumentNotValidException01问题描述前后端联调,前端传了一个参数是null,但是这个参数设置了校验不能为null,所以报了这个错误handleMethodArgumentNotValidException,132]-Validationfailedforargument[0]inpubliccom.ruoyi.common.core.domain
Nginx、Spring Cloud Gateway 与 Higress 的应用场景及核心区别
拂晓神剑zzz
nginx 运维
Nginx、SpringCloudGateway与Higress的应用场景及核心区别一、应用场景对比1.Nginx:传统Web服务与高性能反向代理典型场景:静态资源服务器(图片、CSS、JS)高并发Web服务反向代理(如JavaTomcat前端)简单负载均衡(轮询、IP哈希)传统企业网站、电商平台入口层优势:轻量级、低资源消耗,单机可处理万级并发稳定可靠,适合长期运行的静态服务社区成熟,插件生态丰
【前端工程化】前端组件模版构建那些事
前端
在企业级后台系统中,组件是构建页面的基础单元。与C端不同,B端更注重功能完整性、交互一致性与复用效率。因此,我们需要围绕业务场景封装出可复用、易维护、结构清晰的组件模板。本文档主要围绕组件设计原则、分类建议和使用方式展开,适用于Vue或React技术栈下的开发场景。一、组件设计原则职责单一每个组件只负责一个功能或UI元素,不依赖外部状态;示例:按钮组件只处理点击行为,不包含API调用逻辑;高内聚低
JavaScript基础语法之运算符和控制流
AA-代码批发V哥
JavaScript javascript
JavaScript基础语法之运算符和控制流一、运算符1.1算术运算符:数值计算的基石1.1.1字符串拼接陷阱1.2比较运算符:条件判断的起点1.2.1严格比较(`===`)vs松散比较(`==`)1.2.2其他比较运算符1.3逻辑运算符:复杂条件的组合1.3.1短路逻辑(重要特性)1.3.2实战:表单验证1.4赋值运算符:数据存储的桥梁1.4.1基础赋值(`=`)1.4.2解构赋值(ES6新增)
JavaScript基础语法之变量声明和数据类型
AA-代码批发V哥
JavaScript javascript
JavaScript基础语法之变量声明和数据类型一、变量声明1.1变量声明的本质1.2三种声明方式对比(var/let/const)1.2.1var:函数作用域的“老派选手”1.2.2let:块级作用域的“新生代”1.2.3const:常量声明的“守护者”二、数据类型2.1原始数据类型(PrimitiveTypes)2.1.1字符串(String)2.1.2数值(Number)2.1.3布尔(Bo
Python实例题:基于 Flask 的在线聊天系统
目录Python实例题题目要求:解题思路:代码实现:Python实例题题目基于Flask的在线聊天系统要求:使用Flask框架构建一个实时在线聊天系统,支持以下功能:用户注册、登录和个人资料管理一对一实时聊天功能群聊功能消息通知和未读消息提示在线用户状态显示使用Flask-SocketIO实现实时通信。使用SQLite数据库存储用户、聊天记录等信息。添加美观的前端界面,支持响应式设计。解题思路:使
基于esbuild封装类似tsup工具
aiguangyuan
前端架构 前端开发 系统架构
在现代前端开发中,构建工具的选择直接影响着项目的开发效率和最终产物的性能。随着TypeScript的普及,开发者对高效、快速的TypeScript构建工具的需求日益增长。esbuild作为一款新兴的JavaScript打包器,以其惊人的构建速度引起了广泛关注,而tsup则是基于esbuild的一个优秀封装,专门为TypeScript库开发提供了零配置的便捷体验。本文将探讨如何基于esbuild核心
前端开发核心:HTML、CSS与JavaScript学习指南
Randy Rhoads
本文还有配套的精品资源,点击获取简介:HTML、CSS和JavaScript是前端开发的基础,分别负责网页的结构、样式和动态行为。学习这三种技术需要理解它们之间的关系及其协同工作的机制。本笔记提供了一个全面的复习资料,包括标签使用、CSS布局技巧、JavaScript基础语法和DOM操作,旨在帮助巩固知识点和发现潜在的学习盲点。同时,介绍了响应式设计、Web组件、ServiceWorker等现代前
webpack+vite前端构建工具 -答疑
webpack答疑1输入webpack命令,执行的是全局版本还是本地版本的webpack当在命令行窗口输入webpack命令时,其执行优先级可通过以下步骤明确判断:1.1【全局安装优先机制】执行原理:系统会按照环境变量PATH的顺序逐级查找可执行文件路径比对:全局安装路径:npminstall-gwebpack会安装在类似/usr/local/bin(Mac/Linux)或C:\Users\用户名
常见构建工具使用与原理浅析
1.初版构建工具1.1.GruntGrunt是前端第一个正式的构建工具,它基于Node.js开发。Grunt同样是基于插件实现功能拓展增强,但对于像Webpack上很多能力,如HMR、ScopeHoisting等都是不支持的,可以作为学习Webpack前的了解。Grunt更像是一种自动化的配置工具集,就如官方所说,Grunt是TheJavaScriptTaskRunner,每个Grunt任务通常必
TypeScript-webpack
難釋懷
typescript webpack javascript
一、前言随着前端工程化的不断演进,使用TypeScript编写更加健壮、可维护的代码已成为主流趋势。而Webpack则是目前最流行的模块打包工具之一,它可以帮助我们将多个模块、资源文件进行打包压缩,适用于大型项目开发。本文将带你一步步搭建一个基于TypeScript+Webpack的开发环境,涵盖基础配置、编译流程、开发服务器设置等内容,适合初学者和中级开发者学习参考。二、什么是TypeScrip
如何实现表格选中时禁用树结构的复选框功能(El-Tree 与 El-Table 联动实现)
Peak_Gao
vue.js elementui javascript
在前端开发中,树形结构和表格是常用的组件组合,尤其是在展示和管理复杂数据时。使用ElementUI的el-tree和el-table组件,我们可以实现当表格中有选中行时,自动禁用树结构中的复选框,反之亦然。这不仅提升了用户体验,还能有效防止数据操作上的冲突。本文将详细介绍如何实现这一功能,并提供相应的代码示例。实现思路树结构(el-tree):用于展示分层数据,支持复选框选择。表格(el-tabl
Go 语言实现本地大模型聊天机器人:从推理到 Web UI 的全流程
雷羿 LexChien
Go golang 机器人 前端
接续Go-LLM-CPP专案,继续扩充前端聊天室功能一.专案目录架构:go-llm-cpp/├──bin/#第三方依赖│├──go-llama.cpp/#封裝GGUF模型推理(CGo)│└──llm-go/#prompt构建+回合管理(Go)│├──cmd/#可执行应用│└──main.go#CLI/HTTPserver入口点│├──config/│└──persona.yaml#人格模板(系统p
Vue 3 + Element Plus 常见开发问题与解决方案手册
JaysonJin
小问题 vue.js 前端 javascript
Vue3+ElementPlus常见开发问题与解决方案手册本文整理了常见但容易混淆的几个Vue3前端开发问题,包括插槽、原型链、响应式数据处理、v-model报错、样式阴影控制等,建议收藏学习!一、动态插槽fallback原理详解✅场景在组件中使用如下代码:✅疑问为什么加了默认内容,父组件传了插槽就会生效,没传就自动使用默认内容?✅解答这是Vue插槽的fallback(回退)机制:父组件有传插槽,
探索 Vue.js 前端开发中的插件系统
大厂前端小白菜
vue.js 前端 javascript ai
探索Vue.js前端开发中的插件系统关键词:Vue.js、插件系统、install方法、全局功能、代码复用、生命周期、模块化开发摘要:本文通过乐高积木的比喻,深入浅出地讲解Vue.js插件系统的核心原理。从install方法的工作原理到实战开发全局加载提示插件,揭秘如何通过插件机制实现功能扩展与代码复用,并探讨其在现代前端工程中的最佳实践。背景介绍目的和范围本文旨在帮助开发者理解Vue.js插件系
React.js在前端移动端开发中的应用
大厂前端小白菜
前端 react.js 前端框架 ai
React.js在前端移动端开发中的应用关键词:React.js、移动端开发、跨平台、组件化、性能优化、ReactNative、PWA摘要:本文将深入探讨React.js在移动端开发中的应用场景和技术实现。从React的核心特性出发,分析其在移动端的优势,详细介绍ReactNative的工作原理,并通过实际案例展示如何构建高性能的移动应用。文章还将对比不同移动端开发方案,提供性能优化建议,并展望R
一:以理论结合实践方式梳理前端 React 框架 ——— 初识 React 框架
十三餍
React 专栏 javascript es6 前端
初识React框架假设我们并不了解node&npm的情况下,使用最被大家熟知的方法:脚本引入方式,来开始学习react框架。官方文档:https://react.docschina.org/创建第一个应用管他三七二十一,先整一个项目再说:在你习惯放置学习代码的地方,建个目录(例:F:\wwwroot\react-demo),并建一个demo01.html,搭好html5格式:DocumentRea
REACT (Web开发框架 : react)极速入门
masterphp
react.js 前端 前端框架
前面讲过了很多后端,今天复习一下前端,为啥要讲React?对咯!我这边又被借调到前端组了,和前端的同学一起做React,以前有基础加上前端同学只做过Vue,所以我毫无疑问的又被借过去了......,这个是复习资料,高级玩家可略过。首先我要说一下,有Vue框架和JS原生的同学学习React会特别的快速,所以基础稍微差一点的同学可以先复习一下JS,特别说一下是JS老生常谈的,说明一下啥是Reac
使用Node.js命令行进行编程
翠绿探寻
node.js vim 编辑器 编程
Node.js是一个基于ChromeV8JavaScript引擎构建的运行时环境,它可以让开发者使用JavaScript语言编写服务器端代码。Node.js命令行界面(CLI)是一个强大的工具,它提供了与Node.js交互和执行JavaScript代码的能力。在本文中,我们将介绍如何在Node.js命令行中使用JavaScript进行编程,并提供相应的源代码示例。1.安装Node.js首先,我们需
反向遍历--当你修改一个元素的outerHTML时,该元素会被从 DOM 中移除
专注VB编程开发20年
html javascript
varspans=editor.querySelectorAll('span[mytag]');//将NodeList转换为数组//varspansArray=Array.from(spans);varid=0spans.forEach(span=>{span.outerhtml这里无法直接修改吗?}在JavaScript中,outerHTML是一个可写属性,但你需要注意以下几点:1.属性名大小写
ASP.NET Web Pages - 教程
samFuB
asp.net 前端 后端
ASP.NET是一个使用HTML、CSS、JavaScript和服务器脚本创建网页和网站的开发框架。ASP.NET支持三种不同的开发模式:WebPages(Web页面)、MVC(ModelViewController模型-视图-控制器)、WebForms(Web窗体):本教程介绍WebPages。WebPagesMVCWebForms从何入手?多数开发人员学习一个新技术,是从查看运行实例开始的。通
ASP.NET Web Pages 教程:从入门到精通
KrDebugging
asp.net 前端 后端 编程学习
ASP.NETWebPages是一种用于构建动态网页的技术,它结合了传统的HTML、CSS和JavaScript,以及强大的服务器端编程语言C#。本教程将带您逐步学习ASP.NETWebPages的基础知识,并通过示例代码演示如何创建交互性强、功能丰富的网页应用程序。环境设置在开始学习ASP.NETWebPages之前,您需要进行以下环境设置:安装VisualStudio:您可以从Microsof
JavaScript中==和===的区别,以及应用场景
小熊哥^--^
前端 javascript 前端 开发语言
比较操作符==与===的区别==是一个等于操作符,如果操作数相等就会返回true,但==涉及JavaScript中的隐式转换。在使用==时会先进行类型转换,再判断操作数是否相等。以下是示例:console.log(true==1);//trueconsole.log("1"==true);//trueconsole.log("55"==55);//trueconsole.log(0==false)
支持向量机(SVM)在肝脏CT/MRI图像分类(肝癌检测)中的应用及实现
猿享天开
医学影像 支持向量机 机器学习 人工智能 算法
博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++,C#,Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQLserver,Oracle,mysql,postgresql等进行开发应用,熟悉DICOM医学影像及DICOM协议,业余时间自学JavaScript,Vue,
UniApp Vue3 模式下实现页面跳转的全面指南
1.引言1.1UniApp与Vue3的结合优势UniApp是一个使用Vue.js开发所有前端应用的框架,支持编译到iOS、Android、H5、以及各种小程序平台。Vue3提供了更高效的响应式系统和CompositionAPI,使开发体验更加现代化和灵活。1.2页面跳转在应用开发中的重要性页面跳转是用户交互的核心功能之一,良好的跳转逻辑可以提升用户体验并增强应用结构的清晰度。2.UniApp原生导
实战篇:(十三)新手指南:搭建 Vue 3 项目,完美结合 Element Plus 的使用技巧!
新手指南:搭建Vue3项目,完美结合ElementPlus的使用技巧!本篇文章将带你一步一步地学习如何使用Vite创建一个Vue3+TypeScript项目,并轻松集成ElementPlus组件库,让你的应用界面更加优雅和实用。无论你是刚接触前端开发的新手,还是希望提升开发效率的开发者,这篇指南都将为你提供清晰的步骤和实用的技巧,帮助你快速上手。在文章中,我们将详细介绍项目的创建过程、按需加载El
前端相关性能优化笔记
星辰大海1412
笔记
1.打开速度怎么变快-首屏加载优化2.再次打开速度怎么变快-缓存优化了3.操作怎么才顺滑-渲染优化4.动画怎么保证流畅-长任务拆分2.1首屏加载指标细化:1.FP(FirstPaint首次绘制)2.FCP(FirstcontentfulPaint首次内容绘制),FP到FCP中间其实主要是SPA应用JS执行,太慢就会白屏时间太长3.FMP(FristMeaningfulPaint首次有效绘制),主要
flask +layUI+ ajax 上传图片
weixin_44040169
Python flask ajax layui python
flask+layUI+ajax上传图片-放到本地文件夹中记录:1、在使用layui时出现的问题,加载css,js出现问题GEThttp://127.0.0.1:5000/layui/css/layui.cssnet::ERR_ABORTED404(NOTFOUND)然后我将layui文件夹放到static里改成,就行了(好像对于layui文件相对位置的加载,以当前的html位置为基准)2、使用a
实验五-Flask的简易登录系统
亚力山大抵
python flask python 后端
一、实验目的和任务1.掌握Flask框架的基本使用方法2.理解Web应用的会话管理机制3.实现用户认证系统的基本功能4.学习模板继承和表单处理技术要求:请将思考题的答案写在实验报告中二、实验内容1.基础环境搭建:创建项目目录结构、安装必要依赖包2.核心功能实现:用户注册(用户名、密码)、用户登录验证、会话状态管理、用户退出功能3.前端界面开发:基础模板设计、注册/登录表单实现4.系统测试验证:注册
AR 如何改变我们构建网站的方式
想坐在沙发上试鞋子?欢迎来到WebAR的世界。还记得你在网页上逛商城时,点击一副墨镜,然后镜头打开,它就自动出现在你脸上的那一瞬间吗?不需要下载App,不需要跳转,只需一个浏览器。这不是科幻,而是WebAR正在实现的现实。那么问题来了:浏览器里的AR究竟是怎么实现的?我们能不能把它加进自己的网站,而不把用户的手机卡成PPT?更重要的是:它会成为前端开发的未来吗?让我们一起来拆解。什么是WebAR?
多线程编程之卫生间
周凡杨
java 并发 卫生间 线程 厕所
如大家所知,火车上车厢的卫生间很小,每次只能容纳一个人,一个车厢只有一个卫生间,这个卫生间会被多个人同时使用,在实际使用时,当一个人进入卫生间时则会把卫生间锁上,等出来时打开门,下一个人进去把门锁上,如果有一个人在卫生间内部则别人的人发现门是锁的则只能在外面等待。问题分析:首先问题中有两个实体,一个是人,一个是厕所,所以设计程序时就可以设计两个类。人是多数的,厕所只有一个(暂且模拟的是一个车厢)。
How to Install GUI to Centos Minimal
sunjing
linux Install Desktop GUI
http://www.namhuy.net/475/how-to-install-gui-to-centos-minimal.html
I have centos 6.3 minimal running as web server. I’m looking to install gui to my server to vnc to my server. You can insta
Shell 函数
daizj
shell 函数
Shell 函数
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。
shell中函数的定义格式如下:
[function] funname [()]{
action;
[return int;]
}
说明:
1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
2、参数返回
Linux服务器新手操作之一
周凡杨
Linux 简单 操作
1.whoami
当一个用户登录Linux系统之后,也许他想知道自己是发哪个用户登录的。
此时可以使用whoami命令。
[ecuser@HA5-DZ05 ~]$ whoami
e
浅谈Socket通信(一)
朱辉辉33
socket
在java中ServerSocket用于服务器端,用来监听端口。通过服务器监听,客户端发送请求,双方建立链接后才能通信。当服务器和客户端建立链接后,两边都会产生一个Socket实例,我们可以通过操作Socket来建立通信。
首先我建立一个ServerSocket对象。当然要导入java.net.ServerSocket包
ServerSock
关于框架的简单认识
西蜀石兰
框架
入职两个月多,依然是一个不会写代码的小白,每天的工作就是看代码,写wiki。
前端接触CSS、HTML、JS等语言,一直在用的CS模型,自然免不了数据库的链接及使用,真心涉及框架,项目中用到的BootStrap算一个吧,哦,JQuery只能算半个框架吧,我更觉得它是另外一种语言。
后台一直是纯Java代码,涉及的框架是Quzrtz和log4j。
都说学前端的要知道三大框架,目前node.
You have an error in your SQL syntax; check the manual that corresponds to your
林鹤霄
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'option,changed_ids ) values('0ac91f167f754c8cbac00e9e3dc372
MySQL5.6的my.ini配置
aigo
mysql
注意:以下配置的服务器硬件是:8核16G内存
[client]
port=3306
[mysql]
default-character-set=utf8
[mysqld]
port=3306
basedir=D:/mysql-5.6.21-win
mysql 全文模糊查找 便捷解决方案
alxw4616
mysql
mysql 全文模糊查找 便捷解决方案
2013/6/14 by 半仙
[email protected]
目的: 项目需求实现模糊查找.
原则: 查询不能超过 1秒.
问题: 目标表中有超过1千万条记录. 使用like '%str%' 进行模糊查询无法达到性能需求.
解决方案: 使用mysql全文索引.
1.全文索引 : MySQL支持全文索引和搜索功能。MySQL中的全文索
自定义数据结构 链表(单项 ,双向,环形)
百合不是茶
单项链表 双向链表
链表与动态数组的实现方式差不多, 数组适合快速删除某个元素 链表则可以快速的保存数组并且可以是不连续的
单项链表;数据从第一个指向最后一个
实现代码:
//定义动态链表
clas
threadLocal实例
bijian1013
java thread java多线程 threadLocal
实例1:
package com.bijian.thread;
public class MyThread extends Thread {
private static ThreadLocal tl = new ThreadLocal() {
protected synchronized Object initialValue() {
return new Inte
activemq安全设置—设置admin的用户名和密码
bijian1013
java activemq
ActiveMQ使用的是jetty服务器, 打开conf/jetty.xml文件,找到
<bean id="adminSecurityConstraint" class="org.eclipse.jetty.util.security.Constraint">
<p
【Java范型一】Java范型详解之范型集合和自定义范型类
bit1129
java
本文详细介绍Java的范型,写一篇关于范型的博客原因有两个,前几天要写个范型方法(返回值根据传入的类型而定),竟然想了半天,最后还是从网上找了个范型方法的写法;再者,前一段时间在看Gson, Gson这个JSON包的精华就在于对范型的优雅简单的处理,看它的源代码就比较迷糊,只其然不知其所以然。所以,还是花点时间系统的整理总结下范型吧。
范型内容
范型集合类
范型类
【HBase十二】HFile存储的是一个列族的数据
bit1129
hbase
在HBase中,每个HFile存储的是一个表中一个列族的数据,也就是说,当一个表中有多个列簇时,针对每个列簇插入数据,最后产生的数据是多个HFile,每个对应一个列族,通过如下操作验证
1. 建立一个有两个列族的表
create 'members','colfam1','colfam2'
2. 在members表中的colfam1中插入50*5
Nginx 官方一个配置实例
ronin47
nginx 配置实例
user www www;
worker_processes 5;
error_log logs/error.log;
pid logs/nginx.pid;
worker_rlimit_nofile 8192;
events {
worker_connections 4096;}
http {
include conf/mim
java-15.输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环
bylijinnan
java
//use recursion
public static void mirrorHelp1(Node node){
if(node==null)return;
swapChild(node);
mirrorHelp1(node.getLeft());
mirrorHelp1(node.getRight());
}
//use no recursion bu
返回null还是empty
bylijinnan
java apache spring 编程
第一个问题,函数是应当返回null还是长度为0的数组(或集合)?
第二个问题,函数输入参数不当时,是异常还是返回null?
先看第一个问题
有两个约定我觉得应当遵守:
1.返回零长度的数组或集合而不是null(详见《Effective Java》)
理由就是,如果返回empty,就可以少了很多not-null判断:
List<Person> list
[科技与项目]工作流厂商的战略机遇期
comsci
工作流
在新的战略平衡形成之前,这里有一个短暂的战略机遇期,只有大概最短6年,最长14年的时间,这段时间就好像我们森林里面的小动物,在秋天中,必须抓紧一切时间存储坚果一样,否则无法熬过漫长的冬季。。。。
在微软,甲骨文,谷歌,IBM,SONY
过度设计-举例
cuityang
过度设计
过度设计,需要更多设计时间和测试成本,如无必要,还是尽量简洁一些好。
未来的事情,比如 访问量,比如数据库的容量,比如是否需要改成分布式 都是无法预料的
再举一个例子,对闰年的判断逻辑:
1、 if($Year%4==0) return True; else return Fasle;
2、if ( ($Year%4==0 &am
java进阶,《Java性能优化权威指南》试读
darkblue086
java性能优化
记得当年随意读了微软出版社的.NET 2.0应用程序调试,才发现调试器如此强大,应用程序开发调试其实真的简单了很多,不仅仅是因为里面介绍了很多调试器工具的使用,更是因为里面寻找问题并重现问题的思想让我震撼,时隔多年,Java已经如日中天,成为许多大型企业应用的首选,而今天,这本《Java性能优化权威指南》让我再次找到了这种感觉,从不经意的开发过程让我刮目相看,原来性能调优不是简单地看看热点在哪里,
网络学习笔记初识OSI七层模型与TCP协议
dcj3sjt126com
学习笔记
协议:在计算机网络中通信各方面所达成的、共同遵守和执行的一系列约定 计算机网络的体系结构:计算机网络的层次结构和各层协议的集合。 两类服务: 面向连接的服务通信双方在通信之前先建立某种状态,并在通信过程中维持这种状态的变化,同时为服务对象预先分配一定的资源。这种服务叫做面向连接的服务。 面向无连接的服务通信双方在通信前后不建立和维持状态,不为服务对象
mac中用命令行运行mysql
dcj3sjt126com
mysql linux mac
参考这篇博客:http://www.cnblogs.com/macro-cheng/archive/2011/10/25/mysql-001.html 感觉workbench不好用(有点先入为主了)。
1,安装mysql
在mysql的官方网站下载 mysql 5.5.23 http://www.mysql.com/downloads/mysql/,根据我的机器的配置情况选择了64
MongDB查询(1)——基本查询[五]
eksliang
mongodb mongodb 查询 mongodb find
MongDB查询
转载请出自出处:http://eksliang.iteye.com/blog/2174452 一、find简介
MongoDB中使用find来进行查询。
API:如下
function ( query , fields , limit , skip, batchSize, options ){.....}
参数含义:
query:查询参数
fie
base64,加密解密 经融加密,对接
y806839048
经融加密 对接
String data0 = new String(Base64.encode(bo.getPaymentResult().getBytes(("GBK"))));
String data1 = new String(Base64.decode(data0.toCharArray()),"GBK");
// 注意编码格式,注意用于加密,解密的要是同
JavaWeb之JSP概述
ihuning
javaweb
什么是JSP?为什么使用JSP?
JSP表示Java Server Page,即嵌有Java代码的HTML页面。使用JSP是因为在HTML中嵌入Java代码比在Java代码中拼接字符串更容易、更方便和更高效。
JSP起源
在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变。
如果使用Servl
apple watch 指南
啸笑天
apple
1. 文档
WatchKit Programming Guide(中译在线版 By @CocoaChina) 译文 译者 原文 概览 - 开始为 Apple Watch 进行开发 @星夜暮晨 Overview - Developing for Apple Watch 概览 - 配置 Xcode 项目 - Overview - Configuring Yo
java经典的基础题目
macroli
java 编程
1.列举出 10个JAVA语言的优势 a:免费,开源,跨平台(平台独立性),简单易用,功能完善,面向对象,健壮性,多线程,结构中立,企业应用的成熟平台, 无线应用 2.列举出JAVA中10个面向对象编程的术语 a:包,类,接口,对象,属性,方法,构造器,继承,封装,多态,抽象,范型 3.列举出JAVA中6个比较常用的包 Java.lang;java.util;java.io;java.sql;ja
你所不知道神奇的js replace正则表达式
qiaolevip
每天进步一点点 学习永无止境 纵观千象 regex
var v = 'C9CFBAA3CAD0';
console.log(v);
var arr = v.split('');
for (var i = 0; i < arr.length; i ++) {
if (i % 2 == 0) arr[i] = '%' + arr[i];
}
console.log(arr.join(''));
console.log(v.r
[一起学Hive]之十五-分析Hive表和分区的统计信息(Statistics)
superlxw1234
hive hive分析表 hive统计信息 hive Statistics
关键字:Hive统计信息、分析Hive表、Hive Statistics
类似于Oracle的分析表,Hive中也提供了分析表和分区的功能,通过自动和手动分析Hive表,将Hive表的一些统计信息存储到元数据中。
表和分区的统计信息主要包括:行数、文件数、原始数据大小、所占存储大小、最后一次操作时间等;
14.1 新表的统计信息
对于一个新创建
Spring Boot 1.2.5 发布
wiselyman
spring boot
Spring Boot 1.2.5已在7月2日发布,现在可以从spring的maven库和maven中心库下载。
这个版本是一个维护的发布版,主要是一些修复以及将Spring的依赖提升至4.1.7(包含重要的安全修复)。
官方建议所有的Spring Boot用户升级这个版本。
项目首页 | 源