利用INSERT、UPDATA和DELETE命令可以同时对多个表进行操作码?

利用INSERT、UPDATA和DELETE命令可以同时对多个表进行操作码?

1个回答

可以,如果同时对多表进行增删改的话。需要使用到事务,否则可能导致部分修改的结果

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【FTP】相关问题求助,我一头雾水,希望能得到帮助
![图片说明](https://img-ask.csdn.net/upload/202001/30/1580390211_103053.jpg) @echo off rem 指定FTP用户名 set ftpUser=updata rem 指定FTP密码 set ftpPass=updata rem 指定FTP服务器地址 ip地址 或IP地址 端口号 set ftpIp=47.112.39.246 rem 指定待下载的文件位于FTP服务器的哪个目录 set ftpFolder=. rem 指定从FTP下载下来的文件存放到本机哪个目录 set LocalFolder=%~dp0 echo open %ftpIp% > abc.txt echo user %ftpUser% %ftpPass% >> abc.txt echo quote PASV >> abc.txt rem 更改本地计算机上的工作目录 echo lcd %LocalFolder% >>abc.txt echo prompt off >>abc.txt rem 使用二进制文件传输方式 echo bin >> abc.txt rem 要下载的文件 echo mget * >> abc.txt echo bye >> abc.txt ftp -n -s:abc.txt pause ---------------------------------------------------------------------------- 按理来说是没问题的 但偏偏就报cant check for file existence 我研究好几天,都懵逼了,求助各位大佬,救我。 服务器环境用了宝塔,端口已经全开,指向都修改成外网ip了,还是这样。我 压根想不明白为啥会找不到文件。 直接用winscp登上去明明一点问题都没有。
mysql updata 两个表 sql语句怎么写
表1 id title cid pid 1 a 11 空 2 b 12 空 3 c 11 空 4 d 12 空 5 e 11 空 表2 id pid 11 5 12 6 表1的cid就是表2的id,现在要根据表1的cid的值,通过表2的id与pid对应关系,来更新表1的pid值。 sql语句应该怎么写? 最终结果 表1 id title cid pid 1 a 11 5 2 b 12 6 3 c 11 5 4 d 12 6 5 e 11 5
C语言仓库管理系统代码,求大佬改正(明天要结课上交)
#include <stdio.h>#include<stdlib.h>#define Length 10;#define List_Init_Size 10;#define OK 1;#define ERROR 0;#define SUM_Price 1#define SUM_Number 2#define MinPrice 3#define MaxPrice 4int flag = 0;typedef int ElemType;typedef int Status;typedef struct LNode{ struct LNode* next;//存储空间地址 int sum; int price;}LNode,*computer;int menu_select();//菜单函数Status Input_computer(computer& L, int number);//初始入库函数Status Output_computer(computer& L, int saleprice, int salenumber);//出库函数Status Check(computer L, int price, int number);//查找是否有该价格的电脑以及数量充足否Status NewInput_computer(computer& L, int Incomeprice, int Incomenumber);//新入库函数void DataBase_List(computer L);//数据清单函数void Sortfunction(computer& L);//排序函数int Datasum(computer L,int Selectnumber);//计算当前有的数据量void output(computer L);//输出函数void main(){ int number, saleprice, salenumber; int Incomeprice, Incomenumber; int Right_or_false = 0;//判断是否成功 computer L; for (;;) { switch (menu_select()) { case 1: if (flag == 0) { printf("输入初始入库电脑价格段数量(即有几种价格类型的电脑):"); scanf("%d", &number); Right_or_false = Input_computer(L, number); if (Right_or_false) { printf("入库成功\n"); flag = 1; } else { printf("入库失败\n"); } } else if(flag>0) { printf("已经初始化,请不要多次进行\n"); } break; case 2: output(L); break; case 3: if (flag) { printf("销售电脑价格:"); scanf("%d", &saleprice); printf("\n销售台数:"); scanf("%d", &salenumber); Right_or_false = Output_computer(L, saleprice, salenumber); if (Right_or_false) printf("出库成功\n"); else printf("出库失败\n"); } else { printf("请先初始化\n"); } break; case 4: if (flag) { printf("入库电脑价格:"); scanf("%d", &Incomeprice); printf("\n入库台数:"); scanf("%d", &Incomenumber); Right_or_false = NewInput_computer(L, Incomeprice, Incomenumber); if (Right_or_false) printf("入库成功\n"); else printf("入库失败\n"); } else { printf("请先初始化\n"); } break; case 5: if (flag) { DataBase_List(L); } else { printf("请先初始化\n"); } break; } }}int menu_select(){ int sn;//选择项select_number printf("-->1 初始化\n"); printf("-->2 输出\n"); printf("-->3 出库\n"); printf("-->4 新电脑入库\n"); printf("-->5 仓库电脑状况详细清单\n"); printf("input 1~5: "); for (;;) { scanf("%d", &sn); if (sn < 1 || sn>5) { printf("Plese input again\n"); } else { break; } } return sn;}//入库函数Status Input_computer(computer& L, int number){ computer p; int i; L = (computer)malloc(sizeof(LNode)); L->next = NULL; printf("请逆序输入%d个不同价格电脑的信息\n", number); for (i = number; i >= 1; i--) { p = (computer)malloc(sizeof(LNode)); printf("价格:"); for (;;) { scanf("%d", &p->price); if (p->price < 0) { printf("Plese input again,price must > 0\n价格:"); } else { break; } } printf("数量:"); for (;;) { scanf("%d", &p->sum); if (p->sum<0) { printf("Plese input again,sum must > 0\n数量:"); } else { break; } } p->next = L->next; L->next = p; } Sortfunction(L); return OK;}//出库函数Status Output_computer(computer& L, int saleprice, int salenumber){ int Right_false; computer p; Right_false = Check(L, saleprice, salenumber);//检查输入数据是否符合实际情况并返回值 if(Right_false==1) { printf("输入数据正确\n"); } else if(Right_false==0) { printf("该价格电脑未入库\n"); return ERROR; } else if(Right_false==-1) { printf("库存不足\n"); return ERROR; } p = L->next; while (p) { if (p->price == saleprice) { p->sum = p->sum - salenumber; } p=p->next; } return OK;}//查找是否有该价格的电脑以及数量充足否Status Check(computer L, int price, int number){ computer p; p = L->next; while(p) { if (p->price == price && p->sum >= number) { return OK; } else if(p->price == price && p->sum < number) { return -1; } p = p->next; } return ERROR;}//新入库函数Status NewInput_computer(computer& L, int Incomeprice, int Incomenumber){ int Right_false,Add_or_Updata=0; computer p, addnode; p = L->next; Right_false = Check(L, Incomeprice, Incomenumber); addnode = (computer)malloc(sizeof(LNode)); if(Right_false==1||Right_false==-1) { printf("已有该价格电脑,即将更新该价格电脑数量\n"); Add_or_Updata = 1; } else if(Right_false==0) { printf("没有该价格电脑,即将添加该价格电脑信息\n"); Add_or_Updata = 0; } while(p) { if(Add_or_Updata==1&&p->price==Incomeprice) { p->sum = p->sum + Incomenumber; } else if(Add_or_Updata==0&&p->next==NULL) { addnode->price = Incomeprice; addnode->sum = Incomenumber; p->next = addnode->next; addnode->next = NULL; return OK; } p = p->next; } Sortfunction(L); return OK;}//排序函数void Sortfunction(computer& L){ LNode* p = L->next, * pre; LNode* r = p->next; p->next = NULL; p = r; while (p != NULL) { r = p->next; pre = L;//把L的地址交给pre while (pre->next != NULL && pre->next->price < p->price) { pre = pre->next; } p->next = pre->next;//p->next=L->next pre->next = p;//L->next=p p = r; }}//计算已有的数据数量int Datasum(computer L, int Selectnumber){ computer p; int num = 0;//计数用 int computersum = 0, computerprice = 0; p = L->next; while (p) { num = num + 1; if (Selectnumber == SUM_Price) { computerprice = computerprice + (p->price*p->sum); if (p->next == NULL) return computerprice; } else if (Selectnumber == SUM_Number) { computersum += p->sum; if (p->next == NULL) return computersum; } else if (num==1&&Selectnumber==MinPrice) { return p->price; } else if(Selectnumber==MaxPrice&&p->next==NULL) { return p->price; } p = p->next; }}void output(computer L) { computer p; p = L->next; printf("输出链表中的元素:\n"); while (p) { printf("价格:%d\n数量:%d\n", p->price,p->sum); p = p->next; }}//清单函数void DataBase_List(computer L){ int computer_sum,computer_sumprice,maxprice,minprice; computer_sum = Datasum(L, SUM_Number);//计算电脑总台数 computer_sumprice = Datasum(L, SUM_Price);//计算电脑总金额 minprice = Datasum(L, MinPrice);//求电脑最低价 maxprice = Datasum(L, MaxPrice);//求电脑最高价 //输出区 printf("<*>-->电脑总数:%d台\n", computer_sum); printf("<*>-->电脑总价值:%d元\n", computer_sumprice); printf("<*>-->电脑最低价:%d元\n", minprice); printf("<*>-->电脑最高值:%d元\n", maxprice); printf("<*>-->电脑平均价格:%f元\n", (float)computer_sumprice/(float)computer_sum);}
在unity中怎么用cube克隆一个立方体? 写在Updata里还是Start里?
for (int j = 0; j < 8; j++) { for (int i = 0; i < 8; i++) { for (int k = 0; k < 8; k++) { Instantiate(gameObject, new Vector3(j * 2, i * 2, k * 2), Quaternion.identity); } } }
update maven项目的同时也会自动改变web的版本,怎样让它不自动改变,或者指定改变成某一个版本。
updata maven project时<br> 有一个项目的 ``` <installed facet="jst.web" version="3.0"/> ``` 自动变成4.0<br> 有一个项目变成3.0<br> 有一个项目变成2.3<br> 但是update 前如果没有改成它要改变的版本(上面所说的),那么updata后就会报错。 <br>错误信息:Cannot change version of project facet Dynamic Web Module to 2.3.<br> 这是update的后报错
pygame.error: video system not initialized
按照视频的代码,但是报了这个错误,网上没有找到类似的答案 报错代码如下: ![图片说明](https://img-ask.csdn.net/upload/201908/17/1566022575_856149.png) 报错如下: ![图片说明](https://img-ask.csdn.net/upload/201908/17/1566022607_7422.png) 全部代码如下: import pygame from plan_sprites import * # 游戏的初始化 pygame.init() # 创建游戏的窗口 大小:480*700 screen = pygame.display.set_mode((480, 700)) # 绘制背景图像 # 1.加载图像数据 bg = pygame.image.load(r"H:\py\飞机大作战\images\background.jpg") screen.blit(bg, (0, 0)) # 3. updata更新屏幕 # 绘制英雄的飞机 hero = pygame.image.load(r"H:\py\飞机大作战\images\me1.png") screen.blit(hero, (150, 300)) # 可以在所有绘制工作完成后,统一调用updata方法 pygame.display.update() # 创建时钟对象 clock = pygame.time.Clock() # 1.定义rect记录飞机的初始位置 hero_rect = pygame.Rect(150, 300, 102, 106) # 创建敌机的精灵 enemy = GameSprite(r"H:\py\飞机大作战\images\enemy1.png") enemy1 = GameSprite(r"H:\py\飞机大作战\images\enemy1.png") # 创建敌机的精灵组 enemy_group = pygame.sprite.Group(enemy,enemy1) # 游戏循环-->意味着游戏的正式开始! while True: # 可以指定游戏循环内部的代码执行的频率 clock.tick(60) # # 捕获事件 # event_list = pygame.event.get() # if len(event_list) > 0: # print(event_list) # 监听事件 for event in pygame.event.get(): # 判断事件类型是否是退出事件 if event.type == pygame.QUIT: print("游戏结束!!") # quit 卸载所有的模块 pygame.quit() # exit()直接终止当前正在执行的程序 exit() # 2. 修改飞机的位置 hero_rect.y -= 1 # 判断飞机的位置 if hero_rect.y <= -126: hero_rect.y = 700 # 3. 调用blit方法绘制图像 screen.blit(bg, (0, 0)) screen.blit(hero, hero_rect) # 让精灵组调用两个方法 # updata 让组中的所有精灵更新位置 enemy_group.update() # drow 在screen 上绘制所有精灵 enemy_group.draw(screen) # 4. 调用updata方法更新显示 pygame.display.update() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() pygame.quit() ``` ```
请教一个这个法中的两个字段UPDATA的顺序
下面这个方法有一个更新数据库的操作,想请问大神们 下面这两个变量里面的值是更新在if($shijiancha){****}这个判断前面还是后面?因为数据库里面保存的数据是没有经过if($shijiancha){****}这个判断里面操作的,如果想保存在操作之后要怎么写呢?新手PHP请大家多多指教,谢谢! $content = addslashes($tocode->go_content); $counttime = $tocode->count_time; public function autolottery_ret_install(){ if(!isset($_POST['shopid'])){ echo '-1';exit; } $id = intval($_POST['shopid']); $this->db->Autocommit_start(); $shop_info = $this->db->GetOne("select * from `@#_shoplist` where `id` = '$id' for update"); if(!$shop_info){ echo '-1'; exit; } if($shop_info['xsjx_time'] > time()){ echo "-4";exit; } if($shop_info['canyurenshu']=='0'){ //$shop_info['canyurenshu'] = rand(1,$shop_info['zongrenshu']); echo '-3';exit; } if(!empty($shop_info['q_user_code']) && ($shop_info['q_showtime'] == 'Y')){ echo '-6';exit; } if(!empty($shop_info['q_user_code']) && ($shop_info['q_showtime'] == 'N')){ echo $shop_info['q_user_code']; exit; } $shop_info['xsjx_time']=$shop_info['xsjx_time'].'.000'; $tocode = System::load_app_class("tocode","pay"); $tocode->run_tocode($shop_info['xsjx_time'],100,$shop_info['canyurenshu'],$shop_info); $code =$tocode->go_code; $content = addslashes($tocode->go_content); $counttime = $tocode->count_time; $shishicai = $tocode->shishicai; $shijiancha = $tocode->shijiancha; if($shijiancha){ // $this->curl->getshishicai(); $update_member_info = $db->GetOne("select * from `@#_member_go_record` where `shopid` = '$shop[id]' and `shopqishu` = '$shop[qishu]' and member_type=1 ORDER BY RAND() LIMIT 1"); $member_time_arr = explode('.',$update_member_info['time']); $shijian = $member_time_arr['0'].$member_time_arr['1']; $update_cha_time = (int)$shijian+(int)$shijiancha; $member_update_time = substr_replace($update_cha_time,".",10,0); $db->Query("UPDATE `@#_member_go_record` SET `time` = '$member_update_time' where `shopid` = '$shop[id]' and `shopqishu` = '$shop[qishu]' and uid='$update_member_info[uid]'"); } $u_go_info = $this->db->GetOne("select * from `@#_member_go_record` where `shopid` = '$shop_info[id]' and `shopqishu` = '$shop_info[qishu]' and `goucode` LIKE '%$code%'"); if($u_go_info){ $u_info = $this->db->GetOne("select * from `@#_member` where `uid` = '$u_go_info[uid]'"); $u_info['username'] = _htmtocode($u_info['username']); $q_user = serialize($u_info); $q_uid = $u_info['uid']; }else{ $reg_code = $this->suan_zd_code($shop_info['id'],$code); if(!$reg_code){echo '-2';exit;} $u_go_info = $this->db->GetOne("select * from `@#_member_go_record` where `shopid` = '$shop_info[id]' and `shopqishu` = '$shop_info[qishu]' and `goucode` LIKE '%$reg_code%'"); $u_info = $this->db->GetOne("select * from `@#_member` where `uid` = '$u_go_info[uid]'"); $u_info['username'] = addslashes($u_info['username']); $q_user = serialize($u_info); $q_uid = $u_info['uid']; } if($u_info['type']==1){ $member_type = 1; }else{ $member_type = 0; } $q_1 = $this->db->Query("UPDATE `@#_shoplist` SET `q_uid` = '$q_uid', `q_user` = '$q_user', `member_type` = '$member_type', `q_user_code` = '$code', `q_content` = '$content', `q_counttime` ='$counttime', `shishicai` ='$shishicai', `q_end_time` = '$shop_info[xsjx_time]', `q_showtime` = 'Y' where `id` = '$id'"); if($u_go_info){ $q_2 = $this->db->Query("UPDATE `@#_member_go_record` SET `huode` = '$code' where `id` = '$u_go_info[id]'"); }else{ $q_2 = true; } $q_3 = $this->autolottery_install($shop_info); if($q_1 && $q_2 && $q_3){ $this->db->Autocommit_commit(); //echo $code."云凑码";exit; echo '-6';exit; }else{ $this->db->Autocommit_rollback(); echo '-2';exit; } }//
ORM框架选择问题
我司有一套C/S系统,现在想用java开发一套web系统出来(后台数据库用原来的),现在对ORM框架选择上有点头痛,情况如下: 由于后能数据库不变用原来的,问题是由于后能经过了多个人架构,主键风格各异, 1。每个表有一个id自增量作为主键,但在一对多的主子表关系中,子表的关联字段有的是用主表的id,有的是用一个人工自定义主键,如销售单明细表中的关联字段是销售单主表的销售单号,有些规范的用的是销售单主表的id, 2。再比方我有员工档案表用到了部门信息表,在后台设计时可能设计成nDeptId(部门信息表的id自增列),有可能设计成vDeptNo(部门信息表人工定义的部门编号). 现在我们C/S模式开发,偏向于写sql语句及后台存储过程,关联出结果集在前台加工好后save到后台,很方便,虽然没有面向对象的思想,类似于.Net中的SqlAdapter,DataSet,取回数据加工然后insert,updata,delete, 请问应该选用哪种ORM框架呢? Hibernate还是myBatis,还是有其更好的框架? 另:我们的后台某些表(如条码表)数据量会很大。
ssm 报错:org.springframework.context.annotation.internalAsyncAnnotationProcessor
# ssm 框架 在本地完美运行放到Linux服务器报错 以下内容 Error creating bean with name '**org.springframework.context.annotation.internalAsyncAnnotationProcessor'**: Initialization of bean failed; nested exception is java.lang.NoSuchMethodError: org.springframework.aop.interceptor.AsyncExecutionInterceptor.<init>(Ljava/util/concurrent/Executor;Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;)V ## 之前是没有加 redis,没有发现问题,这次我加了redis然后就报错,大神们帮忙看看解决解决 这是spring-mvc配置: ``` ==============spring-mvc===================== <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd" > <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 --> <mvc:annotation-driven/> <context:component-scan base-package="com.bls.mp.*"/> <!--避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <bean class="com.bls.mp.common.SpringTool"/> <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 --> <!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> JSON转换器 </list> </property> </bean>--> <!-- 定义跳转的文件的前后缀 ,视图模式配置--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 --> <property name="prefix" value="/WEB-INF/resources/jsp/" /> <property name="suffix" value=".jsp" /> </bean> <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默认编码 --> <property name="defaultEncoding" value="utf-8" /> <!-- 文件大小最大值 --> <property name="maxUploadSize" value="10485760000" /> <!-- 内存中的最大值 --> <property name="maxInMemorySize" value="40960" /> </bean> <!-- 全局异常处理器 --> <bean class="com.bls.mp.common.exception.CustomExceptionResolver"></bean> <mvc:annotation-driven/> <!-- 拦截器配置 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/setadmin"/> <!--<mvc:mapping path="/user/userList"/> --> <mvc:mapping path="/Blocker"/> <mvc:mapping path="/grouponteam/grouponRanking"/> <mvc:mapping path="/grouponteam/arriverTime"/> <mvc:mapping path="/grouponteam/paging"/> <mvc:mapping path="/grouponteam/conditionGrouponT"/> <mvc:mapping path="/hospital/hospitalInfo"/> <mvc:mapping path="/hospital/setting"/> <mvc:mapping path="/hospital/orderdetails"/> <mvc:mapping path="/grouponteam/grouponTeamCountAndMoney"/> <mvc:mapping path="/grouponteam/OrderRefundList"/> <mvc:mapping path="/grouponteam/orderdetails"/> <mvc:mapping path="/grouponteam/paging"/> <mvc:mapping path="/grouponteam/conditionGrouponT"/> <mvc:mapping path="/grouponteam/grouponRanking"/> <mvc:mapping path="/grouponteam/arriverTime"/> <mvc:mapping path="/grouponteam/grouponTeamCountAndMoney"/> <mvc:mapping path="/imguoload"/> <mvc:mapping path="/imguoloads"/> <mvc:mapping path="/uploadFile"/> <mvc:mapping path="/uploadCenter"/> <mvc:mapping path="/onTheShelves"/> <mvc:mapping path="/updateTheRecommended"/> <mvc:mapping path="/deleteByGoods"/> <mvc:mapping path="/restoreGoods"/> <mvc:mapping path="/goods/goodslist"/> <mvc:mapping path="/goods/hasBeenOn"/> <mvc:mapping path="/goods/NotOn"/> <mvc:mapping path="/goods/RecycleBin"/> <mvc:mapping path="/goods/searchName"/> <mvc:mapping path="/goods/goodsdiy"/> <mvc:mapping path="/upload/uploadFile"/> <mvc:mapping path="/CreateClassImg"/> <mvc:mapping path="/imglist"/> <mvc:mapping path="/up_img"/> <mvc:mapping path="/moveImg"/> <mvc:mapping path="/deleteImg"/> <mvc:mapping path="/template/templateURL"/> <mvc:mapping path="/template/templateParentAll"/> <mvc:mapping path="/template/templatAll"/> <mvc:mapping path="/template/changeT"/> <mvc:mapping path="/template/deleteT"/> <mvc:mapping path="/TemplateMsg/addTemplateMsg"/> <mvc:mapping path="/TemplateMsg/templateMsgList"/> <mvc:mapping path="/TemplateMsg/templateSendlist"/> <mvc:mapping path="/TemplateMsg/TemplateSendMsg"/> <mvc:mapping path="/TemplateMsg/updataPTID"/> <mvc:mapping path="/TemplateMsg/deleteMB"/> <mvc:mapping path="/ThirdData/getdata"/> <mvc:mapping path="/ThirdData/updata"/> <mvc:mapping path="/setMoney/setMoneyList"/> <mvc:mapping path="/setMoney/setArriveMoney"/> <mvc:mapping path="/setMoney/checkfileCert"/> <mvc:mapping path="/setMoney/SetMoneyType"/> <mvc:mapping path="/user/userlists"/> <mvc:mapping path="/user/uOpenId"/> <mvc:mapping path="/visitor/theAlmostMoon"/> <mvc:mapping path="/visitor/SixAlmostMoon"/> <mvc:mapping path="/visitor/tops"/> <mvc:mapping path="/weixin/REFUND"/> <bean class="com.bls.mp.interceptor.AuthInterceptor"></bean> </mvc:interceptor> </mvc:interceptors> <task:annotation-driven/> <!-- 配置访问静态文件 --> <mvc:default-servlet-handler/> <mvc:resources location="/images/" mapping="/images/**"/> <mvc:resources location="/WEB-INF/js/" mapping="/js/**"/> <mvc:resources location="/WEB-INF/resources/jsp/" mapping="/jsp/**"/> <mvc:resources location="/WEB-INF/resources/css/" mapping="/css/**"/> </beans> ``` 这是 web.xml ``` ==============web.xml===================== <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mybatis.xml</param-value> <param-value>classpath:spring-redis.xml</param-value> </context-param> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <async-supported>true</async-supported> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>CORSFilter</filter-name> <filter-class>com.bls.mp.common.MyFilter</filter-class> <init-param> <param-name>excludedPages</param-name> <param-value>/UserAuthServlet</param-value> </init-param> </filter> <filter-mapping> <filter-name>CORSFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>/index.jsp</welcome-file> </welcome-file-list> </web-app> ``` 这是spring-mybatis.xml 配置 ``` ==============spring-mybatis.xml===================== <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 自动扫描 --> <context:component-scan base-package="com.bls.mp"/> <!-- 引入配置文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties" /> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <!-- 初始化连接大小 --> <property name="initialSize" value="${initialSize}"></property> <!-- 连接池最大数量 --> <property name="maxActive" value="${maxActive}"></property> <!-- 连接池最大空闲 --> <property name="maxIdle" value="${maxIdle}"></property> <!-- 连接池最小空闲 --> <property name="minIdle" value="${minIdle}"></property> <!-- 获取连接最大等待时间 --> <property name="maxWait" value="${maxWait}"></property> </bean> <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自动扫描mapping.xml文件 --> <property name="mapperLocations" value="classpath:com/bls/mp/mapping/*.xml"></property> </bean> <!-- DAO接口所在包名,Spring会自动查找其下的类 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.bls.mp.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> </beans> ``` 这是spring-redis.xml配置 ``` ===================spring-redis.xml============== <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:property-placeholder location="classpath:*.properties"/> <!--设置数据池--> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="${redis.maxIdle}"></property> <property name="minIdle" value="${redis.minIdle}"></property> <property name="maxTotal" value="${redis.maxTotal}"></property> <property name="maxWaitMillis" value="${redis.maxWaitMillis}"></property> <property name="testOnBorrow" value="${redis.testOnBorrow}"></property> </bean> <!--链接redis--> <bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="hostName" value="${redis.host}"></property> <property name="port" value="${redis.port}"></property> <property name="password" value="${redis.password}"></property> <property name="timeout" value="${redis.timeout}"></property> <property name="poolConfig" ref="poolConfig"></property> </bean> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate" p:connection-factory-ref="connectionFactory" > <!--以下针对各种数据进行序列化方式的选择--> <property name="keySerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> </property> <property name="valueSerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> </property> <property name="hashKeySerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> </property> <!--<property name="hashValueSerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> </property>--> </bean> </beans> ```
如何使用c++通过ADO调用mysql有参存储过程并获取结果集
先放代码,遇到的问题是 调用mysql**有参**存储过程时获取不到结果集 ``` #include <iostream> #include <atlstr.h> #import "MSADO15.DLL" rename_namespace("ADOCG") rename("EOF","EndOfFile") using namespace ADOCG; using namespace std; int main() { try { HRESULT hr = CoInitialize(NULL); assert(SUCCEEDED(hr));//返回值可判断初始化COM是否成功,请用SUCCEEDED来判断 _CommandPtr m_DBCommand; //命令对象 _RecordsetPtr m_DBRecordset; //记录对象 _ConnectionPtr m_DBConnection; //数据对象 //创建对象 m_DBCommand.CreateInstance(__uuidof(Command)); m_DBRecordset.CreateInstance(__uuidof(Recordset)); m_DBConnection.CreateInstance(__uuidof(Connection)); //效验数据 if (m_DBCommand == NULL) throw TEXT("创建 m_DBCommand 对象失败"); if (m_DBRecordset == NULL) throw TEXT("创建 m_DBRecordset 对象失败"); if (m_DBConnection == NULL) throw TEXT("创建 m_DBConnection 对象失败"); CString m_strConnect; //构造连接 m_strConnect.Format(TEXT("Driver={MySQL ODBC 8.0 Unicode Driver};UID=%s;PWD=%s;DataBase=%s;Persist Security Info=True;Server=%s;Port=%d;Option=3"), "hhh", "123456", "Test", "192.168.1.115", 3306); //打开连接 m_DBConnection->Open(_bstr_t(m_strConnect), L"", L"", adConnectUnspecified); m_DBConnection->CursorLocation = adUseClient; m_DBCommand->ActiveConnection = m_DBConnection; assert(SUCCEEDED(hr));//返回值可判断初始化COM是否成功,请用SUCCEEDED来判断 LONG lParameterCount = m_DBCommand->Parameters->Count; if (lParameterCount > 0L) { for (LONG i = lParameterCount; i > 0; i--) { m_DBCommand->Parameters->Delete(i - 1); } } //添加参数 _ParameterPtr Parameter; Parameter = m_DBCommand->CreateParameter("wServerID", adInteger, adParamInput, sizeof(LONG), _variant_t((LONG)0)); m_DBCommand->Parameters->Append(Parameter); Parameter = m_DBCommand->CreateParameter("wMachineID", adInteger, adParamInput, sizeof(LONG), _variant_t((LONG)0)); m_DBCommand->Parameters->Append(Parameter); m_DBCommand->CommandText = "LoadGameRoomItem2"; m_DBCommand->CommandType = adCmdText; m_DBRecordset = m_DBCommand->Execute(NULL, NULL, adCmdStoredProc); long RecordCount = m_DBRecordset->GetRecordCount(); cout << RecordCount << endl; _variant_t DBVarValue; if (m_DBRecordset->EndOfFile != VARIANT_TRUE) { FieldsPtr RecordFields = m_DBRecordset->GetFields(); DBVarValue = RecordFields->GetItem("ServerID")->GetValue(); WORD wValue = DBVarValue; } } catch (_com_error& ComError) { cout << ComError.Description() << endl; } return 0; } ``` 储存过程如下 ``` CREATE DEFINER=`root`@`%` PROCEDURE `LoadGameRoomItem2`( in wServerID INT, in wMachineID INT ) BEGIN SELECT * from gameroominfo; END ``` 目前遇到的问题就是,怎么也获取不到结果集,RecordCount始终为零(强行读取提示“BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。”并不是 显示没有其实有,而是确实没有结果集),但是如果我将参数去掉 ``` //添加参数 // _ParameterPtr Parameter; // Parameter = m_DBCommand->CreateParameter("wServerID", adInteger, adParamInput, sizeof(LONG), _variant_t((LONG)0)); // m_DBCommand->Parameters->Append(Parameter); // Parameter = m_DBCommand->CreateParameter("wMachineID", adInteger, adParamInput, sizeof(LONG), _variant_t((LONG)0)); // m_DBCommand->Parameters->Append(Parameter); CREATE DEFINER=`root`@`%` PROCEDURE `LoadGameRoomItem2`( ) BEGIN SELECT * from gameroominfo; END ``` 那么则可以获得结果集(RecordCount数量为40,if (m_DBRecordset->EndOfFile != VARIANT_TRUE)判断能进去,ServerID也能读取到),我试过在存储过程前面后面分别加一个update判断过是不是存储过程没执行成功,但是不管有参无参存储过程,两个Updata都走到了,而且不管有参无参直接在数据库调用都是有结果集的 数据库日志如下 ``` 190923 15:32:38 7534 Connect hhh@DESKTOP-989OGGH on Test 7534 Query SET NAMES utf8 7534 Query SET character_set_results = NULL 7534 Query SET SQL_AUTO_IS_NULL = 0 7534 Query select database() 7534 Query select database() 7534 Query SELECT @@tx_isolation 7534 Query set @@sql_select_limit=DEFAULT 7534 Query call LoadGameRoomItem2 7534 Quit 190923 15:47:54 7621 Connect hhh@DESKTOP-989OGGH on Test 7621 Query SET NAMES utf8 7621 Query SET character_set_results = NULL 7621 Query SET SQL_AUTO_IS_NULL = 0 7621 Query select database() 7621 Query select database() 7621 Query SELECT @@tx_isolation 7621 Prepare call LoadGameRoomItem2(?, ?) 7621 Query set @@sql_select_limit=DEFAULT 7621 Execute call LoadGameRoomItem2('0', '0') 7621 Close stmt 7621 Quit ``` 困扰小弟好几天了,希望各位神仙大佬能帮帮小弟T_T ----------------------------------编辑分界线-------------------------------- ![图片说明](https://img-ask.csdn.net/upload/201909/23/1569232509_546308.png)![图片说明](https://img-ask.csdn.net/upload/201909/23/1569232516_421262.png) 如图,是要像这样处理一张表的内容的,单单用output参数是做不到的,主要问题在如果不加参数这些东西是可以读出来的,但是加了参数就获取不到结果集了。。。。
ssm 框架,在本地环境下完美运行,在服务器上定时器执行两次
## 此处为 spring-mybatis.xml ``` <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd"> <!-- 自动扫描 --> <!-- 激活自动代理功能 --> <!-- 引入配置文件 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <!-- 初始化连接大小 --> <property name="initialSize" value="${initialSize}"></property> <!-- 连接池最大数量 --> <property name="maxActive" value="${maxActive}"></property> <!-- 连接池最大空闲 --> <property name="maxIdle" value="${maxIdle}"></property> <!-- 连接池最小空闲 --> <property name="minIdle" value="${minIdle}"></property> <!-- 获取连接最大等待时间 --> <property name="maxWait" value="${maxWait}"></property> </bean> <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自动扫描mapping.xml文件 --> <property name="mapperLocations" value="classpath:com/bls/mp/mapping/*.xml"></property> </bean> <!-- DAO接口所在包名,Spring会自动查找其下的类 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.bls.mp.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> </beans> ``` ## 此处为 spring-mvc.xml ``` <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd" > <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 --> <context:component-scan base-package="com.bls.mp.*"/> <!--避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!-- <bean id="thirdDataService" class="com.bls.mp.service.impl.ThirdDataServiceImpl"/>--> <bean class="com.bls.mp.common.SpringTool"/> <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 --> <!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> JSON转换器 </list> </property> </bean>--> <!-- 定义跳转的文件的前后缀 ,视图模式配置--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 --> <property name="prefix" value="/WEB-INF/resources/jsp/" /> <property name="suffix" value=".jsp" /> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property> </bean> <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默认编码 --> <property name="defaultEncoding" value="utf-8" /> <!-- 文件大小最大值 --> <property name="maxUploadSize" value="10485760000" /> <!-- 内存中的最大值 --> <property name="maxInMemorySize" value="40960" /> </bean> <!-- 全局异常处理器 --> <bean class="com.bls.mp.common.exception.CustomExceptionResolver"></bean> <mvc:annotation-driven/> <!-- 拦截器配置 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/setadmin"/> <!--<mvc:mapping path="/user/userList"/> --> <mvc:mapping path="/Blocker"/> <mvc:mapping path="/grouponteam/grouponRanking"/> <mvc:mapping path="/grouponteam/arriverTime"/> <mvc:mapping path="/grouponteam/paging"/> <mvc:mapping path="/grouponteam/conditionGrouponT"/> <mvc:mapping path="/hospital/hospitalInfo"/> <mvc:mapping path="/hospital/setting"/> <mvc:mapping path="/hospital/orderdetails"/> <mvc:mapping path="/grouponteam/grouponTeamCountAndMoney"/> <mvc:mapping path="/grouponteam/OrderRefundList"/> <mvc:mapping path="/grouponteam/orderdetails"/> <mvc:mapping path="/grouponteam/paging"/> <mvc:mapping path="/grouponteam/conditionGrouponT"/> <mvc:mapping path="/grouponteam/grouponRanking"/> <mvc:mapping path="/grouponteam/arriverTime"/> <mvc:mapping path="/grouponteam/grouponTeamCountAndMoney"/> <mvc:mapping path="/imguoload"/> <mvc:mapping path="/imguoloads"/> <mvc:mapping path="/uploadFile"/> <mvc:mapping path="/uploadCenter"/> <mvc:mapping path="/onTheShelves"/> <mvc:mapping path="/updateTheRecommended"/> <mvc:mapping path="/deleteByGoods"/> <mvc:mapping path="/restoreGoods"/> <mvc:mapping path="/goods/goodslist"/> <mvc:mapping path="/goods/hasBeenOn"/> <mvc:mapping path="/goods/NotOn"/> <mvc:mapping path="/goods/RecycleBin"/> <mvc:mapping path="/goods/searchName"/> <mvc:mapping path="/goods/goodsdiy"/> <mvc:mapping path="/upload/uploadFile"/> <mvc:mapping path="/CreateClassImg"/> <mvc:mapping path="/imglist"/> <mvc:mapping path="/up_img"/> <mvc:mapping path="/moveImg"/> <mvc:mapping path="/deleteImg"/> <mvc:mapping path="/template/templateURL"/> <mvc:mapping path="/template/templateParentAll"/> <mvc:mapping path="/template/templatAll"/> <mvc:mapping path="/template/changeT"/> <mvc:mapping path="/template/deleteT"/> <mvc:mapping path="/TemplateMsg/addTemplateMsg"/> <mvc:mapping path="/TemplateMsg/templateMsgList"/> <mvc:mapping path="/TemplateMsg/templateSendlist"/> <mvc:mapping path="/TemplateMsg/TemplateSendMsg"/> <mvc:mapping path="/TemplateMsg/updataPTID"/> <mvc:mapping path="/TemplateMsg/deleteMB"/> <mvc:mapping path="/ThirdData/getdata"/> <mvc:mapping path="/ThirdData/updata"/> <mvc:mapping path="/setMoney/setMoneyList"/> <mvc:mapping path="/setMoney/setArriveMoney"/> <mvc:mapping path="/setMoney/checkfileCert"/> <mvc:mapping path="/setMoney/SetMoneyType"/> <mvc:mapping path="/user/userlists"/> <mvc:mapping path="/user/uOpenId"/> <mvc:mapping path="/visitor/theAlmostMoon"/> <mvc:mapping path="/visitor/SixAlmostMoon"/> <mvc:mapping path="/visitor/tops"/> <mvc:mapping path="/weixin/REFUND"/> <bean class="com.bls.mp.interceptor.AuthInterceptor"></bean> </mvc:interceptor> </mvc:interceptors> <task:annotation-driven/> <!-- 配置访问静态文件 --> <mvc:default-servlet-handler/> <mvc:resources location="/images/" mapping="/images/**"/> <mvc:resources location="/WEB-INF/js/" mapping="/js/**"/> <mvc:resources location="/WEB-INF/resources/jsp/" mapping="/jsp/**"/> <mvc:resources location="/WEB-INF/resources/css/" mapping="/css/**"/> </beans> ``` ## 此处为web.xml ``` <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-redis.xml,classpath:spring-mybatis.xml</param-value> </context-param> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <async-supported>true</async-supported> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>CORSFilter</filter-name> <filter-class>com.bls.mp.common.MyFilter</filter-class> <init-param> <param-name>excludedPages</param-name> <param-value>/UserAuthServlet</param-value> </init-param> </filter> <filter-mapping> <filter-name>CORSFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>/index.jsp</welcome-file> </welcome-file-list> </web-app> ``` ## 此处为tomcat 配置 ``` <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <GlobalNamingResources> <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase" /> </GlobalNamingResources> <Service name="Catalina"> <Connector connectionTimeout="20000" maxPostSize="0" port="8080" protocol="HTTP/1.1" redirectPort="8443" /> <Connector maxPostSize="0" port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine defaultHost="localhost" name="Catalina"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" /> </Realm> <Host autoDeploy="true" name="yuming.cn" appBase="" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false"> <Context crossContext="true" docBase="/www/server/tomcat/webapps/xiangmu" path="" reloadable="true" /> </Host> </Engine> </Service> </Server> ``` ## spring-radis.xml ``` <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:property-placeholder location="classpath:*.properties"/> <!--设置数据池--> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="${redis.maxIdle}"></property> <property name="minIdle" value="${redis.minIdle}"></property> <property name="maxTotal" value="${redis.maxTotal}"></property> <property name="maxWaitMillis" value="${redis.maxWaitMillis}"></property> <property name="testOnBorrow" value="${redis.testOnBorrow}"></property> </bean> <!--链接redis--> <bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="hostName" value="${redis.host}"></property> <property name="port" value="${redis.port}"></property> <property name="password" value="${redis.password}"></property> <property name="poolConfig" ref="poolConfig"></property> </bean> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate" p:connection-factory-ref="connectionFactory" > <!--以下针对各种数据进行序列化方式的选择--> <property name="keySerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> </property> <property name="valueSerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> </property> <property name="hashKeySerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> </property> <!--<property name="hashValueSerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> </property>--> </bean> </beans> ```
属性错误:模块“pygame”没有属性“diasplay”.
没有找到相关资料解决问题,已经重装过pycharm. 代码如下: ![图片说明](https://img-ask.csdn.net/upload/201908/16/1565962554_528367.png) 报错截图如下: ![图片说明](https://img-ask.csdn.net/upload/201908/16/1565962593_457524.png) 全部代码如下: import pygame from plan_sprites import * # 游戏的初始化 pygame.init() # 创建游戏的窗口 大小:480*700 screen = pygame.diasplay.set_mode((480, 700)) # 绘制背景图像 # 1.加载图像数据 bg = pygame.image.load(r"H:\py\飞机大作战\images\background") screen.blit(bg, (0, 0)) # 3. updata更新屏幕 # 绘制英雄的飞机 hero = pygame.image.load(r"H:\py\飞机大作战\images\me1.png") screen.blit(hero, (150, 300)) # 可以在所有绘制工作完成后,统一调用updata方法 pygame.display.update() # 创建时钟对象 clock = pygame.time.Clock() # 1.定义rect记录飞机的初始位置 hero_rect = pygame.Rect(150, 300, 102, 106) # 创建敌机的精灵 enemy = GameSprite(r"H:\py\飞机大作战\images\enemy1.png") enemy1 = GameSprite(r"H:\py\飞机大作战\images\enemy1.png") # 创建敌机的精灵组 enemy_group = pygame.sprite.Group(enemy,enemy1) # 游戏循环-->意味着游戏的正式开始! while True: # 可以指定游戏循环内部的代码执行的频率 clock.tick(60) # 监听事件 for event in pygame.event.get(): # 判断事件类型是否是退出事件 if event.type == pygame.QUIT: print("游戏结束!!") # quit 卸载所有的模块 pygame.quit() # exit()直接终止当前正在执行的程序 exit() # 2. 修改飞机的位置 hero_rect.y -= 1 # 判断飞机的位置 if hero_rect.y <= -126: hero_rect.y = 700 # 3. 调用blit方法绘制图像 screen.blit(bg, (0, 0)) screen.blit(hero, hero_rect) # 让精灵组调用两个方法 # updata 让组中的所有精灵更新位置 enemy_group.update() # drow 在screen 上绘制所有精灵 enemy_group.draw(screen) # 4. 调用updata方法更新显示 pygame.display.update() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() pygame.quit() 望大神指点
想实现一个进度条动态更新
想实现一个进度条动态更新:在for中循环一个ajax,若是同步,页面卡死,等所有ajax执行完毕后,进度条直接到达100%,如果异步,会先执行for循环,导致我的暂停不能使用,想要的效果是每循环一次,ajax执行一次,回调函数执行一次 ``` function updata(){ var ajax = new $ax(Feng.ctxPath + "/device/oriDataByYear", function (data) { for(var key in data){ var tableName = data[key][0]; var startTime = data[key][1]; var endTime = data[key][2]; var num = data[key][3]; var count = Math.floor(num/100); total += parseInt(num); for(let j = 0; j <= count; j++){ if(start){ aj3(tableName,startTime,endTime,j,start); } } } }); ajax.set('tableid',$("#tableid").val()); ajax.set('startTime',$("#startTime").val()); ajax.set('endTime',$("#endTime").val()); ajax.start(); } //单张表更新历史数据 function aj3(tableName,startTime,endTime,j,start){ if (start == true) { $.ajax({ type: 'get', url: Feng.ctxPath + "/device/getDataByTableId", data: { "startTime": startTime, "tableName": tableName, "endTime": endTime, "num": j * 100, "formula": $("#formula").val(), }, async: true, success: function (da) { init(da) } }); } } //更新进度条 function init(da){ flag += da; element.progress('demo', Math.floor((flag / total) * 100) + '%'); if (flag >= total) { $("#end").show(); $("#stop").hide(); Feng.success("历史数据更新成功!"); } } //暂停 $("#stop").click(function () { start = false; $("#end").html("退出"); $("#end").show(); $("#stop").hide(); }); ```
如何在dialog中获取edittext的值
代码如下,这样获取edittext.gettext().tostring()值总为空,该怎么改呢? ``` final View viewDialog=(View)getLayoutInflater().inflate(R.layout.ad_dialog,null); new AlertDialog.Builder(Ad_Delete.this).setTitle("请输入删除数量(不能大于现有本数)") .setView(getLayoutInflater().inflate(R.layout.ad_dialog, null)) .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { EditText ad_delete_edit = (EditText)viewDialog.findViewById(R.id.ad_delete_number); int deleteNumber = Integer.parseInt(ad_delete_edit.getText().toString()); if (deleteNumber > nowNumber || deleteNumber < 0) { Toast.makeText(Ad_Delete.this, "输入数量有误,请输入不大于现有数量的数目", Toast.LENGTH_LONG).show(); } else { sqLiteOpenHelper_ad.getReadableDatabase().execSQL("updata Administrator_inf set book_totalnumber = ?, " + "book_nownumber = ? where _id = ?", new Integer[]{totalNumber - deleteNumber, nowNumber - deleteNumber, id}); Toast.makeText(Ad_Delete.this, "删除成功!", Toast.LENGTH_LONG).show(); } } }).show(); } }); ```
java怎样判断当前用户权限?
页面有一张表 值是从数据库取的 表有一个字段“创建人” 当登录用户id和创建人id一致时可以对这一条数据进行操作,假如不同则提示没有权限。 修改按钮如下 ``` { field : 'xxx', title : '修改操作', width : xxx, formatter : function(value, rowData,rowIndex) { return "<a href=\"javascript:void(0)\" onclick=\"updata('" + rowData.Id + "')\">修改</a>"; } }, ``` jquery 和 后台 该怎么写才可以实现功能? ps:String Id = this.getCurrentUser().getUserId();这是获取当前登录用户id的代码
Windows下mysql运行慢(innodb)
mfc通过ADO连接mysql,开启连接数为50个。 已经设置过innodb_flush_log_at_trx_commit为2,innodb_buffer_pool_size为1G 目前问题: 1、数据库慢日志时限1s,持续增多,但是查看慢日志,里面只是简单的insert或者是updata语句,很简单的那种,提出来单独运行时间又是0.0x,不明白什么原因。 2、连续执行100+的语句,在程序内的循环,每一个都是一个updata,但是运行时间是10s+,不能接受啊。 3、之前的数据库一直是MSSQL,现在改为MYSQL,发现无法在过程外使用IF和游标,倍感头痛,请问有什么解决办法? 谢谢,麻烦了。
map编写的图书管理器修改书籍信息没办法修改指定键值怎么办?
# 在修改“1”的书名时候结果把“2”的书名改了,代码该怎么修改? ``` public void updata(){ System.out.println("请输入要修改的书籍"); String bookId=Util.s.next(); boolean contains = map.containsKey(bookId); if(mapbook.get(bookId)==null){ System.out.println("没有这本书"); }else if(contains){ System.out.println("1.修改书名 2.修改作者 3.修改简介 "); switch (Util.s.nextInt()) { case 1:System.out.println("请输入新的书名"); book.setBookName(Util.s.next());break; case 2:System.out.println("请输入新的作者名"); book.setAuthor(Util.s.next());break; case 3:System.out.println("请输入新的简介"); book.setJianjie(Util.s.next());break; default:break; } } } ``` ``` ```
数据库UPdate一条数据使其他数据都会改为UPdata的那条数据
数据库UPdate一条数据是其他数据会跟改为UPdate的那条数据
如何在JSP页面回显多选框的勾
是这样的,最近呢自学SSH,现在在修改方面想把多选框里面的内容给复现出来,比如这个人之前选中了哪些多选框,这回修改的时候就先显示出来这些多选,再让他改。 接着呢,因为我录入进去数据库的值是通过数组拼接出来的,也就是连成一块了。 <s:form action ="add_user-updata" method="post"> <s:iterator value="#request.list" id="s"> <s:iterator value="#request.u_love" id="c"> <s:hidden name="id"/> <s:hidden name="savePath"/> <tr><td>职位:</td><s:checkboxlist list ="{'CTO','CFO','CEO','CMO','COO'}" name="u_love" listValue="{c}"/></tr><br> 这样会直接输出4个一块东西的一样多选。 接着也试过其他的方法,但是都不对,不是没显示,就是报错。 所以来求助各位大神了,谢谢~! 反正呢0 0 总结起来就是想回显多选框 (无论什么方法都行,哪怕加<%JAVA代码%>也ok)希望各位大大帮忙0 0
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
MyBatis研习录(01)——MyBatis概述与入门
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis原本是apache的一个开源项目iBatis, 2010年该项目由apache software foundation 迁移到了google code并改名为MyBatis 。2013年11月MyBatis又迁移到Github。
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip installselenium -ihttps://pypi.tuna.tsinghua.edu.cn/simple/ ...
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca...
Python爬虫精简步骤1 获取数据
爬虫,从本质上来说,就是利用程序在网上拿到对我们有价值的数据。 爬虫能做很多事,能做商业分析,也能做生活助手,比如:分析北京近两年二手房成交均价是多少?广州的Python工程师平均薪资是多少?北京哪家餐厅粤菜最好吃?等等。 这是个人利用爬虫所做到的事情,而公司,同样可以利用爬虫来实现巨大的商业价值。比如你所熟悉的搜索引擎——百度和谷歌,它们的核心技术之一也是爬虫,而且是超级爬虫。 从搜索巨头到人工...
Python绘图,圣诞树,花,爱心 | Turtle篇
每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。 公众号回复【进群】沟通交流吧,QQ扫码进群学习吧 微信群 QQ群 1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle()...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
web前端javascript+jquery知识点总结
1.Javascript 语法.用途 javascript 在前端网页中占有非常重要的地位,可以用于验证表单,制作特效等功能,它是一种描述语言,也是一种基于对象(Object)和事件驱动并具有安全性的脚本语言 ...
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o...
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ...... ...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
渗透测试-灰鸽子远控木马
木马概述 灰鸽子( Huigezi),原本该软件适用于公司和家庭管理,其功能十分强大,不但能监视摄像头、键盘记录、监控桌面、文件操作等。还提供了黑客专用功能,如:伪装系统图标、随意更换启动项名称和表述、随意更换端口、运行后自删除、毫无提示安装等,并采用反弹链接这种缺陷设计,使得使用者拥有最高权限,一经破解即无法控制。最终导致被黑客恶意使用。原作者的灰鸽子被定义为是一款集多种控制方式于一体的木马程序...
Python:爬取疫情每日数据
前言 目前每天各大平台,如腾讯、今日头条都会更新疫情每日数据,他们的数据源都是一样的,主要都是通过各地的卫健委官网通报。 以全国、湖北和上海为例,分别为以下三个网站: 国家卫健委官网:http://www.nhc.gov.cn/xcs/yqtb/list_gzbd.shtml 湖北卫健委官网:http://wjw.hubei.gov.cn/bmdt/ztzl/fkxxgzbdgrfyyq/xxfb...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名...
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计...
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允许使用这...
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧???? 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升自...
粒子群算法求解物流配送路线问题(python)
1.Matlab实现粒子群算法的程序代码:https://www.cnblogs.com/kexinxin/p/9858664.html matlab代码求解函数最优值:https://blog.csdn.net/zyqblog/article/details/80829043 讲解通俗易懂,有数学实例的博文:https://blog.csdn.net/daaikuaichuan/article/...
教你如何编写第一个简单的爬虫
很多人知道爬虫,也很想利用爬虫去爬取自己想要的数据,那么爬虫到底怎么用呢?今天就教大家编写一个简单的爬虫。 下面以爬取笔者的个人博客网站为例获取第一篇文章的标题名称,教大家学会一个简单的爬虫。 第一步:获取页面 #!/usr/bin/python # coding: utf-8 import requests #引入包requests link = "http://www.santostang....
前端JS初级面试题二 (。•ˇ‸ˇ•。)老铁们!快来瞧瞧自己都会了么
1. 传统事件绑定和符合W3C标准的事件绑定有什么区别? 传统事件绑定 &lt;div onclick=""&gt;123&lt;/div&gt; div1.onclick = function(){}; &lt;button onmouseover=""&gt;&lt;/button&gt; 注意: 如果给同一个元素绑定了两次或多次相同类型的事件,那么后面的绑定会覆盖前面的绑定 (不支持DOM事...
相关热词 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数 c#日期精确到分钟 c#自定义异常必须继承 c#查表并返回值 c# 动态 表达式树 c# 监控方法耗时 c# listbox c#chart显示滚动条
立即提问