@MySQL中有自动更新状态 14C

MySQL中表有三个字段startTime,endTime,status三个字段,当时间到startTime时,自动更新status=1,当时间到endTime时,自动更新状态status=2,该怎么实现?

4个回答

一般来说,这种情况不需要些触发器。 你在数据库层获取时间。在业务层,按照这个规则返回状态值就可以了

写一个job来查询这张表中status字段不为1和不为2的对象,遍历出来,当时间到startTime时,自动更新该对象的status=1,当时间到endTime时,该对象自动更新状态status=2,然后自己设置一下job的时间

数据库建表不合理,就一个控制时间就要占用三个字段,你确定这是一个码农干的事么,,数据库资源是非常宝贵的,,,数据库就是存取数据的,,逻辑要在逻辑层去实现,
如果你非要在数据库实现这种逻辑有两种方法:1,触发器,,这里我就不写了
2,循环执行一条sql:update tableName set status = (select status case when startTime = now() then 1 when endTime = now() then 2 end )
忠告:换思路

u010046908
请叫我东子 触发器根本不可能实现,用事件+存储过程已经实现,感觉还是性能问题,就是想得到一种高性能实现方式?可以说一下你的设计思路
2 年多之前 回复
u010046908
请叫我东子 开始时间,和结束时间这两个字段不能少吧,状态实时变化该如何如何做,每次都判断?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
请问mysql设置成自动提交后能执行事务逻辑吗?
比如说开启两个查询窗口A和B, A查询,B插入数据,两者都设置为自动提交(SET autocommit =1;)。A的隔离权限为(Read Committed),B为mysql默认的(Repeatable Read)。然后A begin,查询id=3的num=100,接着B begin,更新id=3的num=num+100.此时在B中查询id=3的num=200,A中查询id=3的num=100.B执行commit后,A中查询id=3的num=200. 问题来了:以上是我在SQLyog中测试的。既然B是自动提交,为何A在B执行commit前的num值为100而不是200.是否自动提交遇到begin就失效(在begin后查询提交状态依然为自动提交),如果是这样的话,何必设置提交状态为手动提交?还是说我测试的有问题
mysql自动更新字段 时间触发
有个表table1 里面有个字段endtime state状态 现在希望一到endtime state自动更新为指定值 有没有做过类似的大神给指教下
Linux下安装mysql出错(附上出错信息)
........ ....... 正在设置 libtimedate-perl (2.3000-2) ... 正在设置 libio-html-perl (1.001-1) ... 正在设置 libhtml-parser-perl (3.72-3+b2) ... 正在设置 libcgi-pm-perl (4.36-1) ... 正在设置 mysql-server-5.7 (5.7.18-1) ... update-alternatives: 使用 /etc/mysql/mysql.cnf 来在自动模式中提供 /etc/mysql/my.cnf (my.cnf) Renaming removed key_buffer and myisam-recover options (if present) ERROR: Unable to start MySQL server: 2017-10-15T20:25:10.867031Z 0 [ERROR] unknown variable 'innodb_additional_mem_pool_size=2M' 2017-10-15T20:25:10.871852Z 0 [ERROR] Aborting Please take a look at https://wiki.debian.org/Teams/MySQL/FAQ for tips on fixing common upgrade issues. Once the problem is resolved, run apt-get --fix-broken install to retry. dpkg: 处理软件包 mysql-server-5.7 (--configure)时出错: 子进程 已安装 post-installation 脚本 返回错误状态 1 正在设置 libhttp-date-perl (6.02-1) ... dpkg: 依赖关系问题使得 mysql-server 的配置工作不能继续: mysql-server 依赖于 mysql-server-5.7;然而: 软件包 mysql-server-5.7 尚未配置。 dpkg: 处理软件包 mysql-server (--configure)时出错: 依赖关系问题 - 仍未被配置 正在设置 libhtml-template-perl (2.95-2) ... 正在设置 libcgi-fast-perl (1:2.12-1) ... 正在设置 libhttp-message-perl (6.11-1) ... 正在处理用于 libc-bin (2.24-9) 的触发器 ... 正在处理用于 systemd (233-10) 的触发器 ... 在处理时有错误发生: mysql-server-5.7 mysql-server E: Sub-process /usr/bin/dpkg returned an error code (1) 不知道哪位朋友遇到过这种问题或者请教各位;该如何处置。
关于MySQL触发器的问题
``` CREATE TABLE `retailcatalog` ( `UUID` varchar(38) NOT NULL COMMENT '唯一标识,自动生成,为主键', `PRODUCTUUID` varchar(38) NOT NULL COMMENT '商品唯一标识,需要创建索引', `BEGINDATE` date NOT NULL COMMENT '起始时间', `ENDDATE` date NOT NULL COMMENT '截止时间', `PRICE` double(19,4) NOT NULL COMMENT '销售价', PRIMARY KEY (`UUID`), UNIQUE KEY `UQ_RETAILCATALOG_RetailcatalogID` (`UUID`,`PRODUCTUUID`), KEY `IX_retailcatalog_productUUID` (`PRODUCTUUID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ``` ``` CREATE TABLE `product` ( `UUID` varchar(38) NOT NULL, `CODE` varchar(20) NOT NULL COMMENT '代码,需要创建索引', `NAME` varchar(100) NOT NULL COMMENT '名称', `ORDERPRICE` double(19,4) DEFAULT NULL COMMENT '采购价', `SALEPRICE` double(19,4) DEFAULT NULL COMMENT '销售价(数据来源于 RETAILCATALOG 表)', `STATE` int(11) DEFAULT NULL COMMENT '状态 (0 为使用中, 999 为已删除 )', PRIMARY KEY (`UUID`), UNIQUE KEY `UUID` (`UUID`), KEY `IX_product_code` (`CODE`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ``` 有两张表,retailcatalog和product 有一个存储过程 ``` /* *将 RETAILCATALOG 上的 PRICE 数据同步到 PRODUCT 表上的 SALEPRICE */ drop procedure if exists proc_product_saleprice_state_update; create procedure proc_product_saleprice_state_update( in nowday date ) begin update product p, retailcatalog r set p.SALEPRICE=r.PRICE,p.STATE=0 where r.PRODUCTUUID = p.UUID and nowday >= r.BEGINDATE and nowday <= r.ENDDATE; update product p, retailcatalog r set p.SALEPRICE=0,p.STATE=999 where (r.PRODUCTUUID = p.UUID and (nowday < r.BEGINDATE or nowday > r.ENDDATE)) or not exists( select 1 from retailcatalog r where p.UUID = r.PRODUCTUUID); end; ``` a. 编写一个触发器,要求在修改销售目录( RETAILCATALOG )数据的 PRICE 之后,修改 PRODUCT 表的 SALEPRICE b. 编写一个触发器,要求在修改商品表( PRODUCT )数据的状态( STATE )之后,如果发现 STATE 为 999 ,则删除对应的 RETAILCATALOG 以下是我写的触发器 ``` /* *在修改销售目录( RETAILCATALOG )数据的 PRICE 之后,修改 PRODUCT 表的 SALEPRICE */ DROP TRIGGER IF EXISTS retailcatalog_after_update_price_on_product; CREATE TRIGGER retailcatalog_after_update_price_on_product AFTER UPDATE ON retailcatalog FOR EACH ROW BEGIN IF new.PRICE <> old.PRICE THEN UPDATE product p SET p.SALEPRICE = new.PRICE WHERE p.UUID = new.PRODUCTUUID; END IF; END; ``` ``` /* *在修改商品表( PRODUCT )数据的状态( STATE )之后,如果发现 STATE 为 999 ,则删除对应的 RETAILCATALOG */ DROP TRIGGER IF EXISTS product_after_update_state_on_retailcatalog; CREATE TRIGGER product_after_update_state_on_retailcatalog AFTER UPDATE ON product FOR EACH ROW BEGIN IF new.STATE = 999 THEN DELETE r FROM retailcatalog r WHERE ( r.PRODUCTUUID = new.UUID AND new.STATE = 999 ); END IF; END; ``` 当我运行存储过程时 call proc_product_salepriceAndstate_update(CURDATE()); 数据库报错 call proc_product_salepriceAndstate_update(CURDATE()) > 1442 - Can't update table 'retailcatalog' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. 各位大神能指导下我应该如何改进吗?
SSM框架在tomcat7下跑一段时间后抛异常,怀疑是Mysql 8小时连接问题。
框架是Spring+SpringMVC+MyBatis 在Tomcat7上发布后跑大约四个小时后会抛一次异常,但是能正常访问 配置文件: proxool.prototypeCount=5 proxool.maximumActiveTime=300000 proxool.maximumConnectionLifetime=18000000 proxool.minimumConnectionCount=5 proxool.maximumConnectionCount=40 proxool.alias=lvseu proxool.simultaneous-build-throttle=20 proxool.prototype-count=2 proxool.houseKeepingTestSql=select CURRENT_DATE proxool.hourseKeepingSleepTime=30000 <property name="driver" value="${connection.driver_class}" /> <property name="driverUrl" value="${connection.url}" /> <property name="user" value="${connection.username}" /> <property name="password" value="${connection.password}" /> <!-- 测试的SQL执行语句 --> <property name="houseKeepingTestSql" value="${proxool.houseKeepingTestSql}"/> <!-- 最少保持的空闲连接数 (默认2个) --> <property name="prototypeCount" value="${proxool.prototypeCount}" /> <!-- 最大活动时间(超过此时间线程将被kill,默认为5分钟) --> <property name="maximumActiveTime" value="${proxool.maximumActiveTime}" /> <!-- 最小连接数 (默认2个) --> <property name="minimumConnectionCount" value="${proxool.minimumConnectionCount}" /> <!-- 最大连接数 (默认10个) --> <property name="maximumConnectionCount" value="${proxool.maximumConnectionCount}" /> <!-- 连接最长时间(默认为4个小时) --> <property name="maximumConnectionLifetime" value="${proxool.maximumConnectionLifetime}" /> <!-- 数据库别名 --> <property name="alias" value="${proxool.alias}" /> <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 默认30秒) --> <property name="houseKeepingSleepTime" value="${proxool.hou rseKeepingSleepTime}" /> 抛的异常为: 2017-08-10 03:20:22 [Prototyper] ERROR org.logicalcobwebs.proxool.lvseu - Prototype com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.Util.getInstance(Util.java:381) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2270) at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723) at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282) at java.sql.DriverManager.getConnection(DriverManager.java:571) at java.sql.DriverManager.getConnection(DriverManager.java:187) at org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConnectionBuilder.java:39) at org.logicalcobwebs.proxool.Prototyper.buildConnection(Prototyper.java:159) at org.logicalcobwebs.proxool.Prototyper.sweep(Prototyper.java:102) at org.logicalcobwebs.proxool.PrototyperThread.run(PrototyperThread.java:44) Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Last packet sent to the server was 0 ms ago. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:335) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2194) ... 15 more Caused by: java.net.ConnectException: Connection timed out: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:579) at java.net.Socket.connect(Socket.java:528) at java.net.Socket.<init>(Socket.java:425) at java.net.Socket.<init>(Socket.java:241) at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253) at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284) ... 16 more 2017-08-10 03:20:46 [Prototyper] ERROR org.logicalcobwebs.proxool.lvseu - Prototype com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.Util.getInstance(Util.java:381) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2270) at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723) at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46) at sun.reflect.GeneratedConstructorAccessor57.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282) at java.sql.DriverManager.getConnection(DriverManager.java:571) at java.sql.DriverManager.getConnection(DriverManager.java:187) at org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConnectionBuilder.java:39) at org.logicalcobwebs.proxool.Prototyper.buildConnection(Prototyper.java:159) at org.logicalcobwebs.proxool.Prototyper.sweep(Prototyper.java:102) at org.logicalcobwebs.proxool.PrototyperThread.run(PrototyperThread.java:44) Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Last packet sent to the server was 0 ms ago. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:335) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2194) ... 14 more Caused by: java.net.ConnectException: Connection timed out: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:579) at java.net.Socket.connect(Socket.java:528) at java.net.Socket.<init>(Socket.java:425) at java.net.Socket.<init>(Socket.java:241) at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253) at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284) ... 15 more
关于mysql存储过程的更新语句问题
BEGIN /* accid --普通账户id- '58b0495500ec58092' money!--充值金额- '10' cardid--卡id- '000005' ad_seri--序列号- '43b1515500031af023' ad_seris--序列号- null u_id--用户id- 'userId2' idg--用户活动关系表id null accids --活动账户id null integ--赠送积分! null pre_num!--赠送多少钱 null trans_code--交易码 '000015' cmp_id--商户id '001' inter_sert--接口流水号 'JKLSH' act_id -- 活动id null adcsub--借方id '823' addsub--贷方id '999' userId--柜员号 out '466d6d55009aa0041','10','100121','e3d28355001d8d00','e3d28355001d8d01','王五',null,null,'1.000','0','000011','001','',null,'823','999','test05' */ declare accbla decimal; declare accblaf decimal; declare accod decimal; declare money decimal(15,3); declare integ decimal(15,3) default 0; declare pre_num decimal(15,3) default 0; declare schid varchar(20); declare schna varchar(100); declare abC varchar(6);#卡类型ab账 declare abA varchar(6);#账户类型ab账 declare ab varchar(6);#新的ab账 #declare result varchar(1) default '0';#只用于测试 #如果出现sql异常,则将t_error设置为1后继续执行后面的操作 declare continue handler for sqlexception set result="1"; #设置事务顺序执行 #SET transaction isolation level SERIALIZABLE; #手动启动事务,即不自动commit START TRANSACTION; set money = CAST(moneyS AS decimal(15,3)); select QZT into abC from sdw_ref_usr_card sruc,sdw_bus_cardtype sbc where CARD_ID=cardId and sruc.CARD_TYPE=sbc.CARD_TYPE; select sss.SCH_ID,sss.SCH_NA into schid,schna from sdw_ref_sch_cmp srsc,sdw_sys_schinfo sss where srsc.CMP_ID=cmp_id and sss.SCH_ID=srsc.SCH_ID; #select ACC_BLA,ACC_OD into accbla,accod from sdw_bus_account where ACC_ID=accid; select a.ACC_BLA,a.ACC_OD,b.SPEC into accbla,accod,abA from sdw_bus_account a,sdw_bus_acctype b where a.ACC_TYPE = b.ACC_TYPE and a.ACC_ID=accid; #更新普通账户余额 update sdw_bus_account set ACC_BLA=ACC_BLA+money,REC_NUM=REC_NUM+1 where ACC_ID=accid; #判断透支停卡用户的余额 if accod+accbla+money>0 then #更新所有卡状态为启用 update sdw_ref_usr_card set U_ST='sys01' where U_ID=u_id and U_ST='sys06'; end if; if integS is not null then set integ = CAST(integS AS decimal(15,3)); select integ; #更新积分信息表 update sdw_bus_inteinfo set INTE=INTE+integ,TOTAL_TOPUP=TOTAL_TOPUP+money,TOPUP=TOPUP+integ where U_ID=u_id; select result; end if; #确定ab账 if abA='qztb' or abC='qztb' THEN set ab = 'qztb'; else set ab = 'qzta'; end if; #临时流水表 insert into sdw_tmp_sch_traninfo (ACC_ID,CARD_ID,U_STAT,DJ_MARK,B_ANCT,AD_ANCT,E_ANCT,SA_ACCTP,AD_BUSINESS,AD_ACBK, AD_TELL,AD_AUTHN,AD_SERI,AD_ST,TRANS_CODE,TRTP_ID,AD_DATE,AD_ZD,AD_CSUB,AD_CMON, AD_DSUB,AD_DMON,P_ACC,AD_POST,AD_REC,AD_WRITROFF,KVAL,SE_NOTE,GOU_STATE,INTER_SERI, SCH_ID,SCH_NA,MCT_ID,MC_ID,PRO_ID,NUM,UNIT_P,AB,DJJ,DJJ_ID,INTE,SZ) values(accid,cardid,'ust01','decr01',accbla,money,accbla+money,'acct01',cmp_id,cmp_id, userId,null,ad_seri,'trst02',trans_code,'trt01',NOW(),null,adcsub,money, addsub,money,null,'sys00','sys00','sys00',null,null,'ust02',inter_sert, schid,schna,null,null,null,null,null,ab,null,null,integ,FLOOR(RAND()*10)); if accids is not null then if pre_numS is not null and pre_numS <> '0' then set pre_num = CAST(pre_numS AS decimal(15,3)); #select ACC_BLA into accblaf from sdw_bus_account where ACC_ID=accids; select a.ACC_BLA,b.SPEC into accblaf,abA from sdw_bus_account a,sdw_bus_acctype b where a.ACC_TYPE = b.ACC_TYPE and a.ACC_ID=accids; #更新活动送账户余额 update sdw_bus_account set ACC_BLA=ACC_BLA+pre_num,REC_NUM=REC_NUM+1 where ACC_ID=accids; #确定ab账 if abA='qztb' or abC='qztb' THEN set ab = 'qztb'; else set ab = 'qzta'; end if; #临时流水表 insert into sdw_tmp_sch_traninfo (ACC_ID,CARD_ID,U_STAT,DJ_MARK,B_ANCT,AD_ANCT,E_ANCT,SA_ACCTP,AD_BUSINESS,AD_ACBK,AD_TELL,AD_AUTHN,AD_SERI,AD_ST,TRANS_CODE,TRTP_ID,AD_DATE,AD_ZD,AD_CSUB, AD_CMON,AD_DSUB,AD_DMON,P_ACC,AD_POST,AD_REC,AD_WRITROFF,KVAL,SE_NOTE,GOU_STATE,INTER_SERI,SCH_ID,SCH_NA,MCT_ID,MC_ID,PRO_ID,NUM,UNIT_P,AB,DJJ,DJJ_ID,INTE,SZ) values(accids,cardid,'ust01','decr01',accblaf,pre_num,accblaf+pre_num,'acct02',cmp_id,cmp_id, userId,null,ad_seris,'trst02',trans_code,'trt01',NOW(),null,adcsub,pre_num, addsub,pre_num,null,'sys00','sys00','sys00',null,null,'ust02',inter_sert, schid,schna,null,null,null,null,null,ab,null,null,null,FLOOR(RAND()*10)); end if; end if; if act_id is not null then insert into sdw_ref_u_act(ACT_ID,U_ID,S_TIME,IDGEN) values(act_id,u_id,now(),idg); update sdw_bus_act set J_NUM=J_NUM+1 where ACT_ID=act_id; end if; if result <> "0" then set result = "1"; ROLLBACK; ELSE set result='0'; COMMIT; END IF; END 以上是我的存储过程,在"更新积分信息表"位置出现问题:条件不好使,全量更新表,而不是符合条件的记录。存储过程能执行。 请各位大神帮小弟看看 是不是更新语句有问题?还是其他问题?跪谢
oracle数据库使用plsql developer 如何显示的开启一个事务?
oracle数据库使用plsql developer 如何显示的开启一个事务?就像mysql中的begin; start transaction;语句这样。书上说 Oracle 事务分为2中类型(显式和隐式方法) 显示方法,就是利用命令完成。 Oracle中的事务不需要设置开始标识。通常有下列情况之一时,事务会开启: 登录数据库后,第一次执行DML语句。 当事务结束后,第一次执行DML语句。 2 . 隐式方法 该类型的事务没有明确的开始和结束标识。他有数据库自动开启,当一个程序正常结束或使用DDL语言时会自动提交,而操作失败时也会自动回滚。如果设置AUTOCOMMIT为打开状态(默认关闭),则每次执行DML操作都会自动提交。 语法为: SET AUTOCOMMIT ON/OFF; 事务在什么情况下结束需要注意,否则有丢数据的可能。有下列情况之一的,事务会结束 1 使用commit事务提交,使用rollback事务回滚 2 执行DDl语句,事务会自动提交。例如,使用create,drop,grant,revoke等命令。 3 正常退出sql*plus时自动提交事务,非正常退出时则rollback事务回滚。 我要是想在开启一个事务时,第一句使用select语句,这个时候该怎么显示的声明一下事务的开始?谢谢
有关mysql分布式存储问题
问题大概是这样的 现在需要做一个分布式存储的系统,需要用到分布式存储,有三个数据库服务器,要实现三个数据库的同步,而且当有一个宕机的时候,会自动连接到备份的数据库服务器,且要实现负载均衡。 以下是需求 分布式银行账号管理系统 实现一个分布式银行账户管理系统,其中包括下列组件: 1) 客户: 客户可以提出联机请求,包括: 可以提出存款、取款和查询余额请求; 可以从服务器接收事务处理状态,并记录或打印。 2) 数据库服务器: 保存用户账户的数据库分布存储在三个服务器上,并且每个用户账户在其中两个数据库中存在副本,要求: 实现用户账户数据库的复制; 使用释放一致性模型实现一致性; 参照分布式互斥算法实现分布式锁定,可以使用物理时钟代替全局逻辑时钟; 实现用户账户数据库的故障处理和恢复。假定同时只有一个服务器可能发生故障,可以使用日志实现故障处理 注意服务器从故障中恢复时,需要对所有副本进行再同步,以保证副本一致性。 3) 负载均衡器: 每个客户发送请求给负载均衡器,负载均衡器依次将用户请求转发给其中一个服务器,由该服务器处理用户请求,同时,负载均衡器向客户返回响应消息。可以使用两种不同的负载均衡策略: 对每个账户的处理按请求时间进行轮转,由两个复制的数据库轮流处理请求; 根据服务器的负载情况进行均衡,将请求发送给负载最轻的服务器。 4) 协调者: 每个客户发送请求给协调者,协调者依次将用户请求转发给其中一个服务器,由该服务器处理用户请求,同时,协调者向客户返回响应消息。要求: 实现账户级锁定; 使用周期性的HeartBeat消息确定每个服务器的状态; 再同步期间,不处理任何请求
Linux下LAMP服务安装,访问localhost 404 Not Found 问题
wesson@wesson-desktop:/$ sudo apt-get install lamp-server^ [sudo] password for wesson: 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 注意,为任务 lamp-server 选中了 libdbi-perl 注意,为任务 lamp-server 选中了 libaprutil1-dbd-sqlite3 注意,为任务 lamp-server 选中了 apache2-bin 注意,为任务 lamp-server 选中了 libapache2-mod-php5 注意,为任务 lamp-server 选中了 ssl-cert 注意,为任务 lamp-server 选中了 mysql-server-5.5 注意,为任务 lamp-server 选中了 mysql-client-core-5.5 注意,为任务 lamp-server 选中了 mysql-server 注意,为任务 lamp-server 选中了 libapr1 注意,为任务 lamp-server 选中了 php5-readline 注意,为任务 lamp-server 选中了 libaprutil1 注意,为任务 lamp-server 选中了 libwrap0 注意,为任务 lamp-server 选中了 libdbd-mysql-perl 注意,为任务 lamp-server 选中了 apache2-mpm-prefork 注意,为任务 lamp-server 选中了 libhtml-template-perl 注意,为任务 lamp-server 选中了 mysql-client-5.5 注意,为任务 lamp-server 选中了 libaio1 注意,为任务 lamp-server 选中了 mysql-common 注意,为任务 lamp-server 选中了 libmysqlclient18 注意,为任务 lamp-server 选中了 mysql-server-core-5.5 注意,为任务 lamp-server 选中了 libterm-readkey-perl 注意,为任务 lamp-server 选中了 php5-mysql 注意,为任务 lamp-server 选中了 apache2-data 注意,为任务 lamp-server 选中了 apache2 注意,为任务 lamp-server 选中了 php5-common 注意,为任务 lamp-server 选中了 php5-cli 注意,为任务 lamp-server 选中了 php5-json 注意,为任务 lamp-server 选中了 libaprutil1-ldap 注意,为任务 lamp-server 选中了 tcpd libaio1 已经是最新的版本了。 libapr1 已经是最新的版本了。 libaprutil1 已经是最新的版本了。 libaprutil1-dbd-sqlite3 已经是最新的版本了。 libaprutil1-ldap 已经是最新的版本了。 libdbd-mysql-perl 已经是最新的版本了。 libdbi-perl 已经是最新的版本了。 libhtml-template-perl 已经是最新的版本了。 libterm-readkey-perl 已经是最新的版本了。 libwrap0 已经是最新的版本了。 php5-json 已经是最新的版本了。 ssl-cert 已经是最新的版本了。 tcpd 已经是最新的版本了。 apache2 已经是最新的版本了。 apache2-bin 已经是最新的版本了。 apache2-data 已经是最新的版本了。 apache2-mpm-prefork 已经是最新的版本了。 libapache2-mod-php5 已经是最新的版本了。 libmysqlclient18 已经是最新的版本了。 mysql-client-5.5 已经是最新的版本了。 mysql-client-core-5.5 已经是最新的版本了。 mysql-common 已经是最新的版本了。 mysql-server 已经是最新的版本了。 mysql-server-5.5 已经是最新的版本了。 mysql-server-core-5.5 已经是最新的版本了。 php5-cli 已经是最新的版本了。 php5-common 已经是最新的版本了。 php5-mysql 已经是最新的版本了。 php5-readline 已经是最新的版本了。 下列软件包是自动安装的并且现在不需要了: linux-headers-3.13.0-24 linux-headers-3.13.0-24-generic linux-image-3.13.0-24-generic linux-image-extra-3.13.0-24-generic Use 'apt-get autoremove' to remove them. 升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 7 个软件包未被升级。 LAMP服务已经安装好了,但是浏览器访问localhost和127.0.0.1都提示 Not Found The requested URL / was not found on this server. Apache/2.4.7 (Ubuntu) Server at localhost Port 80 是什么原因呢?。。
新手weka问题,急SOS~~
没做过数据挖掘这方面,但是那边安排了个这方面的活,要求用weka做挖掘,现学了两天半吊子,特来求解各位大神。 问题1:现在遇到问题是挖掘内容大概150w条,在mysql中占400+M.当我用weka从数据库导入时weka就会死掉, 我把jvm内存调到1500M还是崩,再调大了就不允许。是不是和我机子内存有关系,加内存就能解决问题么,有没有别的解决方案,我用的机子内存4G 问题2:我想通过调用weka的api直接把聚类结果拿来直接传到前台做图展示,可是发现weka的clusterResultsToString()方法返回的结果都是比较杂,有没有直接返回聚类名和所占比例的方法函数 问题3:因为公司那边还没给全数据,只是给了数据库表结构和不到1/3的数据,挖的内容是关于产品,产地,产品审批信息状态等等,那边说先编好代码再填数据,一段时间自动根据数据重新挖掘展示,并且要求挖出100~200个可以展示的表,以供他们提供思路上的创新。话说这样怎么挖掘啊,这种展示类的我是不是只能从聚类上下手,关联这部分没数据的话是没法做吧。我太菜求解释。
SSM框架Tomcat跑一段时间后抛异常
用的是Spring + SpringMVC+ Mybatis 项目部署后跑一段时间后会跑异常 但是可以正常访问 下面是抛出的异常: 2017-08-10 03:20:46 [Prototyper] ERROR org.logicalcobwebs.proxool.lvseu - Prototype com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.Util.getInstance(Util.java:381) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2270) at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723) at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46) at sun.reflect.GeneratedConstructorAccessor57.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282) at java.sql.DriverManager.getConnection(DriverManager.java:571) at java.sql.DriverManager.getConnection(DriverManager.java:187) at org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConnectionBuilder.java:39) at org.logicalcobwebs.proxool.Prototyper.buildConnection(Prototyper.java:159) at org.logicalcobwebs.proxool.Prototyper.sweep(Prototyper.java:102) at org.logicalcobwebs.proxool.PrototyperThread.run(PrototyperThread.java:44) Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Last packet sent to the server was 0 ms ago. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:335) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2194) ... 14 more Caused by: java.net.ConnectException: Connection timed out: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:579) at java.net.Socket.connect(Socket.java:528) at java.net.Socket.<init>(Socket.java:425) at java.net.Socket.<init>(Socket.java:241) at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253) at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284) ... 15 more 我的配置文件 proxool.prototypeCount=5 proxool.maximumActiveTime=300000 proxool.maximumConnectionLifetime=18000000 proxool.minimumConnectionCount=5 proxool.maximumConnectionCount=40 proxool.alias=lvseu proxool.simultaneous-build-throttle=20 proxool.prototype-count=2 proxool.houseKeepingTestSql=select CURRENT_DATE proxool.hourseKeepingSleepTime=30000 <property name="driver" value="${connection.driver_class}" /> <property name="driverUrl" value="${connection.url}" /> <property name="user" value="${connection.username}" /> <property name="password" value="${connection.password}" /> <!-- 测试的SQL执行语句 --> <property name="houseKeepingTestSql" value="${proxool.houseKeepingTestSql}"/> <!-- 最少保持的空闲连接数 (默认2个) --> <property name="prototypeCount" value="${proxool.prototypeCount}" /> <!-- 最大活动时间(超过此时间线程将被kill,默认为5分钟) --> <property name="maximumActiveTime" value="${proxool.maximumActiveTime}" /> <!-- 最小连接数 (默认2个) --> <property name="minimumConnectionCount" value="${proxool.minimumConnectionCount}" /> <!-- 最大连接数 (默认10个) --> <property name="maximumConnectionCount" value="${proxool.maximumConnectionCount}" /> <!-- 连接最长时间(默认为4个小时) --> <property name="maximumConnectionLifetime" value="${proxool.maximumConnectionLifetime}" /> <!-- 数据库别名 --> <property name="alias" value="${proxool.alias}" /> <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 默认30秒) --> <property name="houseKeepingSleepTime" value="${proxool.hourseKeepingSleepTime}" /> 求大神给看一下 自己找了很久 曾百度说是数据库8个小时断开连接 按这个结果也试了 还是报
数据库连接池报错问题
数据库连接池信息 <!-- 数据源配置, 使用proxool连接池 --> <bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource"> <property name="alias" value="BAP database" /> <property name="driver" value="${jdbc.driver}" /> <property name="driverUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <!-- 最少保持的空闲连接数 --> <property name="prototypeCount" value="2" /> <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁,默认30秒,我们设置60秒 --> <property name="houseKeepingSleepTime" value="60000" /> <!-- 最大活动时间(超过此时间线程将被kill,默认5分钟) --> <!-- <property name="maximumActiveTime" value=""/> --> <!-- 最小连接数据 --> <property name="minimumConnectionCount" value="${jdbc.minConnection}" /> <!-- 最大连接数 --> <property name="maximumConnectionCount" value="${jdbc.maxConnection}" /> <!-- 测试的sql语句 --> <property name="houseKeepingTestSql" value="${jdbc.testSQL}" /> </bean> 现在项目启动报错,mysql已修改timeout时间,因为是在别人项目基础上改动,不考虑还c3p0连接池,该如何修改求大神指点下![报错信息](https://img-ask.csdn.net/upload/201709/14/1505361116_456865.png)
虚拟主机上,hibernate的连接池如何配置
有这方面经验的,希望能指导一下,最好能给出C3PO的配置,或者proxool的配置,如果能解决,分数全部奉上,谢谢: 下面的配置不行,而且修改了几个类似参数也不行,最好能说明原因 <!-- 最大连接数 --> <property name="hibernate.c3p0.max_size">20</property> <!-- 最小连接数 --> <property name="hibernate.c3p0.min_size">5</property> <!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 --> <property name="hibernate.c3p0.timeout">120</property> <!-- 最大的PreparedStatement的数量 --> <property name="hibernate.c3p0.max_statements">100</property> <!-- 每隔120秒检查连接池里的空闲连接 ,单位是秒--> <property name="hibernate.c3p0.idle_test_period">120</property> <!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 --> <property name="hibernate.c3p0.acquire_increment">2</property> <!-- 每次都验证连接是否可用 --> <property name="hibernate.c3p0.validate">true</property> 这个也不行: <?xml version="1.0" encoding="utf-8"?> <something-else-entirely> <proxool> <alias>pool1</alias> <!--proxool只能管理由自己产生的连接--> <driver-url>jdbc:mysql://mysql5-g4.xincache.cn/net87731018?userUnicode=true&amp;characterEncoding=utf-8</driver-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <driver-properties> <property name="user" value="net87731018"/> <property name="password" value="Ov0bkzQl"/> </driver-properties> <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁--> <house-keeping-sleep-time>10000</house-keeping-sleep-time> <!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受--> <maximum-new-connections>10</maximum-new-connections> <!-- 最少保持的空闲连接数--> <prototype-count>0</prototype-count> <!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定--> <maximum-connection-count>10</maximum-connection-count> <!-- 最小连接数--> <minimum-connection-count>0</minimum-connection-count> <!-- 最大有效时间 --> <maximum-active-time>10000</maximum-active-time> <!-- 使用前测试 --> <test-before-use>true</test-before-use> <!-- 测试语句 --> <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql> </proxool> </something-else-entirely> 用正常的jdbc能登陆上也能连接上,用hibernate不行,有时候报SELECT command denied to user 之类的的异常,提示没有权限,有时候报什么异常,我还得测测 附虚拟主机的mysql参数: auto increment increment 1 auto increment offset 1 automatic sp privileges ON back log 50 basedir /usr/local/mysql5/ binlog cache size 32,768 bulk insert buffer size 8,388,608 character set client utf8 (全局值) gbk character set connection utf8 (全局值) gbk character set database gbk character set filesystem binary character set results utf8 (全局值) gbk character set server gbk character set system utf8 character sets dir /usr/local/mysql5/share/mysql/charsets/ collation connection utf8_general_ci (全局值) gbk_chinese_ci collation database gbk_chinese_ci collation server gbk_chinese_ci completion type 0 concurrent insert 1 connect timeout 5 datadir /home/mysqldb/var/ date format %Y-%m-%d datetime format %Y-%m-%d %H:%i:%s default week format 0 delay key write ON delayed insert limit 100 delayed insert timeout 300 delayed queue size 1,000 div precision increment 4 engine condition pushdown OFF expire logs days 0 flush OFF flush time 0 ft boolean syntax + -><()~*:""&| ft max word len 84 ft min word len 4 ft query expansion limit 20 ft stopword file (built-in) group concat max len 1,024 have archive NO have bdb NO have blackhole engine NO have compress YES have crypt YES have csv NO have dynamic loading NO have example engine NO have federated engine NO have geometry YES have innodb YES have isam NO have merge engine YES have ndbcluster NO have openssl NO have ssl NO have query cache YES have raid NO have rtree keys YES have symlink YES hostname IDC-D-1918 init connect init file init slave innodb additional mem pool size 1,048,576 innodb autoextend increment 8 innodb buffer pool awe mem mb 0 innodb buffer pool size 8,388,608 innodb checksums ON innodb commit concurrency 0 innodb concurrency tickets 500 innodb data file path ibdata1:10M:autoextend innodb data home dir innodb doublewrite ON innodb fast shutdown 1 innodb file io threads 4 innodb file per table OFF innodb flush log at trx commit 1 innodb flush method innodb force recovery 0 innodb lock wait timeout 50 innodb locks unsafe for binlog OFF innodb log arch dir innodb log archive OFF innodb log buffer size 1,048,576 innodb log file size 5,242,880 innodb log files in group 2 innodb log group home dir ./ innodb max dirty pages pct 90 innodb max purge lag 0 innodb mirrored log groups 1 innodb open files 300 innodb rollback on timeout OFF innodb support xa ON innodb sync spin loops 20 innodb table locks ON innodb thread concurrency 8 innodb thread sleep delay 10,000 interactive timeout 28,800 join buffer size 131,072 key buffer size 536,870,912 key cache age threshold 300 key cache block size 1,024 key cache division limit 100 language /usr/local/mysql5/share/mysql/english/ large files support ON large page size 0 large pages OFF lc time names en_US license GPL local infile ON locked in memory OFF log OFF log bin OFF log bin trust function creators OFF log error log queries not using indexes OFF log slave updates OFF log slow queries ON log warnings 1 long query time 10 low priority updates OFF lower case file system OFF lower case table names 0 max allowed packet 1,047,552 max binlog cache size 4,294,967,295 max binlog size 1,073,741,824 max connect errors 10 max connections 800 max delayed threads 20 max error count 64 max heap table size 16,777,216 max insert delayed threads 20 max join size 4,294,967,295 max length for sort data 1,024 max prepared stmt count 16,382 max relay log size 0 max seeks for key 4,294,967,295 max sort length 1,024 max sp recursion depth 0 max tmp tables 32 max user connections 20 max write lock count 4,294,967,295 multi range count 256 myisam data pointer size 6 myisam max sort file size 2,147,483,647 myisam recover options OFF myisam repair threads 1 myisam sort buffer size 67,108,864 myisam stats method nulls_unequal net buffer length 16,384 net read timeout 30 net retry count 10 net write timeout 60 new OFF old passwords OFF open files limit 65,536 optimizer prune level 1 optimizer search depth 62 pid file /home/mysqldb/var/IDC-D-1918.pid port 3,306 preload buffer size 32,768 profiling OFF profiling history size 15 protocol version 10 query alloc block size 8,192 query cache limit 1,048,576 query cache min res unit 4,096 query cache size 67,108,864 query cache type ON query cache wlock invalidate OFF query prealloc size 8,192 range alloc block size 2,048 read buffer size 2,093,056 read only OFF read rnd buffer size 262,144 relay log purge ON relay log space limit 0 rpl recovery rank 0 secure auth OFF secure file priv server id 1 skip external locking ON skip networking OFF skip show database OFF slave compressed protocol OFF slave load tmpdir /tmp/ slave net timeout 3,600 slave skip errors OFF slave transaction retries 10 slow launch time 2 socket /tmp/mysql.sock sort buffer size 4,194,296 sql big selects ON sql mode sql notes ON sql warnings OFF ssl ca ssl capath ssl cert ssl cipher ssl key storage engine MyISAM sync binlog 0 sync frm ON system time zone CST table cache 2,048 table lock wait timeout 50 table type MyISAM thread cache size 8 thread stack 196,608 time format %H:%i:%s time zone SYSTEM timed mutexes OFF tmp table size 33,554,432 tmpdir /tmp/ transaction alloc block size 8,192 transaction prealloc size 4,096 tx isolation REPEATABLE-READ updatable views with limit YES version 5.0.45-log version comment Source distribution version compile machine i686 version compile os pc-linux-gnu wait timeout 10
hibernate中单向多对一的关联疑惑(管理员勿将帖子转到问答,那里不好交流)
本人初学hibernate,希望大家多多指教! <br />我假设person和card的多对一的关系(实际这两者的关系不是多对一) <br />他们对应的映射文件是: <br /><strong>person.hbm.xml</strong> <br /><pre name="code" class="xml"><!----> &lt;hibernate-mapping schema="hibernatequickuse"&gt; &lt;class name="mypack.person" table="person"&gt; &lt;id name="id" column="id" type="java.lang.Integer"&gt; &lt;generator class="identity"&gt; &lt;/id&gt; &lt;property name="name" column="name" type="java.lang.String" not-null="true"&gt;&lt;/property&gt; &lt;many-to-one name="mycard" column="card_id" class="mypack.Card" cascade="all"&gt;&lt;/many-to-one&gt; &lt;/class&gt; &lt;/hibernate-mapping&gt; </pre> <br /><strong>Card.hbm.xml</strong> <br /><pre name="code" class="xml"><!----> &lt;hibernate-mapping&gt; &lt;class name="mypack.Card" table="card"&gt; &lt;id name="id" column="ID" type="java.lang.Integer"&gt; &lt;generator class="identity"&gt; &lt;/id&gt; &lt;property name="name" column="NAME" type="java.lang.String" not-null="true"&gt;&lt;/property&gt; &lt;/class&gt; &lt;/hibernate-mapping&gt; </pre> <br />假设当我们先把many-to-one中的cascade属性值去掉,改为: <br /><pre name="code" class="xml">&lt;many-to-one name="mycard" column="card_id" class="mypack.Card"&gt;&lt;/many-to-one&gt; </pre> <br />然后执行如下代码: <br /><pre name="code" class="java"> person p=new person(); p.setName("jack01"); Card c=new Card(); c.setName("card0031"); p.setMycard(c); Session session=null; Transaction tran=null; try{ session=factory.openSession(); tran=session.beginTransaction(); session.save(p);//为什么是update,而不是Insert tran.commit(); 。。。。。。。 </pre> <br />执行结果本来应该会报一个异常,因为只持久化了person对象。而card是临时对象,所以当hibernate自动清理缓存中的持久化对象时会发现p引用了c临时对象,而在person表中对应的card_id字段值为0,这说明person持久化对象的状态和数据库的记录不一致,所以应该会抛出异常!但是它却并没有抛出异常, <br />而是插入了一条person记录,其card_id=0这是为什么??? <br /><pre name="code" class="sql">Hibernate: insert into hibernatequickuse.person (name, card_id) values (?, ?)</pre> <br />当我把cascade="all"加上去之后,本来这时应该是先插入card记录,然后插入Person记录。但结果却是: <br /><pre name="code" class="sql">Hibernate: insert into hibernatequickuse.person (name, card_id) values (?, ?) Hibernate: update card set NAME=? where ID=? </pre> <br />而且抛出异常,表示无法更新!这又是为什么???????? <br /><pre name="code" class="java">Exception executing batch: org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1 </pre> <br /><strong>表结构如下:</strong> <br /><pre name="code" class="sql">-- -- 表的结构 `card` -- CREATE TABLE `card` ( `id` int(11) NOT NULL auto_increment, `name` varchar(20) collate latin1_general_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=7 ; CREATE TABLE `person` ( `id` int(11) NOT NULL auto_increment, `name` varchar(32) collate latin1_general_ci NOT NULL, `card_id` int(11) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `card_id` (`card_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=4 ; </pre> <br /><strong>POJO如下:</strong> <br /><strong>person</strong> <br /><pre name="code" class="java">package mypack; public class person implements java.io.Serializable{ private int id; private String name; private Card mycard; public person(){ } private void setId(int id){ this.id=id; } public void setName(String name){ this.name=name; } public void setMycard(Card mycard){ this.mycard=mycard; } public int getId(){ return this.id; } public String getName(){ return this.name; } public Card getMycard(){ return this.mycard; } } </pre> <br /> <br /><strong>Card</strong> <br /><pre name="code" class="java">package mypack; public class Card { private int id; private String name; public Card(){ } public void setId(int id){ this.id=id; } public void setName(String name){ this.name=name; } public String getName(){ return this.name; } public int getId(){ return this.id; } } </pre> <br /> <br /><br /><strong>问题补充</strong><br />补充下:我是参照网友的教程来做的,地址是:http://ryanpoy.iteye.com/blog/189783 <br />奇怪的是他的结果是正确的!程序里面唯一不同的是我主键的设置上,我用的是auto_increment,映射xml中用的是identity! <br /> <br /><br /><strong>问题补充:</strong><br />谢谢kulinglei的回答,问题是我将cascade="save-update"; 它也没报任何异常啊,正常的情况应该是会报你所说的异常啊 !我把源码上传下,能帮我看看吗?<br /><strong>问题补充:</strong><br />这是源码,希望大家帮帮忙!<br /><strong>问题补充:</strong><br />谢谢etank帮忙,但我也用的是hibernate3的包,并且把identity改为了native。把cascade设为none,结果还是没报任何异常啊?我用的是mysql的数据库
ext分页,后台如何处理?
我是根据查询条件从数据库中取出满足条件的数据,保存到list中,用了json-plugin插件,所以直接把从数据返回的List类型数据赋值给List类型的参数items直接传到前台gridpanel中的root接收。我现在想实现的是根据查询的结果进行分页显示,如图,我得到12条结果,我现在想每页显示5条,我现在不知道怎样根据start和limit参数来处理。在网上搜了很多,始终搞不清楚原理。 [color=red][size=medium]这里是grid定义[/size][/color] [code="java"] //定义数据集对象 var store = new Ext.data.Store({//配置分组数据集 baseParams : { infoLinkman :'' }, reader: new Ext.data.JsonReader({ totalRecords : "results", totalProperty: "results", root : "items", fields : [ {name: 'id'}, {name: 'infoType'}, {name: 'infoTitle'}, {name: 'infoContent'}, {name: 'infoLinkman'}, {name: 'infoPhone'}, {name: 'infoEmail'}, {name: 'infoDate'}, {name: 'infoState'}, {name: 'infoPayfor'} ] }), proxy : new Ext.data.HttpProxy({ url : 'ShowList.action' }) }); store.load({ params : { start : 0, limit : 5 } }); var sm = new Ext.grid.CheckboxSelectionModel(); var cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), sm, {header: "ID", width: 100, dataIndex: 'id', sortable: true}, {header: "信息类别", width: 100, dataIndex: 'infoType', sortable: true}, {header: "信息标题", width: 100, dataIndex: 'infoTitle', sortable: true}, {header: "信息内容", width: 100, dataIndex: 'infoContent', sortable: true}, {header: "联系人", width: 100, dataIndex: 'infoLinkman', sortable: true}, {header: "联系电话", width: 100, dataIndex: 'infoPhone', sortable: true}, {header: "E-mail地址", width: 100, dataIndex: 'infoEmail', sortable: true}, {header: "发布时间", width: 130, dataIndex: 'infoDate', sortable: true}, {header: "审核状态", width: 100, dataIndex: 'infoState', sortable: true}, {header: "付费状态", width: 100, dataIndex: 'infoPayfor', sortable: true}]); //创建Grid表格组件 var grid = new Ext.grid.GridPanel({ title : '列表', applyTo : 'grid-div', width:1200, height:400, frame:true, store : store, cm : cm, sm : sm, tbar : [{ xtype : 'tbtext', text : '联系人查询' }, { xtype : 'textfield', id : 'infoLinkman', emptyText : '联系人', width : 100 }, { xtype : 'button', text : '查询', handler:find }, '-', { xtype : 'button', text : '添加', handler:add }, '-', { xtype : 'button', text : '编辑', handler:update }, '-', { xtype : 'button', text : '删除', handler:remove }], bbar : new Ext.PagingToolbar({//分页工具栏 store : store, pageSize : 5, displayInfo : true, displayMsg : '第 {0} 条到 {1} 条,一共 {2} 条', emptyMsg : "没有记录" }) }); [/code] [color=red][size=medium]这里是查询函数[/size][/color] [code="java"] function find() { var store = new Ext.data.Store({//配置分组数据集 baseParams : { infoLinkman : Ext.getCmp('infoLinkman').getValue() }, reader: new Ext.data.JsonReader({ totalRecords : "results", root : "items", fields : [ {name: 'id'}, {name: 'infoType'}, {name: 'infoTitle'}, {name: 'infoContent'}, {name: 'infoLinkman'}, {name: 'infoPhone'}, {name: 'infoEmail'}, {name: 'infoDate'}, {name: 'infoState'}, {name: 'infoPayfor'} ] }), proxy : new Ext.data.HttpProxy({ url : 'ShowList.action' }) }); store.load({ params : { start : 0, limit : 5 } }); grid.reconfigure(store, cm); } [/code] [color=red][size=medium]这里是action[/size][/color] [code="java"] public class ShowListAction extends ActionSupport { private String infoLinkman; private long results; private List items; String start; String limit; public String execute() throws Exception{ this.results = 20; // int top1=Integer.parseInt(start); // int top2=Integer.parseInt(limit); Object[] params={infoLinkman}; String sql="SELECT * FROM tb_info WHERE (info_linkman=?) ORDER BY info_date ASC"; OpDB myOp=new OpDB(); System.out.println(infoLinkman); items=myOp.OpListShow(sql, params); return SUCCESS; } } [/code] [b]问题补充:[/b] 若后台是sql server 2000 sql语句该怎么写呢?好像用mysql的话这个问题比较好解决。还有我那个查询条件 联系人的参数我通过查询按钮在find方法里传过去,但我要点击下一页按钮的话文本框里的这个参数好像就传不过去了,每次传递的参数只是limit和start,这个查询条件参数带不过去。这个参数该怎么传递呢,在更新页码的时候? [b]问题补充:[/b] 现在就不处理吧,但是他也没有自动分页啊,12条数据他是全部显示出来了啊 [b]问题补充:[/b] [quote]来进行分页,不过要用两条select语句联合起来用[/quote] 比如总共12条数据,去6-10条,sql怎么写呢? [b]问题补充:[/b] [color=red][size=medium] 现在的问题是,我想根据查询条件得到结果,并将符合条件的结果条数动态的传给results。我在第一次显示gridpanel时它就调用了action,因为没有参数联系人参数传入,执行sql语句后满足条件的是0条,这时results值就被赋值0,因此页数就只有一页。此时我再点击查询按钮查询,可以得到第一页的前五条数据,但下面的分页按钮只有一页,无法点击下一页。<br> 第二个问题,即使现在可以点击下一页,那又怎样才能将我的查询条件这个参数带过去呢,不然返回的还是零条。<br> 第三个问题,即使现在点击第二页按钮时,可以返回第6-10条数据,但根据下面的摄sql语句,由于是用id进行分页的,而id是没有重复的,查询操作会直接前5条记录去除,从数据库的第6条开始查询满足条件的记录,而这必然会使第二页得到的内容会与第一页的内容有可能重复(若前5页没有符合条件的内容的话,第1页和第2页内容就会完全一样。)<br> [color=brown][/color] [/size][size=small]谢谢各位热心解答,问题讲得很啰嗦,不知道讲清楚没有,我基础不太好,这个问题搞了好久也没弄出个所以然来,实在不知道怎么办了。[/size][/color] [code="java"] public String execute() throws Exception{ int top1=Integer.parseInt(start); int top2=Integer.parseInt(limit); Object[] params={infoLinkman}; // String sql="SELECT * FROM tb_info WHERE (info_linkman=?) ORDER BY info_date ASC"; String sql = "select top "+top2+" * from tb_info where (info_linkman=?)and (id not in (select top "+top1+" id from tb_info order by id asc )) order by id asc"; // String sql = "select top 5 * from tb_info where (info_linkman=?)and (id not in (select top 10 id from tb_info order by id asc )) order by id asc"; OpDB myOp=new OpDB(); items=myOp.OpListShow(sql, params); String sql2="select count(*) count from tb_info where (info_linkman=?)"; results = myOp.getUserCount(sql2, params); // results=11; System.out.println("符合条件记录条数:"+results); System.out.println(infoLinkman); return SUCCESS; } [/code] [b]问题补充:[/b] 加上那段代码后提示[color=red]Ext.getCmp("infoLinkman") is undefined [/color] 其实就是想根据查询条件得到结果集合,但是如果数据量很大,就需要分页,现在这个分页很难实现吗,这个应该也是很常见的需求吧 [b]问题补充:[/b] [size=medium][color=red]奇怪,上次补充的问题不见了。前段时间网络一直不好。我把load和beforeload函数放到gridpanel定义后结果就正常了,不报错。 现在我把results定死,赋值为11,这样初始分页栏会显示有3页,第一页显示根据查询条件得到的5个结果,点击第二页时,从后台看,action可以得到查询参数并返回5条结果,但是gridpanel里的数据并没有更新,现在的问题是如何让gridpanel根据每次返回的数据动态更新表格。[/color][/size] [b]问题补充:[/b] [color=red][size=small]第一次默认返回数据为:{"[/[/size]color]infoLinkman":"","infoType":null,"items":[],"limit":"5","results":11,"start":"0"} [color=red][size=small]第二次根据查询数据得到数据为:{"[/[/size]color]infoLinkman":"鑺宠姵","infoType":null,"items":[{"[color=red]id[/color]":114,"infoContent":"姹傝喘淇℃伅鍐呭","infoDate":"2007-12-26 11:47:46","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"姹傝喘淇℃伅鏍囬","infoType":4},{"id":115,"infoContent":"鎷涘晢寮曡祫鍐呭","infoDate":"2007-12-26 11:51:54","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"鎷涘晢寮曡祫鏍囬","infoType":5},{"id":116,"infoContent":"鍏瘬淇℃伅鍐呭","infoDate":"2007-12-26 11:52:36","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"鍏瘬淇℃伅鏍囬","infoType":6},{"id":117,"infoContent":"姹傝亴淇℃伅鍐呭","infoDate":"2007-12-26 11:53:03","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"姹傝亴淇℃伅鏍囬","infoType":7},{"id":118,"infoContent":"瀹舵暀淇℃伅鍐呭","infoDate":"2007-12-26 11:53:40","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"瀹舵暀淇℃伅鏍囬","infoType":8}],"limit":"5","results":11,"start":"0"} [size=small][color=red]点击第二页后得到数据为:[/color][/size] {"infoLinkman":"鑺宠姵","infoType":null,"items":[{"[color=red]id[/color]":116,"infoContent":"鍏瘬淇℃伅鍐呭","infoDate":"2007-12-26 11:52:36","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"鍏瘬淇℃伅鏍囬","infoType":6},{"id":117,"infoContent":"姹傝亴淇℃伅鍐呭","infoDate":"2007-12-26 11:53:03","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"姹傝亴淇℃伅鏍囬","infoType":7},{"id":118,"infoContent":"瀹舵暀淇℃伅鍐呭","infoDate":"2007-12-26 11:53:40","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"瀹舵暀淇℃伅鏍囬","infoType":8},{"id":119,"infoContent":"杞﹁締淇℃伅鍐呭","infoDate":"2007-12-26 11:54:05","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"杞﹁締淇℃伅鏍囬","infoType":9},{"id":120,"infoContent":"鍑哄敭淇℃伅鍐呭","infoDate":"2007-12-26 11:54:41","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"鍑哄敭淇℃伅鏍囬","infoType":10}],"limit":"5","results":11,"start":"5"} [size=small][color=red]grid定义:[/color][/size] [code="java"]var grid = new Ext.grid.GridPanel({ title : '列表', applyTo : 'grid-div', width:1200, height:500, frame:true, store : store, cm : cm, sm : sm, tbar : [{ xtype : 'tbtext', text : '联系人查询' }, { xtype : 'textfield', id : 'infoLinkman', emptyText : '联系人', width : 100 }, { xtype : 'button', text : '查询', handler:find }, '-', { xtype : 'button', text : '添加', handler:add }, '-', { xtype : 'button', text : '编辑', handler:update }, '-', { xtype : 'button', text : '删除', handler:remove }], bbar : new Ext.PagingToolbar({//分页工具栏 store : store, pageSize : 5, displayInfo : true, displayMsg : '第 {0} 条到 {1} 条,一共 {2} 条', emptyMsg : "没有记录" }) }); store.on('beforeload', function() { //Ext.data.JsonStore读入数据之前的事件,让store在读入数据之前设置参数。 this.baseParams = { infoLinkman : Ext.getCmp('infoLinkman').getValue() }; }); store.load({ params : { start : 0, limit : 5 } }); grid.reconfigure(store, cm);[/code] [b]问题补充:[/b] 这句代码加不加都一样没反应 [b]问题补充:[/b] store内容怎么检查啊,不会啊 [b]问题补充:[/b] [size=medium][color=blue]这个问题先放一放了,以后再接着研究。谢谢所有热心的朋友。[/color][/size]
终于明白阿里百度这样的大公司,为什么面试经常拿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怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
《阿里巴巴开发手册》读书笔记-编程规约
Java编程规约命名风格 命名风格 类名使用UpperCamelCase风格 方法名,参数名,成员变量,局部变量都统一使用lowerCamelcase风格 常量命名全部大写,单词间用下划线隔开, 力求语义表达完整清楚,不要嫌名字长 ...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
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 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
听说想当黑客的都玩过这个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的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
为什么听过很多道理,依然过不好这一生?
记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Linux 命令(122)—— watch 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] watch(1) manual
Linux 命令(121)—— cal 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] cal(1) manual
记jsp+servlet+jdbc实现的新闻管理系统
1.工具:eclipse+SQLyog 2.介绍:实现的内容就是显示新闻的基本信息,然后一个增删改查的操作。 3.数据库表设计 列名 中文名称 数据类型 长度 非空 newsId 文章ID int 11 √ newsTitle 文章标题 varchar 20 √ newsContent 文章内容 text newsStatus 是否审核 varchar 10 news...
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧...... 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升
新来个技术总监,禁止我们使用Lombok!
我有个学弟,在一家小型互联网公司做Java后端开发,最近他们公司新来了一个技术总监,这位技术总监对技术细节很看重,一来公司之后就推出了很多"政策",比如定义了很多开发规范、日志规范、甚至是要求大家统一使用某一款IDE。 但是这些都不是我这个学弟和我吐槽的点,他真正和我吐槽的是,他很不能理解,这位新来的技术总监竟然禁止公司内部所有开发使用Lombok。但是又没给出十分明确的,可以让人信服的理由。 于...
前端JS初级面试题二 (。•ˇ‸ˇ•。)老铁们!快来瞧瞧自己都会了么
1. 传统事件绑定和符合W3C标准的事件绑定有什么区别? 传统事件绑定 &lt;div onclick=""&gt;123&lt;/div&gt; div1.onclick = function(){}; &lt;button onmouseover=""&gt;&lt;/button&gt; 注意: 如果给同一个元素绑定了两次或多次相同类型的事件,那么后面的绑定会覆盖前面的绑定 (不支持DOM事...
2020金三银四,一篇文章教你如何征服面试官,拿到offer
2020年,跳槽面试就靠它们了,现在每天刷题,看源码文档,最近看的这些题目还是有些难度,有一部分我都要好好想一想才能回答出来,或者回答不出来,总的来说知识宽度够了深度还跟不上。所以要重点突破下底层的东西。这篇文章我总结了很久,希望对正在准备面试的同仁们有点帮助。没错我就是传说中的面霸!! 一. 面试准备 首先,是笔试题,这点是初级程序员绕不过去的坎。 笔试题一般的公司都会出的,除非你是大牛,可以选...
相关热词 c#导入fbx c#中屏蔽键盘某个键 c#正态概率密度 c#和数据库登陆界面设计 c# 高斯消去法 c# codedom c#读取cad文件文本 c# 控制全局鼠标移动 c# temp 目录 bytes初始化 c#
立即提问