sqlserver插入时间格式

阿里云服务器24小时制。getdate获取时间插入数据库显示12小时制。怎么解决。

1个回答

GetDate() 返回的时间是二进制值,不存在24/12小时制的说法。
只有前台界面显示时,才有显示格式的区别。
你可以在控制面板的区域属性中设置默认格式;也可以在表格控件的列格式上单独设置。
如果的确要取得24小时制的**字符串**,那么用 'Convert(varchar(30),GetDate(),120)` 转换。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
VS2008基于SQLSERVER数据库程序,WIN764上提示:请输入正确的日期或时间和?
VS2008编写基于SQLSERVER数据库程序,WIN764位机子上运行提示:请输入正确的日期或时间和,程序中用到DateTimePicker控件?是那个DatetimePicker控件出问题? 怎么回事? 在win732位机子上运行可以,win732和win764位机子安转的是同样的VS2008和SQLSERVER数据库
在用jdbctemplate查询SQLserver里的日期报空指针异常
我想根据id查询记录的插入时间,在做单元测试时报异常。 查询语句 ![图片说明](https://img-ask.csdn.net/upload/201701/19/1484813192_281117.png) addTime类型 ![图片说明](https://img-ask.csdn.net/upload/201701/19/1484813444_572707.png) 说明:框架为springboot+springMVC+SqlServer2008,用String类型保存的时间
SQLSERVER能为存储过程设置默认值吗?
现在的情况是这样 针对服务器旧版和新版 某一个存储过程中,旧版的输入参数只有3个,而新版的输入参数有5个。 我希望在执行该存储过程的时间,若输入参数只有三个(后面两个输入参数缺失)时, 该存储过程自动为后面两个缺失值的输入参数赋一个默认值。 请问可以只修改存储过程达到这目的的? 用的SQLSERVER是2005版的
sqlserver数据库,按照指定日期将表中对应时间段内的记录备份出去。
业务需求: ---------------------------------------------------- 数据库自2009年起有5年的数据量。 数据库只保存近两年的数据。比如 2012-01—01 ~ 2014-01-01 首先将 2010-01-01 ~ 2012-01-01 的数据保存到大文件夹里【比如 D:\2010年及2011年数据】,以月份命名各个文件夹【每个文件夹里有当月的所有表,表中有当月的记录】 后将 2010-01-01 ~ 2012-01-01 的数据从数据库中删除 然后每一个月的最后一天【例:2014-01-31 24:00:00 点一过,也就是2014-02-01 00:00:01时刻】, 将近两年的第一个月的信息【也就是:2012-01-01 ~ 2012-01-31 的信息备份到本地文件,命名格式『2012年1月备份信息』】。 然后将这个月的信息【2012年1月】从数据库中删除. 从而实现数据库中只保存近二年的数据。 月底自动触发脚本【ssis,dts,维护计划?】。 **碰到的问题:** ---------------------------------------------------- 碰到了一个棘手的问题: 这样的备份方式需要所有的表有一个日期,这样才好分别哪些记录是2010年1月的,哪些记录是2010年2月的,从而进行备份以及删除。 **---解决方法1:** 首先,前些时候的数据手工备份,留下二年的数据。 因为所有的记录都在同一张表里,如果没有日期这个东西加以区别,只能人工进行判断那些数据是指定月份的。 然后,添加一个日期操作表【根据实际情况要做修改】 id tableName recordId opTime 操作Id 被操作的表名 被操作的记录 操作时间 以后根据这个表来进行指定日期的数据备份。 **---解决方法2:** 根据数据库日志文件进行判断,将日志文件通过某种方法转换成sql可查询的格式,根据日志,截取表名称及插入的记录和时间,根据日期进行对相应的表记录进行备份。 **---更好的解决方法3: ????**
C#winform程序,需要录入分秒毫秒数据到SQLserver数据库,请问界面和数据库分别怎么设计
做一个管理运动员百米冲刺成绩和3000米成绩的winform程序,想录入分,秒,毫秒数据到SQLserver数据库。 问题1,什么控件支持录入分秒毫秒数据?或者用输入框的话什么格式能准确的录入到数据库中? 问题2,数据库用什么数据类型?可以方便的实现排序,就是按照时间长短排名,不需要年月日,只需要分,秒,毫秒。连小时都不需要,因为3000米跑下来也就是十几分钟的事情。而百米冲刺又要求有毫秒级别的记录。
帮忙SQLSERVER通过存储写ORACLE语句优化
这个 问题放错大类了 不会移动 现在有这个需求 从sqlserver里查出数据进行简单的出来后 插入oracle表中 我写好的个存储但是运行的时候感觉效率特别慢 谁能帮我把下面的 语句优化下 存储在sqlserver这边 if Exists(select name from sysobjects where name='ZHIJIAN_BANZHENG_INIT' and type='P') drop procedure ZHIJIAN_BANZHENG_INIT go create PROCEDURE ZHIJIAN_BANZHENG_INIT as DECLARE @zch varchar(30), --长度根据实际长度修改 @jgdm varchar(30), @jgmc varchar(250), @jglx varchar(30), @bzrq datetime, @body varchar(500), @date varchar(10), @uid varchar(30) set @date =convert(char(10),getdate(),120) --获得当前日期 declare cursor2 cursor for --定义游标cursor1 select zch,jgdm,jgmc,jglx,bzrq from jgdm where jglx='1' --使用游标的对象(跟据需要填入select语句) open cursor2 -- fetch cursor2 --into @name,@party_id --打开游标 WHILE 1=1 --判断是否成功获取数据 begin fetch next from cursor2 into @zch,@jgdm,@jgmc,@jglx,@bzrq --将游标向下移1行 if(@@FETCH_STATUS =-1) break SET @uid=CAST(CAST(NEWID() as nvarchar(36)) + CAST(GETDATE() as varchar(3)) as varchar(30)) set @body='{"QYZCH":'+@zch+ --封装为JSON格式 '","ZZJGDM":"'+@jgdm+ '","JGMC":'+@jgmc+ '","JGZCLX":"'+@jglx+ '","BZRQ":"'+CONVERT (varchar(8),@bzrq,112) +'"}' --print(@body) insert into [127.0.0.1]..[JXWFRONT].[DATA_TEMP_REPORT] values(@uid,'zhijian_banzheng',@body,'1',@date) --插入oracle数据库 如何优化 end close cursor2 --关闭游标 deallocate cursor2
mss sqlserver 查询每小时的数据
表名:TableName 字段名:Userid,V1,V2,V3,V4,V5,DacTime 查询昨天00:00整到23:59的数据 并判断每小时的数据条数是不是等于大于3条 小于三条的 话 就查询那个小时内的Userid是不是等于1,2,3 如果只有1,2 就查询上小时内的三条数据 吧Userid=3的数据插入到Userid只有1,2的时段内 DacTime修改为现在的时间
sqlServer sql语句执行后, 默认是怎么排序的
例如sql: select * from dbo.ST_ZVARL_B where stcd = '51111911' and rz > 20 表里没建索引和主键,执行后,结果好像是看记录插入时间来排序的,是这样?
java web Hibernate 乐观锁,不能显式插入时间戳错误该如何解决?
在SqlServer表中类型类timestamp的字段,在Hibernate.hbm.xml中主键字段下写了 <timestamp name="timestamp" column="timestamp"></timestamp> 在session.save(entity)时,报错:不能显式插入时间戳,如何将timestamp设置为不插入? hql中除了用save()方法,应该如何用insert语句来排除该字段,大神们能不能写出相关的语句来参考参考?
跪求高手指教:将此JAVA方法改写成sqlserver存储过程,
/** * 计算并保存遗漏值 * * @CreateDate Dec 16, 2013 - 2:48:44 PM * @param request */ @SuppressWarnings("unchecked") public void saveOmitValue(HttpServletRequest request) { // 获取当前日期 String date = DateUtils.formatDate(new Date()); // 获取前一天日期 String BeforeDay = DateUtils.getTheDayBeforeDay(); // 存储执行sql的变量 StringBuilder strBui = new StringBuilder(1000000); // 查询方案一列中最大的中奖号码的排列号需要的map Map<String, Object> map = new HashMap<String, Object>(); // 查询用sql StringBuilder sql = new StringBuilder(4000); // 查询用条件 StringBuilder searchCondition = new StringBuilder(4000); // 获取当前登录的用户 User user = (User) request.getSession().getAttribute(Constants.USER_KEY); // 获取开奖号对应的代码 String[] winningNoCode = request.getParameterValues("winningNoCode"); // 临时的前一天遗漏值 int temOmitValue = 0; // 得到查询条件 for (int k = 0; k < winningNoCode.length; k++) { if (k == 0) { searchCondition.append("(B.NO_MSG = " + winningNoCode[k] + " AND A.SCHEME_SEQ = " + (k + 1) + ")"); } searchCondition.append("OR(B.NO_MSG = " + winningNoCode[k] + " AND A.SCHEME_SEQ = " + (k + 1) + ")"); } // 删除当天的遗漏值记录 sql.append("DELETE OMIT_VALUE_COORD WHERE BET_MODEL_ID='" + user.getBetModelId() + "' AND CREATE_DATE='" + date + "'"); Pwfci.SQLdeleteValue(sql.toString()); // 查询前100条方案 sql.setLength(0); sql.append("select TOP 100 * from TWO_SCHEME_F WHERE DEL_FLAG = '1' AND BET_MODEL_ID = '" + user.getBetModelId() + "' ORDER BY ID"); List<TwoSchemeF> tsfs = (List<TwoSchemeF>) Pwfci.queryAllBySQL(sql.toString(), TwoSchemeF.class); for (TwoSchemeF tsf : tsfs) { System.out.println("计算遗漏值时间--Bengin >>>>>>> "+DateUtils.formatDateTime(new Date())); // 和值方案遗漏值插入 if (tsf.getType() == 1) { for (int j = 2; j < 112; j++) { // 查询方案一列中最大的中奖号码的排列号 sql.setLength(0); sql.append("SELECT MAX(A.SCHEME_SEQ) AS MAX_COUNT " + "FROM SCHEME_SEQ A LEFT JOIN IDENTIFY_NO B ON A.IDENTIFY_NO_XCOORD=B.XCOORD " + "AND B.CODE = " + tsf.getType() + " AND B.YIDENTIFY = " + j + " WHERE A.PID = " + tsf.getId() + " AND A.SCHEME_SEQ <= " + winningNoCode.length + " AND("); sql.append(searchCondition); sql.append(");"); map = Pwfci.getMapBySQL(sql.toString()); String maxCount = (String) map.get("MAX_COUNT"); // 如果等于空说明当天此方案此列没有中奖,遗漏值为开奖期数加上前一天的遗漏值 if (maxCount.equals("")) { // 查询前一天的遗漏值 sql.setLength(0); sql.append("SELECT OMIT_VALUE FROM OMIT_VALUE_COORD WHERE PID=" + tsf.getId() + " AND YCOORD = " + j + " AND CREATE_DATE = '" + BeforeDay + "' AND DEL_FLAG='1' AND BET_MODEL_ID='" + user.getBetModelId() + "'"); map = Pwfci.getMapBySQL(sql.toString()); temOmitValue = map.get("OMIT_VALUE") != null ? Integer.parseInt(map.get("OMIT_VALUE") .toString()) : 0; // 插入遗漏值 sql.setLength(0); sql.append("INSERT INTO OMIT_VALUE_COORD(ID,OMIT_VALUE,PID,YCOORD,DEL_FLAG," + "CREATE_DATE,BET_MODEL_ID) VALUES('" + UUID.randomUUID() + "'," + (winningNoCode.length + temOmitValue) + "," + tsf.getId() + "," + j + ",'1','" + date + "','" + user.getBetModelId() + "');"); strBui.append(sql); } else { // 如果不等于空,遗漏值为此排列号之后的总数 sql.setLength(0); sql.append("INSERT INTO OMIT_VALUE_COORD(ID,OMIT_VALUE,PID,YCOORD,DEL_FLAG," + "CREATE_DATE,BET_MODEL_ID) " + "SELECT '" + UUID.randomUUID() + "',COUNT(ID)," + tsf.getId() + "," + j + ",'1','" + date + "','" + user.getBetModelId() + "' FROM SCHEME_SEQ WHERE PID = " + tsf.getId() + " AND SCHEME_SEQ <= " + winningNoCode.length + " AND SCHEME_SEQ > " + maxCount + " ;"); strBui.append(sql); } } } // 差额方案遗漏值插入 if (tsf.getType() == 0) { for (int j = 0; j < 110; j++) { // 查询方案一列中最大的中奖号码的排列号 sql.setLength(0); sql.append("SELECT MAX(A.SCHEME_SEQ) AS MAX_COUNT " + "FROM SCHEME_SEQ A LEFT JOIN IDENTIFY_NO B ON A.IDENTIFY_NO_XCOORD=B.XCOORD " + "AND B.CODE = " + tsf.getType() + " AND B.YIDENTIFY = " + j + " WHERE A.PID = " + tsf.getId() + " AND A.SCHEME_SEQ <= " + winningNoCode.length + " AND("); sql.append(searchCondition); sql.append(");"); map = Pwfci.getMapBySQL(sql.toString()); String maxCount = (String) map.get("MAX_COUNT"); // 如果等于空说明当天此方案此列没有中奖,遗漏值为开奖期数加上前一天的遗漏值 if (maxCount.equals("")) { // 查询前一天的遗漏值 sql.setLength(0); sql.append("SELECT OMIT_VALUE FROM OMIT_VALUE_COORD WHERE PID=" + tsf.getId() + " AND YCOORD = " + j + " AND CREATE_DATE = '" + BeforeDay + "' AND DEL_FLAG='1' AND BET_MODEL_ID='" + user.getBetModelId() + "'"); map = Pwfci.getMapBySQL(sql.toString()); temOmitValue = map.get("OMIT_VALUE") != null ? Integer.parseInt(map.get("OMIT_VALUE") .toString()) : 0; // 插入遗漏值 sql.setLength(0); sql.append("INSERT INTO OMIT_VALUE_COORD(ID,OMIT_VALUE,PID,YCOORD,DEL_FLAG," + "CREATE_DATE,BET_MODEL_ID) VALUES('" + UUID.randomUUID() + "'," + (winningNoCode.length + temOmitValue) + "," + tsf.getId() + "," + j + ",'1','" + date + "','" + user.getBetModelId() + "');"); strBui.append(sql); } else { // 如果不等于空,遗漏值为此排列号之后的总数 sql.setLength(0); sql.append("INSERT INTO OMIT_VALUE_COORD(ID,OMIT_VALUE,PID,YCOORD,DEL_FLAG," + "CREATE_DATE,BET_MODEL_ID) " + "SELECT '" + UUID.randomUUID() + "',COUNT(ID)," + tsf.getId() + "," + j + ",'1','" + date + "','" + user.getBetModelId() + "' FROM SCHEME_SEQ WHERE PID = " + tsf.getId() + " AND SCHEME_SEQ <= " + winningNoCode.length + " AND SCHEME_SEQ > " + maxCount); strBui.append(sql); } } } System.out.println("计算遗漏值时间--End >>>>>>> "+DateUtils.formatDateTime(new Date())); Pwfci.SQLinsertValue(strBui.toString()); strBui.setLength(0); } }
jdbc执行SqlServer存储过程时 成功后返回结果集,执行失败后 return值的问题
最近遇到一个存储过程,由于接口不是很规范,由于执行成功和执行失败返回的结果不一致,求大神帮忙解答,只有这点c币了,全部奉上,贴代码; ``` CREATE PROCEDURE [dbo].[proc_phone_gh] ( @p_id char(12), --patient_id 患者ID @unit_sn varchar(7), --office_id 挂号科室编号 @request_date varchar(10), --czdate 挂号日期 @ampm char(1), --ampm 上/下午 @clinic_type varchar(2), --card_code 号源种类 @doctor_sn varchar(5), --doctor_id 医生编号,普通号可为空 @sequence smallint, --gh_sequence 就诊顺序号,手机app自行计算 @app_order varchar(30), --app_order 预约码 @app_type char(1) --cretificate_type 方式:1手机APP/2微信 ) AS declare @msg varchar(50), @record_sn int, @group_sn varchar(7), @mz_dept_no varchar(2), @opera varchar(5), @times int, @req_type varchar(2) , @gh_sequence smallint , @ledger_sn varchar(20) set @group_sn='' set @req_type='15' --挂号途径 13 手机app set @mz_dept_no='1' --是否是分院 begin transaction update mz_patient_mi set max_times= max_times+1 where patient_id=@p_id if @@error<>0 begin set @msg = '更新mz_patient_mi表失败' select @msg return_msg rollback transaction return 0 end set @times=(select max_times from mz_patient_mi where patient_id=@p_id) set @ledger_sn =(select max_ledger_sn from mz_patient_mi where patient_id=@p_id) begin select top 1 @record_sn =record_sn ,@gh_sequence=gh_sequence from gh_schedule where 1=1 and request_date=@request_date and ampm=@ampm and unit_sn=@unit_sn and isnull(doctor_sn,'') = @doctor_sn and clinic_type like @clinic_type and charindex('15',visit_req_type)>0 --挂号方式 and status_flag='0' order by abs(gh_sequence) insert into gh_appointment_external (app_order,name,sex,social_no,phone,gh_sequence,reg_time,request_date,visit_dept,doctor_code,ampm,clinic_type,req_type ,status,patient_id,times,phone2, source_type,import_date,import_opera,gh_record_sn,certificate_type) select @app_order,name,sex,social_no,home_tel as phone,@gh_sequence as gh_sequence,convert(varchar(20),getdate(),120) as reg_time,@request_date ,@unit_sn,case when isnull(@doctor_sn,'')='' then '-1' else @doctor_sn end as doctor_code,@ampm,@clinic_type,@req_type as req_type,'0' as status ,@p_id,@times,'00000000','手机App预约挂号' as source_type,convert(varchar(20),getdate(),120) as import_date,'' as import_opera,@record_sn as gh_record_sn,case when @app_type='1' then '2' when @app_type='2' then '3' end from view_mz_patient_mi where patient_id=@p_id if @@error<>0 or @@ROWCOUNT<1 begin set @msg='插入预约登记表gh_appointment_register失败!' select @msg return_msg rollback transaction return 0 end update gh_schedule set status_flag='1',req_type=@req_type where record_sn=@record_sn and gh_sequence=@gh_sequence and request_date=CONVERT(varchar(20), @request_date, 120 ) and unit_sn=@unit_sn and isnull(group_sn,'')=@group_sn and clinic_type =@clinic_type and isnull(ampm,'')=@ampm and charindex(@req_type,visit_req_type)>0 and mz_dept_no=@mz_dept_no if @@error<>0 or @@ROWCOUNT<1 begin set @msg = '更新gh_schedule表失败' select @msg return_msg rollback transaction return 0 end commit transaction end select isnull((select name from gh_zd_appointment_place where code =convert(varchar(7),@unit_sn)),(select comment from zd_unit_code where code =convert(varchar(7),@unit_sn))) as address,substring(convert(varchar,@request_date,120),1,11) +' '+ convert(varchar (20),dz_time1)+'至'+convert(varchar(20),dz_time2) as mtime , @gh_sequence xh ,@times times,@ledger_sn checkOuts from --gh_zd_appointment_place a, encounter_time h,gh_zd_clinic_type_query b where b.zj_flag *=h.charge_type and h.end_no>=@gh_sequence and h.begin_no<=@gh_sequence and h.ampm=convert(varchar(10),@ampm) and b.code=convert(char(10),@clinic_type) ``` 1.预约成功时返回最下面的一个结果集 ``` select isnull((select name from gh_zd_appointment_place where code =convert(varchar(7),@unit_sn)),(select comment from zd_unit_code where code =convert(varchar(7),@unit_sn))) as address,substring(convert(varchar,@request_date,120),1,11) +' '+ convert(varchar (20),dz_time1)+'至'+convert(varchar(20),dz_time2) as mtime , @gh_sequence xh ,@times times,@ledger_sn checkOuts from --gh_zd_appointment_place a, encounter_time h,gh_zd_clinic_type_query b where b.zj_flag *=h.charge_type and h.end_no>=@gh_sequence and h.begin_no<=@gh_sequence and h.ampm=convert(varchar(10),@ampm) and b.code=convert(char(10),@clinic_type) ``` 2.执行失败时,返回return值,和return_msg信息; 3.jdbc代码如下: String storedProc = "{call proc_phone_gh(?,?,?,?,?,?,?,?,?)}"; CallableStatement cs = con.prepareCall(storedProc); cs.setString(1, (String)proParams[0]); cs.setString(2, (String)proParams[1]); cs.setString(3, (String)proParams[2]); cs.setString(4, (String)proParams[3]); cs.setString(5, (String)proParams[4]); cs.setString(6, (String)proParams[5]); cs.setInt(7, (Integer)proParams[6]); cs.setString(8, (String)proParams[7]); cs.setString(9, (String)proParams[8]); ResultSet rs = cs.executeQuery(); ``` 执行到ResultSet rs = cs.executeQuery();时,报异常:该语句没有结果集,该语句在数据库里可以执行也可以得到结果集。 请问各位大神们,如何获取到成功的结果集 和失败时的return值和return_msg???????????在线等,求助!!!!!!!!!!!!!! ```
请教一个插入的sql语句!
task表中现有数据: pid id parentid name start finish 2000 5743 0 2000年数据1 2009-8-27 2009-8-27 2000 5744 5743 2000年数据2 2009-8-27 2009-8-29 sequence表中: type 2744 当我需要插入这样的新数据时(比如是2009年8月28号插入的): 子件号 父件号 周期 2001年数据1 1天 2001年数据2 2001年数据1 4天 该怎么实现才能插入上面的新数据后task表中的数据如下: pid id parentid name start finish 2000 5743 0 2000年数据1 2009-8-27 2009-8-27 2000 5744 5743 2000年数据2 2009-8-27 2009-8-27 2001 5745 0 2001年数据1 2009-8-28 2009-8-29 2001 5746 5745 2001年数据2 2009-8-28 2009-9-1 2001的id号是取sequence表type+1,然后将后面的数据id值依次变成新值,请教! [b]问题补充:[/b] 谢谢关注,三个回复: 1. 我用的数据库是sqlserver2000 2. 数据库中与start和finish的类型是日期型(也就是date). 3.数据是从数据库里另一个表获得的。 [b]问题补充:[/b] 请教各位高手! [b]问题补充:[/b] 可是id和parentid怎么写sql语句才能实现呢? [b]问题补充:[/b] 十分感谢你的回复,有个问题请教一下:我将id+1后,这时候要改变parentuid的值,是根据什么条件呢? update parentuid=id from task where name='2001年数据1' 可我是一万条数据的插入?会不会在效率上太差了? [b]问题补充:[/b] 谢谢你提供的思路,那如果我一次插入一万条数据,在task上建立name的索引,能达到比较好的效率吗?
插入1w条数据不报错,但是插入2w条数据时候报错,为什么呢?
&nbsp;&nbsp; 我用jdbc做了个定时更新数据库的功能,当插入1w条数据时候没点问题,当插入2w条数据时候,就报连接超时的错误接着,但是程序还是没有挂掉,不知道是什么原因就解? <br />&nbsp;&nbsp;&nbsp; [code='java'] <br />&nbsp;&nbsp;&nbsp; package com.jgre.org; <br /> <br />import java.sql.Connection; <br /> <br />import java.sql.Date; <br />import java.sql.DriverManager; <br />import java.sql.PreparedStatement; <br />import java.sql.ResultSet; <br />import java.sql.SQLException; <br />import java.text.ParseException; <br />import java.text.SimpleDateFormat; <br />import java.util.List; <br /> <br /> <br />public class DB { <br /> //设置 <br /> static int precount=1000; <br /> <br /> public static&nbsp; Connection getConnect() throws Exception{ <br /> &nbsp;&nbsp; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); <br /> &nbsp;&nbsp; //?useUnicode=true&amp;characterEncoding=utf8 <br /> &nbsp;&nbsp; Connection conn= DriverManager.getConnection("jdbc:sqlserver://146.12.62.208:1433;DatabaseName=LHJGXN", "sa", "flying-321"); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return conn;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /> &nbsp; } <br /> <br /> public static void free(ResultSet rs,PreparedStatement ps,Connection conn){ <br /> try { <br /> &nbsp; if(rs!=null) rs.close(); <br /> &nbsp; if(ps!=null) ps.close(); <br /> &nbsp; if(conn!=null) conn.close(); <br /> } catch (SQLException e) { <br /> e.printStackTrace(); <br /> } <br /> } <br /> public static void free(PreparedStatement ps,Connection conn){ <br /> try { <br /> &nbsp; if(ps!=null) ps.close(); <br /> &nbsp; if(conn!=null) conn.close(); <br /> } catch (SQLException e) { <br /> e.printStackTrace(); <br /> } <br /> } <br /> //插入数据 <br /> public synchronized int insertObject(List&lt;AJXX&gt; list){ <br /> list=DB.initArray(list); <br /> Connection conn=null; <br /> PreparedStatement ps=null; <br /> try { <br /> conn=DB.getConnect(); <br /> //关闭自动提交 <br /> conn.setAutoCommit(false); <br /> //清空数据库 <br /> ps=conn.prepareStatement("truncate table LHJGXN.dbo.TB_AJXX"); <br /> ps.executeUpdate(); <br /> <br /> long startTime=System.currentTimeMillis(); <br /> String sql="insert into LHJGXN.dbo.TB_AJXX( " + <br /> "AH,NH,ZH,SAXH,AY,LARQ,LAR,CBT,SJCBT, " + <br /> "CBR,AJLB,SPCX,SYCX,SFDA,SFYA,AJSJ,ZZRQ," + <br /> "JARQ, JAFS,GDRQ,DTXP,FDSXDQR,KCSXTS,SXDQR," + <br /> "AJZT,XLABZ)values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; <br /> ps=conn.prepareStatement(sql); <br /> for(int i=0;i&lt;list.size();i++){ <br /> System.out.println(i); <br /> AJXX a=list.get(i); <br /> if(a.getAH()!=null&amp;&amp;!a.getAH().equals("")){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(1, a.getAH()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setInt(2, a.getNH()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(3, a.getZH()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setInt(4, a.getSAXH()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setInt(5, a.getAY()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Date d=new Date(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(tDate(a.getLARQ())==0){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setDate(6,&nbsp; null); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setDate(6,&nbsp; new Date(tDate(a.getLARQ()))); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(7, a.getLAR()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(8, a.getCBT()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(9, a.getSJCBT()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(10, a.getCBR()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(11, a.getAJLB()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(12, a.getSPCX()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(13, a.getSYCX()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(14, a.getSFDA()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(15, a.getSFYA()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(16, a.getAJSJ()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(tDate(a.getZZRQ())==0){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setDate(17, null); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setDate(17, new Date(tDate(a.getZZRQ()))); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(tDate(a.getJARQ())==0){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setDate(18, null); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setDate(18, new Date(tDate(a.getJARQ()))); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(19, getJAFS(a.getJAFS(),conn)); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(tDate(a.getGDRQ())==0){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setDate(20, null); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setDate(20, new Date(tDate(a.getGDRQ()))); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setInt(21, a.getDTXP()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(22, a.getFDSXDQR()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setInt(23, a.getKCSXTS()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(24, a.getSXDQR()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(25, a.getAJZT()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.setString(26, a.getXLABZ()); <br /> &nbsp;&nbsp; // ps.executeUpdate(); <br /> &nbsp;&nbsp;&nbsp; ps.addBatch(); <br /> &nbsp;&nbsp;&nbsp; } <br /> //每precount次就批量处理一次 <br /> if((i+1)%precount==0){ <br /> ps.executeBatch(); <br /> //因为不确定总数所以没有去分很多批去执行,我整体做了个批量处理 <br /> &nbsp;&nbsp; } <br /> } <br /> //提交 <br /> //ps.executeBatch(); <br /> <br /> conn.commit(); <br /> ps.clearBatch(); <br /> long endTime=System.currentTimeMillis(); <br /> System.out.println("插入数据时间为:"+(endTime-startTime)+"ms"); <br /> return (int)(endTime-startTime); <br /> } catch (Exception e) { <br /> try { <br /> //如果出现问题就回滚 <br /> conn.rollback(); <br /> } catch (SQLException e1) { <br /> e1.printStackTrace(); <br /> } <br /> e.printStackTrace(); <br /> PrintLog.writeLog("error:"+e.toString()); <br /> }finally{ <br /> DB.free(ps, conn); <br /> } <br /> return -1;&nbsp; <br /> } <br /> //根据案由名称获取案由编号 <br /> public static int getAYBH(String AYMC){ <br /> Connection conn=null; <br /> PreparedStatement ps=null; <br /> ResultSet rs=null; <br /> try { <br /> &nbsp;&nbsp;&nbsp; conn=DB.getConnect(); <br /> ps=conn.prepareStatement("select AYBH from LHJGXN.dbo.TB_AY where AYMC=?"); <br /> ps.setString(1, AYMC); <br /> rs=ps.executeQuery(); <br /> if(rs.next()){ <br /> return rs.getInt(1); <br /> } <br /> } catch (Exception e) { <br /> e.printStackTrace(); <br /> }finally{ <br /> DB.free(rs, ps, conn); <br /> } <br /> return -1; <br /> } <br /> //得到字号 <br /> public static String getZH(String ZHMC){ <br /> Connection conn=null; <br /> PreparedStatement ps=null; <br /> ResultSet rs=null; <br /> try { <br /> conn=DB.getConnect(); <br /> ps=conn.prepareStatement("select ZH from LHJGXN.dbo.TB_ZHXX where ZHMC=?"); <br /> ps.setString(1, ZHMC); <br /> rs=ps.executeQuery(); <br /> if(rs.next()){ <br /> return rs.getString(1); <br /> } <br /> } catch (Exception e) { <br /> e.printStackTrace(); <br /> }finally{ <br /> DB.free(rs, ps, conn); <br /> } <br /> return null; <br /> } <br /> //跟根据结案名称获取JAFS、AJLB、SPCX <br /> public static int getInfo(String cmd,String MC,Connection conn){ <br /> //Connection conn=null; <br /> PreparedStatement ps=null; <br /> ResultSet rs=null; <br /> String sql=null; <br /> if(cmd.equalsIgnoreCase("JAFS")){ <br /> sql="select JAFS from LHJGXN.dbo.TB_JAFS where MC=?"; <br /> }else if(cmd.equalsIgnoreCase("AJLB")){ <br /> sql="select AJLB from LHJGXN.dbo.TB_JAFS where MC=?"; <br /> }else if(cmd.equalsIgnoreCase("SPCX")){ <br /> sql="select SPCX from LHJGXN.dbo.TB_JAFS where MC=?"; <br /> } <br /> try { <br /> conn=DB.getConnect(); <br /> ps=conn.prepareStatement(sql); <br /> ps.setString(1, MC); <br /> rs=ps.executeQuery(); <br /> if(rs.next()){ <br /> return rs.getInt(1); <br /> } <br /> } catch (Exception e) { <br /> e.printStackTrace(); <br /> }finally{ <br /> DB.free(rs, ps, conn); <br /> } <br /> return -1; <br /> } <br /> public static long tDate(String d){ <br /> SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); <br /> &nbsp;&nbsp; try { <br /> &nbsp;&nbsp; if(d!=null&amp;&amp;!d.equals("")){ <br /> java.util.Date date=sdf.parse(d); <br /> return date.getTime();} <br /> } catch (ParseException e) { <br /> e.printStackTrace(); <br /> } <br /> return 0; <br /> } <br /> public static String getJAFS(String jafs,Connection conn){ <br /> if(jafs!=null&amp;&amp;!jafs.trim().equals("")){ <br /> // Connection conn=null; <br /> PreparedStatement ps=null; <br /> ResultSet rs=null; <br /> try { <br /> conn=DB.getConnect(); <br /> ps=conn.prepareStatement("select JAFS from LHJGXN.dbo.TB_JAFS where MC=?"); <br /> ps.setString(1, jafs); <br /> rs=ps.executeQuery(); <br /> if(rs.next()){ <br /> return rs.getString(1); <br /> } <br /> } catch (Exception e) { <br /> e.printStackTrace(); <br /> }finally{ <br /> DB.free(rs,ps, conn); <br /> } <br /> } <br /> return null; <br /> } <br /> public static List&lt;AJXX&gt; initArray(List&lt;AJXX&gt; d){ <br /> while(d!=null&amp;d.size()&gt;0&amp;d.size()%precount!=0){ <br /> AJXX a=new AJXX(); <br /> d.add(a); <br /> } <br /> System.out.println("格式化后的数据长度:"+d.size()); <br /> return d; <br /> } <br /> <br />} <br /> <br /> <br />&nbsp;&nbsp; <br /> <br />&nbsp; 然后报的错误是这样的 <br />&nbsp; <pre name="code" class="java"> 22238 22239 22240 com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 java.net.BindException: Address already in use: connect at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:185) at com.jgre.org.DB.getConnect(DB.java:22) at com.jgre.org.DB.getJAFS(DB.java:226) at com.jgre.org.DB.insertObject(DB.java:98) at com.jgre.org.PickTask$1.run(TimerUse.java:120) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) com.microsoft.sqlserver.jdbc.SQLServerException: 该连接已关闭。 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.checkClosed(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.rollback(Unknown Source) at com.jgre.org.DB.insertObject(DB.java:130) at com.jgre.org.PickTask$1.run(TimerUse.java:120) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) com.microsoft.sqlserver.jdbc.SQLServerException: 该连接已关闭。 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.checkClosed(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerStatement.checkClosed(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setterGetParam(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setString(Unknown Source) at com.jgre.org.DB.insertObject(DB.java:98) at com.jgre.org.PickTask$1.run(TimerUse.java:120) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) 2012-12-04 00:54:08 00:54 2012-12-04 00:55:08 00:55 2012-12-04 00:56:08 00:56 </pre> <br /> <br />&nbsp;&nbsp;&nbsp; 求遇到过类似情况的,麻烦告诉下解决办法,急救,谢谢!!
C#与SQL Server 关于DateTime时间的问题。
在A服务器中 ``` contractVO.ContractDatetime = Convert.ToDateTime(drsjDataTabel.Rows[i]["contractDatetime"].ToString()); ``` contractDatetime的值是 2018-2-1 转换后得到的值是 2018-2-2 00:00:00 在B服务器中 转换后得到的值是 2002/1/18 星期五 上午 12:00:00 所以在插入SQLServer时出现了报错。 我想着应该是windows系统的原因,请问这样的问题如何解决。。
java界面里怎么将从数据库中按条件查询的结果显示在界面里。。急求
AirSelectpage.java: import javax.swing.*; import java.awt.event.*; import java.sql.*; public class AirSelectpage extends JFrame implements ActionListener{ /** * */ private static final long serialVersionUID = -3695058594377827316L; JLabel l; JTextField t=new JTextField(15); JButton jok; JButton jBack; String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver"; String url="jdbc:sqlserver://localhost:1433; DatabaseName=AirTicket"; String USER="sa"; String PASSWORD="123"; public void asPage(){ JPanel p; p=new JPanel(); l=new JLabel("请输入航班号:"); jok=new JButton("确认"); jBack=new JButton("返回"); p.add(l);p.add(t);p.add(jok);p.add(jBack); add(p); setSize(600,400); setLocation(400,200); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); jok.addActionListener(this); jBack.addActionListener(this); } private Connection con; private Statement stmt; private ResultSet rs; public void actionPerformed(ActionEvent e){ if(e.getSource()==jok){ String airnumber=t.getText().trim(); if(airnumber.equals("")){ JOptionPane.showMessageDialog(this,"对不起,请输入航班号!","错误!",JOptionPane.ERROR_MESSAGE); } else{ try{ Class.forName(driverName); con=DriverManager.getConnection(url,USER,PASSWORD); String sql="select 旅客.航班号,座位号,姓名,旅客.票号,票价,起点,终点,起飞时间,到达时间 from 旅客,航班,机票 where 航班.航班号=旅客.航班号 and 旅客.票号=机票.票号 and 旅客.航班号='"+airnumber+"'";//执行的sql语句 stmt=con.createStatement(); rs=stmt.executeQuery(sql); if(rs.next()){ new AirInformation(); } else{ JOptionPane.showMessageDialog(this,"航班号不存在,请重新输入!","错误!",JOptionPane.ERROR_MESSAGE); } } catch(ClassNotFoundException ex){ ex.printStackTrace(); } catch(SQLException ex){ ex.printStackTrace(); } } } if(e.getSource()==jBack){ Welpage wel=new Welpage(); wel.wPage(null); this.dispose(); } } } AirInformation.java: import javax.swing.*; import java.sql.*; public class AirInformation extends JFrame{ /** * */ private static final long serialVersionUID = -2888751890568230979L; // 定义组件 private JScrollPane scpDemo; private JTable tabDemo; // 构造方法 public AirInformation() throws SQLException{ // 窗体的相关属性的定义 super("JTable数据绑定示例"); this.setSize(1200,900); this.setLayout(null); this.setLocation(100,50); // 创建组件 this.scpDemo = new JScrollPane(); this.scpDemo.setBounds(10,50,1050,300); // 将组件加入到窗体中 add(this.scpDemo); // 显示窗体 this.setVisible(true); try{ // 获得连接 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch(Exception e){} Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=AirTicket","sa","123"); // 建立查询条件 String sql = "select 旅客.航班号,座位号,姓名,旅客.票号,票价,起点,终点,起飞时间,到达时间 from 旅客,航班,机票 where 航班.航班号=旅客.航班号 and 旅客.票号=机票.票号 and 旅客.航班号='A3001'"; PreparedStatement pstm = conn.prepareStatement(sql); // 执行查询 ResultSet rs = pstm.executeQuery(); // 计算有多少条记录 int count = 0; while(rs.next()){ count++; } rs=pstm.executeQuery(); // 将查询获得的记录数据,转换成适合生成JTable的数据形式 Object[][] info = new Object[count][9]; count = 0; while(rs.next()){ info[count][0] = rs.getString("航班号"); info[count][1] = rs.getString("座位号"); info[count][2] = rs.getString("姓名"); info[count][3] = rs.getString("票号"); info[count][4] = Integer.valueOf(rs.getInt("票价")); info[count][5] = rs.getString("起点"); info[count][6] = rs.getString("终点"); info[count][7] = rs.getTimestamp("起飞时间"); info[count][8] = rs.getTimestamp("到达时间"); count++; } // 定义表头 String[] title = {"航班号","座位号","姓名","票号","票价","起点","终点","起飞时间","到达时间"}; // 创建JTable this.tabDemo = new JTable(info,title); this.tabDemo.getTableHeader(); // 将JTable加入到带滚动条的面板中 this.scpDemo.getViewport().add(tabDemo); } } 当航班号为A3001 A3002。。。时,是可以显示出来的 当航班号为t.getText()时,就一片空白,什么都显示不了
通过JAVA按钮事件更新数据库内数据,同时动态的刷新窗口内显示的数据
public class Buy extends JPanel implements ActionListener { Connection conn; Statement stmt; ResultSet rs; String DBDRIVER ="com.microsoft.sqlserver.jdbc.SQLServerDriver"; String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=高铁动车售票系统"; String userName = "sa"; String userPwd = "123456"; private JSplitPane jsp1 =new JSplitPane(JSplitPane.VERTICAL_SPLIT,true); private JPanel jp2 =new JPanel(); private JButton jb2 =new JButton("确定"); private JLabel jl3 =new JLabel("请输入要买的车票编号:"); private JTextField jtxt3 =new JTextField(); public void connDB() { //连接数据库方法 try { conn=DriverManager.getConnection(dbURL,userName,userPwd); stmt=conn.createStatement(); }catch(Exception e) { e.printStackTrace(); System.out.println("连接失败!"); } } public void closeDB() { //关闭数据库方法 try { rs.close(); stmt.close(); conn.close(); }catch(Exception e) { e.printStackTrace(); } } public boolean searchticketno(String str) { boolean x=false; this.connDB(); try { rs=stmt.executeQuery("select * from 车票信息表"); while(rs.next()) { if(rs.getString("车票编号").trim().equals(str)) { //在java中,判断字符串是否相同,一定要使用equals函数!!!!!!!! x=true; } } }catch(Exception e) { e.printStackTrace(); } return x; } Vector<String> head =new Vector<String>(); { head.add("车票编号"); head.add("车次"); head.add("座位等级"); head.add("票价"); head.add("座位号"); head.add("出发站"); head.add("目的站"); head.add("出发时间"); head.add("到站时间"); head.add("余票数量"); } DataBase db= new DataBase(); Vector row =db.getdata(); DefaultTableModel dtm =new DefaultTableModel(row,head); JTable jt =new JTable(dtm); JScrollPane jspn =new JScrollPane(jt); public Buy() { this.setLayout(new GridLayout(1,1)); jsp1.setTopComponent(jp2); jsp1.setBottomComponent(jspn); jsp1.setDividerLocation(80); jsp1.setDividerSize(4); jp2.setLayout(null); jb2.setBounds(400,30,60,20); jp2.add(jb2); jb2.addActionListener(this); jl3.setBounds(60, 30, 160, 20); jp2.add(jl3); jtxt3.setBounds(200, 30, 100, 20); jp2.add(jtxt3); this.add(jsp1); this.setBounds(10, 10, 800, 600); this.setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource()==jb2) { //判定文本框内容,车票信息改变,余票数量-1,乘客购票成功 if(!searchticketno(jtxt3.getText().trim())) { JOptionPane.showMessageDialog(null,"对不起,车票编号不存在!请重新输入!"); jtxt3.setText(""); } else { //未实现的功能 } } } } ``` public class DataBase { private final static String URL = "jdbc:sqlserver://localhost:1433; DatabaseName=高铁动车售票系统"; private static final String USER="sa"; private static final String PASSWORD="123456"; private Vector<Object> row =new Vector() ; private Vector rowsdata =new Vector(); private static Connection conn=null; //静态代码块(将加载驱动、连接数据库放入静态块中) static{ try { //1.加载驱动程序 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //2.获得数据库的连接 conn=(Connection)DriverManager.getConnection(URL,USER,PASSWORD); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } //对外提供一个方法来获取数据库连接 public static Connection getConnection(){ return conn; } //测试用例 // public static void main(String[] args) throws Exception // { // // //3.通过数据库的连接操作数据库,实现增删改查 // Statement stmt = conn.createStatement(); // //ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句 ,返回一个结果集(ResultSet)对象。 // ResultSet rs = stmt.executeQuery("select 车票编号,车次,座位等第,票价,座位号,出发站,目的站,出发时间,到站时间,余票数量 from 车票信息表"); // while(rs.next()){//如果对象中有数据,就会循环打印出来 // System.out.println(rs.getString("车票编号")+","+rs.getString("车次")+","+rs.getString("座位等第")+","+rs.getString("票价")+","+rs.getString("座位号")+","+rs.getString("出发站")+","+rs.getString("目的站")+","+rs.getString("出发时间")+","+rs.getString("到站时间")+","+rs.getString("余票数量")); // } // } public Vector getdata() { try{ //3.通过数据库的连接操作数据库,实现增删改查 Statement stmt = conn.createStatement(); //ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句 ,返回一个结果集(ResultSet)对象。 ResultSet rs = stmt.executeQuery("select * from 车票信息表"); while(rs.next()){//如果对象中有数据,就会循环打印出来 row.add(rs.getString("车票编号")); row.add(rs.getString("车次")); row.add(rs.getString("座位等第")); row.add(rs.getString("票价")); row.add(rs.getString("座位号")); row.add(rs.getString("出发站")); row.add(rs.getString("目的站")); row.add(rs.getString("出发时间")); row.add(rs.getString("到站时间")); row.add(rs.getString("余票数量")); rowsdata.add(row); row=new Vector(); }}catch(SQLException e) { e.printStackTrace(); return null; } return rowsdata; } } ``` ![图片说明](https://img-ask.csdn.net/upload/201906/25/1561473164_888693.png) ``` 希望最后的结果就是在文本框内输入车票编号,然后检索数据库,有对应车票编码的车票就显示购票成功,同时刷新当前显示的数据表,更新余票数量。 ```
使用MSMQ消息队列的WCF的效率的问题。
请教个问题,WCF在使用MSMQ的时候,每次WCF程序处理MSMQ中的数据量,每秒只有几百条。 以下是测试数据 处理消息数: 180000 开始时间: [2013-11-01 15:35:27] Start To Save Log To DB. 结束时间: [2013-11-01 15:51:12] Finish To Save Log To DB. 耗时: 00:15:45 基本上算下来也就每秒190多条,以前好的时候可以达到200多条,其中程序花费了些时间,如果把程序处理的代码注释掉的话,最好也只能到280条左右。 MSMQ在处理消息的效率跟网络传输的速度、读写硬盘的速度有关, 根据自己测试发现,客户端的消息传送到服务端的效率相对来说很快,时间90%以上都耗费在MSMQ向WCF输出数据上了。 想问问,有木有什么办法能够提升MSMQ向WCF服务的传出效率啊!~~急啊~!~~ 相关工具: vs2010sp1 sqlserver2008r2 iis7 附上测试机的部分配置: > 主机名: ******-PC OS 名称: Microsoft Windows 7 旗舰版 OS > 版本: 6.1.7601 Service Pack 1 Build 7601 OS 制造商: > Microsoft Corporation OS 配置: 独立工作站 OS 构件类型: > Multiprocessor Free 注册的所有人: ******Server 注册的组织: 产品 ID: > 00426-OEM-******-00400 初始安装日期: 2005/1/1, 2:46:59 系统启动时间: > 2013/10/31, 14:03:53 系统制造商: Dell Inc. 系统型号: Vostro 260s > 系统类型: x64-based PC 处理器: 安装了 1 个处理器。 > [01]: Intel64 Family 6 Model 42 Stepping 7 GenuineIntel ~3101 Mhz BIOS 版本: Dell Inc. A06, 2012/5/18 > Windows 目录: C:\Windows 系统目录: C:\Windows\system32 启动设备: > \Device\HarddiskVolume1 系统区域设置: zh-cn;中文(中国) 输入法区域设置: > zh-cn;中文(中国) 时区: (UTC+08:00)北京,重庆,香港特别行政区,乌鲁木齐 物理内存总量: > 6,127 MB 可用的物理内存: 1,564 MB 虚拟内存: 最大值: 12,251 MB 虚拟内存: 可用: 7,732 MB > 虚拟内存: 使用中: 4,519 MB 页面文件位置: C:\pagefile.sys 域: > WORKGROUP 登录服务器: \\******-PC 修补程序: 安装了 3 个修补程序。 > [01]: KB2685811 > [02]: KB958488 > [03]: KB976902 网卡: 安装了 1 个 NIC。 > [01]: Realtek PCIe GBE Family Controller > 连接名: 本地连接 > 启用 DHCP: 否 > IP 地址 > [01]: 192.168.8.88
kettle预览报错,但是数据却能执行成功,这是怎么回事呢
2018/10/01 19:26:07 - 放贷明细表 - 转换已经从资源库预先载入. 2018/10/01 19:26:07 - Spoon - 转换已经打开. 2018/10/01 19:26:07 - Spoon - 正在打开转换 [放贷明细表]... 2018/10/01 19:26:07 - Spoon - 开始执行转换. 2018/10/01 19:26:07 - 放贷明细表 - 为了转换解除补丁开始 [放贷明细表] 2018/10/01 19:26:07 - 放贷明细表 - 已经找到的参数数量:0 2018/10/01 19:26:07 - 放贷明细表 - 这没有一个重放的转换 2018/10/01 19:26:07 - 放贷明细表 - 我找到 2 个不同的要执行的步骤. 2018/10/01 19:26:07 - 放贷明细表 - 分派记录集... 2018/10/01 19:26:07 - 放贷明细表 - 正在分配行组为步骤 0 --> 放贷明细表-新逻辑 2018/10/01 19:26:07 - 放贷明细表 - 前一个副本 = 1, 下一个副本=1 2018/10/01 19:26:07 - 放贷明细表 - 转换分配了新的行组 [放贷明细表-新逻辑.0 - Microsoft Excel 输出 2 2.0] 2018/10/01 19:26:07 - 放贷明细表 - 已分配 1 行组为步骤 0 --> 放贷明细表-新逻辑 2018/10/01 19:26:07 - 放贷明细表 - 正在分配行组为步骤 1 --> Microsoft Excel 输出 2 2 2018/10/01 19:26:07 - 放贷明细表 - 已分配 1 行组为步骤 1 --> Microsoft Excel 输出 2 2 2018/10/01 19:26:07 - 放贷明细表 - 正在分配步骤和步骤数据... 2018/10/01 19:26:07 - 放贷明细表 - 转换大约分配了 步骤 [放贷明细表-新逻辑] 类型的 [TableInput] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - 分散被激活 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - Starting allocation of buffers & new threads... 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - 步骤信息: 输入数量=0 输出数量=1 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - output rel. is 1:1 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - 发现输出 rowset [放贷明细表-新逻辑.0 - Microsoft Excel 输出 2 2.0] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - 完成分发 2018/10/01 19:26:07 - 放贷明细表 - 转换已经分配了一个新的步骤: [放贷明细表-新逻辑].0 2018/10/01 19:26:07 - 放贷明细表 - 转换大约分配了 步骤 [Microsoft Excel 输出 2 2] 类型的 [TypeExitExcelWriterStep] 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - 分散被激活 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - Starting allocation of buffers & new threads... 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - 步骤信息: 输入数量=1 输出数量=0 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - 获取来自前一步骤 [Microsoft Excel 输出 2 2] #0 --> 放贷明细表-新逻辑 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - input rel is 1:1 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - 发现输入记录集合 [放贷明细表-新逻辑.0 - Microsoft Excel 输出 2 2.0] 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - 完成分发 2018/10/01 19:26:07 - 放贷明细表 - 转换已经分配了一个新的步骤: [Microsoft Excel 输出 2 2].0 2018/10/01 19:26:07 - 放贷明细表 - 这项转换可以被回放 回放日期是: 2018/10/01 19:26:07 2018/10/01 19:26:07 - 放贷明细表 - 正在初始化 2 步骤... 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - Released server socket on port 0 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - Released server socket on port 0 2018/10/01 19:26:07 - sqlserver - New database connection defined 2018/10/01 19:26:07 - sqlserver - Auto commit off 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - Connected to database... 2018/10/01 19:26:07 - 放贷明细表 - 步骤 [放贷明细表-新逻辑.0] 初始化不完全,有缺陷. 2018/10/01 19:26:07 - 放贷明细表 - 步骤 [Microsoft Excel 输出 2 2.0] 初始化不完全,有缺陷. 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - 开始运行... 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - 开始运行... 2018/10/01 19:26:07 - 放贷明细表 - 转换已经分配了 2 线程 和 1 列组. 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - SQL query : 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - DECLARE @BEGINDATE DATE=DATEADD(mm, DATEDIFF(mm,0,getdate())-1 , 0) --改 上月月初 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,@ENDDATE DATE=DATEADD(mm, DATEDIFF(mm,0,getdate()), 0); --改 本月月初 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - SELECT A.BusinessID AS [业务号] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,A.ContractNo AS [合同号] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,B.name AS [户名] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,CASE WHEN A.ProductType=62 AND E.MultiCapitalFlag=1 THEN E.LoanCapitalB ELSE A.LoanCapital END AS [合同金额] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,CONVERT(VARCHAR(10),A.LoanTime,120) AS [放款日期] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,ISNULL(A.EvaluationCost,0) AS [评估费] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,A.ProceduresAmout AS [手续费] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,CASE WHEN D.Name IN ('百度借现金','借趣花') THEN ([VcreditDW].dbo.YearInerterate(A.LoanCapital,A.LoanPeriod,A.DayRate)/12)*100 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - WHEN A.LoanKind in ('LOANKIND/TYSUIYIJIE') 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - then (VcreditDW.dbo.PMTS(A.InterestRate,A.LoanPeriod,A.LoanCapital)/12)*100 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ELSE 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - CASE WHEN A.InterestRate=0 THEN A.DayRate*30*100 ELSE A.InterestRate * 100 END 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - END AS [利率] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,A.ProceduresRate * 100 AS [手续费率] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,A.LoanPeriod AS [贷款期限] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,ISNULL(D.Name,'') AS [产品名称] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - FROM PostLoan.dbo.Business A 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - LEFT JOIN loan.[check].applyinfoCustomer B 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ON A.businessid=B.bid 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - LEFT JOIN [Sys].common.EnumerationAll D 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ON A.LoanKind=D.FullKey 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - JOIN PostLoan.dbo.BusinessExtend AS E WITH(NOLOCK) 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ON A.BusinessID=E.BusinessID 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - WHERE A.LendingSideKey IN('COMPANY/WX_CDWS_LENDING','COMPANY/BHB_LENDING') 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - AND A.LoanTime>= @BEGINDATE AND A.LoanTime<@ENDDATE 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - AND A.Operable =1 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - and D.Name<>'甜橙白条' 2018/10/01 19:26:13 - 放贷明细表-新逻辑.0 - Finished reading query, closing connection. 2018/10/01 19:26:13 - sqlserver - Connection to database closed! 2018/10/01 19:26:13 - 放贷明细表-新逻辑.0 - 完成处理 (I=20241, O=0, R=0, W=20241, U=0, E=0) 2018/10/01 19:26:14 - Microsoft Excel 输出 2 2.0 - 完成处理 (I=0, O=20242, R=20241, W=20241, U=0, E=0) 2018/10/01 19:26:14 - Spoon - 转换完成!! ``` ```
java.lang.NullPointerException
package ch12; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; @SuppressWarnings("serial") public class adminUser extends JFrame implements ActionListener { JMenuBar menu; JMenu me, me1, me2, me3, me4; JMenuItem item, item3, item4, item5, item6, item7; JMenuItem item8, item9, item10, item11, item12, item13, item14; JMenuItem item15, item16, item17, item18, item19, item21; JMenuItem item22, item23; JLabel hintLabel; JTextField inputNumber; Object name[] = { "部门编号" }; Object a[][] = new Object[1][1]; JTable table; JButton enterModify; JLabel hintLabel3; JTextField inputNumber3; Object name3[] = { "工龄等级", "技术等级" }; Object a3[][] = new Object[1][2]; JTable table3; JButton enterModify3; JLabel hintLabel4; JTextField inputnum4; Object name4[] = { "出勤类别", "系数" }; Object a4[][] = new Object[1][2]; JTable table4; JButton enter4; JLabel hintLabel5; JTextField inputnum5; Object name5[] = { "津贴类别", "津贴款数" }; Object a5[][] = new Object[1][2]; JTable table5; JButton enter5; JLabel hintLabel6; JTextField inputnum6; Object name6[] = { "款数" }; Object a6[][] = new Object[1][1]; JTable table6; JButton enter6; JLabel hintLabel7; JTextField inputnum7; Object name7[] = { "款数" }; Object a7[][] = new Object[1][1]; JTable table7; JButton enter7; JLabel hintLabel8; Object name8[] = { "员工号", "姓名", "性别", "出生日期(格式日/月/年)", "文化程度", "民族", "籍贯", "地址", "人员级别", "部门编号", "技术等级"}; Object a8[][] = new Object[1][11]; JTable table8; JButton enterInsert8; JLabel hintLabel9; Object name9[] = { "员工号", "出勤类别号", "出勤天数" }; Object a9[][] = new Object[1][3]; JTable table9; JButton enterInsert9; JLabel hintLabel10; Object name10[] = { "员工号", "津贴类别号" }; Object a10[][] = new Object[1][2]; JTable table10; JButton enterInsert10; JLabel hintLabel11; Object name11[] = { "出勤编号", "出勤类别", "计算系数" }; Object a11[][] = new Object[1][3]; JTable table11; JButton enterInsert11; JLabel hintLabel12; Object name12[] = { "津贴编号", "津贴名称", "款数" }; Object a12[][] = new Object[1][3]; JTable table12; JButton enterInsert12; JLabel hintLabel13; Object name13[] = { "工龄等级", "款数" }; Object a13[][] = new Object[1][2]; JTable table13; JButton enterInsert13; JLabel hintLabel14; Object name14[] = { "职务等级", "款数" }; Object a14[][] = new Object[1][2]; JTable table14; JButton enterInsert14; JLabel hintLabel15; Object name15[] = { "员工编号", "出勤信息", "出勤天数", "计算系数" }; Object a15[][] = new Object[1][4]; JTable table15; JButton enterInsert15; JLabel hintLabel16; Object name16[] ={ "员工编号", "津贴款数", "津贴信息" }; Object a16[][] = new Object[1][3]; JTable table16; JButton enterInsert16; JLabel hintLabel17; Object name17[] = { "员工编号", "基本工资" }; Object a17[][] = new Object[1][2]; JTable table17; JButton enterInsert17; JLabel jl18; JTextField jtf18; JButton jb18; Object a18[][] = new Object[1][14]; Object name18[] = { "职工编号", "基本工资", "岗位津贴", "物价补贴", "住房补贴", "日班费", "夜班费", "假期加班", "房租", "病假扣款", "事假扣款", "旷工扣款", "其他扣款", "实发工资" }; JTable table18; JButton jj19; JTextField jt19; Object a19[][] = new Object[1][2]; Object name19[] = { "员工编号", "工资" }; JTable table19; Object a20[][] = new Object[1][2]; Object name20[] = { "部门工资", "部门编号" }; JTable table20; JLabel hintLabel21; JTextField inputNumber21; JButton jb21; JButton jj22, jb22; JTextField jt22, jl22; Object a22[][] = new Object[1][3]; Object name22[] = { "员工编号", "出勤编号", "天数" }; JTable table22; JButton jj23, jb23; JTextField jt23, jl23; Object a23[][] = new Object[1][2]; Object name23[] = { "员工编号", "津贴" }; JTable table23; JPanel jp; Connection con; Statement sql, sql1; ResultSet rs, rs1; String num; CallableStatement cstmt = null; adminUser() { this.setTitle("管理员用户"); menu = new JMenuBar(); me = new JMenu("修改"); me1 = new JMenu("添加信息"); me2 = new JMenu("显示"); me3 = new JMenu("统计"); me4 = new JMenu("删除"); item = new JMenuItem("职工部门"); item3 = new JMenuItem("职工基本工资信息"); item4 = new JMenuItem("出勤信息"); item5 = new JMenuItem("津贴信息"); item6 = new JMenuItem("工龄——工资"); item7 = new JMenuItem("职务——工资"); item8 = new JMenuItem("职工信息"); item9 = new JMenuItem("职工出勤情况"); item10 = new JMenuItem("职工津贴信息"); item11 = new JMenuItem("出勤信息"); item12 = new JMenuItem("津贴信息"); item13 = new JMenuItem("工龄——工资"); item14 = new JMenuItem("职务——工资"); item15 = new JMenuItem("职工出勤情况"); item16 = new JMenuItem("职工津贴信息"); item17 = new JMenuItem("职工基本工资信息"); item18 = new JMenuItem("职工工资"); item19 = new JMenuItem("部门工资"); // item20 = new JMenuItem("总厂工资"); item21 = new JMenuItem("职工信息"); item22 = new JMenuItem("职工出勤信息"); item23 = new JMenuItem("职工津贴信息"); item.addActionListener(this); item3.addActionListener(this); item4.addActionListener(this); item5.addActionListener(this); item6.addActionListener(this); item7.addActionListener(this); item8.addActionListener(this); item9.addActionListener(this); item10.addActionListener(this); item11.addActionListener(this); item12.addActionListener(this); item13.addActionListener(this); item14.addActionListener(this); item15.addActionListener(this); item16.addActionListener(this); item17.addActionListener(this); item18.addActionListener(this); item19.addActionListener(this); // item20.addActionListener(this); item21.addActionListener(this); item22.addActionListener(this); item23.addActionListener(this); me.add(item); me.add(item3); me.add(item4); me.add(item5); me.add(item6); me.add(item7); me1.add(item8); me1.add(item9); me1.add(item10); me1.add(item11); me1.add(item12); me1.add(item13); me1.add(item14); me2.add(item15); me2.add(item16); me2.add(item17); me3.add(item18); me3.add(item19); // me3.add(item20); me4.add(item21); me4.add(item22); me4.add(item23); menu.add(me); menu.add(me1); menu.add(me2); menu.add(me3); menu.add(me4); this.setJMenuBar(menu); this.setVisible(true); this.setSize(400,300); Dimension d = this.getToolkit().getScreenSize(); this.setLocation((d.width - this.getWidth())/2, (d.height - this.getHeight())/2-100); //this.setBounds(10, 10, 200, 200); this.validate(); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } public void actionPerformed(ActionEvent e) { //修改职工部门 if (e.getSource() == item) { this.getContentPane().removeAll(); jp = new JPanel(); hintLabel = new JLabel("输入员工编号(回车确认):"); inputNumber = new JTextField(40); table = new JTable(a, name); enterModify = new JButton("更新记录"); jp.setLayout(null); Box baseBox = Box.createHorizontalBox(); baseBox.add(hintLabel); baseBox.add(inputNumber); baseBox.add(new JScrollPane(table)); baseBox.add(enterModify); jp.add(baseBox); baseBox.setBounds(10, 40, 550, 38); this.add(jp); inputNumber.addActionListener(this); enterModify.addActionListener(this); setBounds(20, 60, 600, 200); this.validate(); } //修改 职工基本工资信息 else if (e.getSource() == item3) { this.getContentPane().removeAll(); jp = new JPanel(); hintLabel3 = new JLabel("输入员工编号(回车确认):"); inputNumber3 = new JTextField(20); table3 = new JTable(a3, name3); enterModify3 = new JButton("更新记录"); jp.setLayout(null); Box baseBox = Box.createHorizontalBox(); baseBox.add(hintLabel3); baseBox.add(inputNumber3); baseBox.add(new JScrollPane(table3)); baseBox.add(enterModify3); jp.add(baseBox); baseBox.setBounds(10, 40, 550, 38); this.add(jp); inputNumber3.addActionListener(this); enterModify3.addActionListener(this); this.validate(); } //修改 出勤信息 else if (e.getSource() == item4) { this.getContentPane().removeAll(); jp = new JPanel(); hintLabel4 = new JLabel("输入类别号(回车确认)"); inputnum4 = new JTextField(20); table4 = new JTable(a4, name4); enter4 = new JButton("更新记录"); jp.setLayout(null); Box basebox = Box.createHorizontalBox(); basebox.add(hintLabel4); basebox.add(inputnum4); basebox.add(new JScrollPane(table4)); basebox.add(enter4); jp.add(basebox); basebox.setBounds(10, 40, 550, 38); this.add(jp); setBounds(20, 60, 700, 200); this.validate(); inputnum4.addActionListener(this); enter4.addActionListener(this); } //修改 津贴信息 else if (e.getSource() == item5) { this.getContentPane().removeAll(); jp = new JPanel(); hintLabel5 = new JLabel("输入类别号(回车确认)"); inputnum5 = new JTextField(20); table5 = new JTable(a5, name5); enter5 = new JButton("更新记录"); jp.setLayout(null); Box basebox = Box.createHorizontalBox(); basebox.add(hintLabel5); basebox.add(inputnum5); basebox.add(new JScrollPane(table5)); basebox.add(enter5); jp.add(basebox); basebox.setBounds(10, 40, 550, 38); this.add(jp); setBounds(20, 60, 700, 200); this.validate(); this.setVisible(true); inputnum5.addActionListener(this); enter5.addActionListener(this); } //修改 工龄——工资 else if (e.getSource() == item6) { this.getContentPane().removeAll(); jp = new JPanel(); hintLabel6 = new JLabel("输入工龄等级(回车确认)"); inputnum6 = new JTextField(20); table6 = new JTable(a6, name6); enter6 = new JButton("更新记录"); jp.setLayout(null); Box basebox = Box.createHorizontalBox(); basebox.add(hintLabel6); basebox.add(inputnum6); basebox.add(new JScrollPane(table6)); basebox.add(enter6); jp.add(basebox); basebox.setBounds(10, 40, 550, 38); this.add(jp); inputnum6.addActionListener(this); enter6.addActionListener(this); setBounds(20, 60, 700, 200); this.validate(); } //修改 职务——工资 else if (e.getSource() == item7) { this.getContentPane().removeAll(); jp = new JPanel(); hintLabel7 = new JLabel("输入职务等级(回车确认)"); inputnum7 = new JTextField(20); table7 = new JTable(a7, name7); enter7 = new JButton("更新记录"); jp.setLayout(null); Box basebox = Box.createHorizontalBox(); basebox.add(hintLabel7); basebox.add(inputnum7); basebox.add(new JScrollPane(table7)); basebox.add(enter7); jp.add(basebox); this.add(jp); basebox.setBounds(10, 40, 550, 38); inputnum7.addActionListener(this); enter7.addActionListener(this); setBounds(20, 60, 700, 200); this.validate(); } //添加职工信息 else if (e.getSource() == item8) { this.getContentPane().removeAll(); jp = new JPanel(); hintLabel8 = new JLabel("输入新记录:"); table8 = new JTable(a8, name8); enterInsert8 = new JButton("插入新记录"); jp.setLayout(null); Box baseBox = Box.createHorizontalBox(); baseBox.add(hintLabel8); baseBox.add(new JScrollPane(table8)); baseBox.add(enterInsert8); jp.add(baseBox); baseBox.setBounds(10, 40, 800, 38); this.add(jp); enterInsert8.addActionListener(this); setBounds(120, 160, 850, 200); this.validate(); } //添加职工出勤情况 else if (e.getSource() == item9) { this.getContentPane().removeAll(); jp = new JPanel(); hintLabel9 = new JLabel("输入新信息:"); table9 = new JTable(a9, name9); enterInsert9 = new JButton("插入新信息"); jp.setLayout(null); Box baseBox = Box.createHorizontalBox(); baseBox.add(hintLabel9); baseBox.add(new JScrollPane(table9)); baseBox.add(enterInsert9); jp.add(baseBox); baseBox.setBounds(10, 40, 500, 38); this.add(jp); enterInsert9.addActionListener(this); setBounds(120, 160, 550, 200); this.validate(); } //添加职工津贴信息 else if (e.getSource() == item10) { this.getContentPane().removeAll(); jp = new JPanel(); hintLabel10 = new JLabel("输入新信息:"); table10 = new JTable(a10, name10); enterInsert10 = new JButton("插入新信息"); jp.setLayout(null); Box baseBox = Box.createHorizontalBox(); baseBox.add(hintLabel10); baseBox.add(new JScrollPane(table10)); baseBox.add(enterInsert10); jp.add(baseBox); baseBox.setBounds(10, 40, 500, 38); this.add(jp); enterInsert10.addActionListener(this); setBounds(120, 160, 550, 200); this.validate(); } //添加出勤信息 else if (e.getSource() == item11) { this.getContentPane().removeAll(); jp = new JPanel(); hintLabel11 = new JLabel("输入新信息:"); table11 = new JTable(a11, name11); enterInsert11 = new JButton("插入新信息"); jp.setLayout(null); Box baseBox = Box.createHorizontalBox(); baseBox.add(hintLabel11); baseBox.add(new JScrollPane(table11)); baseBox.add(enterInsert11); jp.add(baseBox); baseBox.setBounds(10, 40, 500, 38); this.add(jp); enterInsert11.addActionListener(this); setBounds(120, 160, 550, 200); this.validate(); } //添加津贴信息 else if (e.getSource() == item12) { this.getContentPane().removeAll(); jp = new JPanel(); hintLabel12 = new JLabel("输入新信息:"); table12 = new JTable(a12, name12); enterInsert12 = new JButton("插入新信息"); jp.setLayout(null); Box baseBox = Box.createHorizontalBox(); baseBox.add(hintLabel12); baseBox.add(new JScrollPane(table12)); baseBox.add(enterInsert12); jp.add(baseBox); baseBox.setBounds(10, 40, 500, 38); this.add(jp); enterInsert12.addActionListener(this); setBounds(120, 160, 550, 200); this.validate(); } //添加工龄——工资 else if (e.getSource() == item13) { this.getContentPane().removeAll(); jp = new JPanel(); hintLabel13 = new JLabel("输入新信息:"); table13 = new JTable(a13, name13); enterInsert13 = new JButton("插入新信息"); jp.setLayout(null); Box baseBox = Box.createHorizontalBox(); baseBox.add(hintLabel13); baseBox.add(new JScrollPane(table13)); baseBox.add(enterInsert13); jp.add(baseBox); baseBox.setBounds(10, 40, 500, 38); this.add(jp); enterInsert13.addActionListener(this); setBounds(120, 160, 550, 200); this.validate(); } //添加 职务——工资 else if (e.getSource() == item14) { this.getContentPane().removeAll(); jp = new JPanel(); hintLabel14 = new JLabel("输入新信息:"); table14 = new JTable(a14, name14); enterInsert14 = new JButton("插入新信息"); jp.setLayout(null); Box baseBox = Box.createHorizontalBox(); baseBox.add(hintLabel14); baseBox.add(new JScrollPane(table14)); baseBox.add(enterInsert14); jp.add(baseBox); baseBox.setBounds(10, 40, 500, 38); this.add(jp); enterInsert14.addActionListener(this); setBounds(120, 160, 550, 200); this.validate(); } //显示 职工出勤情况 else if (e.getSource() == item15) { this.getContentPane().removeAll(); jp = new JPanel(); try { con = getConnection(); sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = sql.executeQuery("SELECT * FROM CalEmpAndPre"); rs.last(); int lastNumber = rs.getRow(); a15 = new Object[lastNumber][4]; int k = 0; rs.beforeFirst(); while (rs.next()) { a15[k][0] = rs.getString(1); a15[k][1] = rs.getString(3); a15[k][2] = rs.getString(4); a15[k][3] = rs.getDouble(5); k++; } con.close(); } catch (SQLException ee) { System.out.println(ee); } table15 = new JTable(a15, name15); jp.setLayout(new BorderLayout()); jp.add(new JScrollPane(table15), BorderLayout.CENTER); this.add(jp); setBounds(120, 160, 550, 200); this.validate(); } //显示职工津贴信息 else if (e.getSource() == item16) { this.getContentPane().removeAll(); jp = new JPanel(); try { con = getConnection(); sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = sql.executeQuery("SELECT * FROM CalEmpAndJintie"); rs.last(); int lastNumber = rs.getRow(); a16 = new Object[lastNumber][3]; int k = 0; rs.beforeFirst(); while (rs.next()) { a16[k][0] = rs.getString(1); a16[k][1] = rs.getDouble(3); a16[k][2] = rs.getString(4); k++; } con.close(); } catch (SQLException ee) { System.out.println(ee); } table16 = new JTable(a16, name16); jp.setLayout(new BorderLayout()); jp.add(new JScrollPane(table16), BorderLayout.CENTER); this.add(jp); setBounds(120, 160, 550, 200); this.validate(); } //显示职工基本工资信息 else if (e.getSource() == item17) { this.getContentPane().removeAll(); jp = new JPanel(); try { con = getConnection(); sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = sql.executeQuery("SELECT * FROM CalEmpAndSal"); rs.last(); int lastNumber = rs.getRow(); a17 = new Object[lastNumber][2]; int k = 0; rs.beforeFirst(); while (rs.next()) { a17[k][0] = rs.getString(1); a17[k][1] = rs.getDouble(2) + rs.getDouble(3); // System.out.println("update EmpAndSal set emp_salary="+Double.parseDouble(a[k][1].toString())+" where emp_salEmpNO='"+a[k][0]+"'"); String s = new String("update EmpAndSal set emp_salary=" + Double.parseDouble(a17[k][1].toString()) + " where emp_salEmpNO='" + a17[k][0] + "'"); Statement m = con.createStatement(); m.executeUpdate(s); k++; } con.close(); } catch (SQLException ee) { System.out.println(ee); } table17 = new JTable(a17, name17); jp.setLayout(new BorderLayout()); jp.add(new JScrollPane(table17), BorderLayout.CENTER); this.add(jp); setBounds(120, 160, 550, 200); this.validate(); } //统计职工工资 else if (e.getSource() == item18) { this.getContentPane().removeAll(); jp = new JPanel(); try { con = getConnection(); con.setAutoCommit(false); sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); sql1 = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); rs1 = sql1.executeQuery("SELECT emp_No FROM employees"); rs1.last(); int lastNumber = rs1.getRow(); a18 = new Object[lastNumber][14]; rs1.beforeFirst(); int k = 0; while (rs1.next()) { String m = rs1.getString(1); // System.out.println(m+""); // System.out.println("SELECT emp_salary FROM EmpAndSal WHERE emp_salEmpNo='"+m+"'"); rs = sql.executeQuery("SELECT emp_salary FROM EmpAndSal WHERE emp_salEmpNo='" + m + "'"); a18[k][0] = m; a18[k][1] = 0; a18[k][2] = 0; a18[k][3] = 0; a18[k][4] = 0; a18[k][5] = 0; a18[k][6] = 0; a18[k][7] = 0; a18[k][8] = 0; a18[k][9] = 0; a18[k][10] = 0; a18[k][11] = 0; a18[k][12] = 0; a18[k][13] = 0; rs.beforeFirst(); while (rs.next()) { a18[k][1] = rs.getDouble(1); } double s = Double.parseDouble(a18[k][1].toString()) / 24; double sum = 0; rs = sql.executeQuery("SELECT jin_No,jin_Money,jin_Name FROM CalEmpAndJintie WHERE emp_jinEmpNo='" + m + "'"); //查询津贴 while (rs.next()) { int pr = rs.getInt(1); if (pr == 1) { a18[k][2] = rs.getDouble(2); } else if (pr == 2) { a18[k][3] = rs.getDouble(2); } else if (pr == 3) { a18[k][4] = rs.getDouble(2); } else if (pr == 4) { a18[k][8] = rs.getDouble(2); } } rs = sql.executeQuery("SELECT pre_No,emp_prePreDays,pre_Xishu FROM CalEmpAndPre WHERE emp_preEmpNo='" + m + "'"); //查询出勤 while (rs.next()) { int pre = rs.getInt(1); if (pre == 6) { a18[k][5] = rs.getDouble(2) * s * rs.getDouble(3); } else if (pre == 7) { a18[k][6] = rs.getDouble(2) * s * rs.getDouble(3); } else if (pre == 8) { a18[k][7] = rs.getDouble(2) * s * rs.getDouble(3); } else if (pre == 3) { a18[k][9] = rs.getDouble(2) * s * rs.getDouble(3); } else if (pre == 5) { a18[k][10] = rs.getDouble(2) * s * rs.getDouble(3); } else if (pre == 4) { a18[k][11] = rs.getDouble(2) * s * rs.getDouble(3); } else { sum = sum + rs.getDouble(2) * s * rs.getDouble(3); } } a18[k][12] = sum; a18[k][13] = sum + Double.parseDouble(a18[k][1].toString()) + Double.parseDouble(a18[k][2].toString()) + Double.parseDouble(a18[k][3].toString()) + Double.parseDouble(a18[k][4].toString()) + Double.parseDouble(a18[k][5].toString()) + Double.parseDouble(a18[k][6].toString()) + Double.parseDouble(a18[k][7].toString()) + Double.parseDouble(a18[k][8].toString()) + Double.parseDouble(a18[k][9].toString()) + Double.parseDouble(a18[k][10].toString()) + Double.parseDouble(a18[k][11].toString()); int re = sql.executeUpdate("Update EmpAndRSal SET emp_rsalary=" + Double.parseDouble(a18[k][13].toString()) + " WHERE emp_rsalEmpNo='" + m + "'"); k++; if(re == 1) System.out.println(m + "的实际工资更新成功了"); else System.out.println(m + "的实际工资更新失败了"); } con.commit(); con.close(); } catch (SQLException ee) { try { con.rollback(); } catch (SQLException e1) { System.out.println(e1); } } table18 = new JTable(a18, name18); jp.setLayout(new BorderLayout()); jp.add(new JScrollPane(table18), BorderLayout.CENTER); this.add(jp); setBounds(120, 160, 550, 200); this.validate(); } //统计部门工资 else if (e.getSource() == item19) { this.getContentPane().removeAll(); jp = new JPanel(); jj19 = new JButton("ok"); jt19 = new JTextField(16); jp.setLayout(new FlowLayout()); jp.add(jj19); jp.add(jt19); jj19.addActionListener(this); this.setLayout(new BorderLayout()); this.add(jp, BorderLayout.NORTH); // this.setBounds(10,10,550,200); this.setVisible(true); this.validate(); this.setBounds(10, 10, 550, 203); } //统计总厂工资(没有这个功能了) // else if (e.getSource() == item20) { // this.getContentPane().removeAll(); // jp = new JPanel(); // try { // con = getConnection(); // // sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, // ResultSet.CONCUR_READ_ONLY); // rs = sql.executeQuery("SELECT * FROM CalEmpAndDep"); // rs.last(); // int k = rs.getRow(); // a20 = new Object[k + 1][2]; // rs.beforeFirst(); // k = 0; // double sum = 0; // while (rs.next()) { // a20[k][0] = rs.getDouble(1); // a20[k][1] = rs.getInt(2); // sum = sum + rs.getDouble(1); // // System.out.println(a20[k][0]+""+a20[k][1]); // k++; // } // a20[k][0] = sum; // a20[k][1] = "厂总工资"; // con.close(); // } catch (SQLException e1) { // e1.printStackTrace(); // } // jp.setLayout(new BorderLayout()); // table20 = new JTable(a20, name20); // jp.add(new JScrollPane(table20), BorderLayout.CENTER); // this.add(jp); // this.validate(); // } //删除职工信息 else if (e.getSource() == item21) { this.getContentPane().removeAll(); jp = new JPanel(); hintLabel21 = new JLabel("输入员工编号:"); jb21 = new JButton("删除记录"); inputNumber21 = new JTextField(16); jp.add(hintLabel21); jp.add(inputNumber21); jp.add(jb21); this.add(jp); inputNumber21.addActionListener(this); jb21.addActionListener(this); setBounds(20, 60, 700, 200); this.validate(); } //删除职工出勤信息 else if (e.getSource() == item22) { this.getContentPane().removeAll(); jj22 = new JButton("ok"); jt22 = new JTextField(16); jp = new JPanel(); jp.setLayout(new FlowLayout()); jp.add(jt22); jp.add(jj22); jj22.addActionListener(this); jl22 = new JTextField(16); jb22 = new JButton("删除"); jb22.addActionListener(this); JPanel jpj = new JPanel(); jpj.setLayout(new FlowLayout()); jpj.add(jl22); jpj.add(jb22); this.add(jpj, BorderLayout.NORTH); this.add(jp, BorderLayout.SOUTH); this.setBounds(12, 10, 500, 500); this.setVisible(true); this.validate(); } //删除职工津贴信息 else if (e.getSource() == item23) { this.getContentPane().removeAll(); jj23 = new JButton("ok"); jt23 = new JTextField(16); jp = new JPanel(); jp.setLayout(new FlowLayout()); jp.add(jt23); jp.add(jj23); jj23.addActionListener(this); jl23 = new JTextField(16); jb23 = new JButton("删除"); jb23.addActionListener(this); JPanel jpj = new JPanel(); jpj.setLayout(new FlowLayout()); ; jpj.add(jl23); jpj.add(jb23); this.add(jpj, BorderLayout.NORTH); this.add(jp, BorderLayout.SOUTH); this.setBounds(12, 10, 500, 500); this.setVisible(true); this.validate(); } //修改职工部门监听 if (e.getSource() == inputNumber) { try { num = inputNumber.getText().trim(); con = getConnection(); sql = con.createStatement(); rs = sql.executeQuery("SELECT * FROM DepAndEmp WHERE dep_empEmpNo='" + num + "'"); boolean boo = rs.next(); if (boo == false) { JOptionPane.showMessageDialog(this, "该员工不存在", "提示", JOptionPane.WARNING_MESSAGE); } else { a[0][0] = rs.getInt(2); table.repaint(); } con.close(); } catch (SQLException ee) { System.out.println(ee); } } if (e.getSource() == enterModify) { try { con = getConnection(); sql = con.createStatement(); sql.executeUpdate("UPDATE DepAndEmp SET dep_empDepNo=" + a[0][0] + " WHERE dep_empEmpNo='" + num + "'"); JOptionPane.showMessageDialog(this, "修改成功", "成功", JOptionPane.PLAIN_MESSAGE); con.close(); } catch (SQLException ee) { JOptionPane.showMessageDialog(this, "修改失败" + ee, "失败", JOptionPane.ERROR_MESSAGE); } } // 修改职工基本工资监听 if (e.getSource() == inputNumber3) { try { num = inputNumber3.getText().trim(); con = getConnection(); sql = con.createStatement(); rs = sql.executeQuery("SELECT * FROM EmpAndSal WHERE emp_salEmpNO='" + num + "'"); boolean boo = rs.next(); if (boo == false) { JOptionPane.showMessageDialog(this, "该员工不存在", "提示", JOptionPane.WARNING_MESSAGE); } else { a3[0][0] = rs.getInt(2); a3[0][1] = rs.getInt(3); table3.repaint(); } con.close(); } catch (SQLException ee) { System.out.println(ee); } } if (e.getSource() == enterModify3) { try { con = getConnection(); sql = con.createStatement(); sql.executeUpdate("UPDATE EmpAndSal SET emp_salTimeLev=" + a3[0][0] + ",emp_salTechLev=" + a3[0][1] + " WHERE emp_salEmpNO='" + num + "'"); JOptionPane.showMessageDialog(this, "修改成功", "成功", JOptionPane.PLAIN_MESSAGE); con.close(); } catch (SQLException ee) { JOptionPane.showMessageDialog(this, "修改失败" + ee, "失败", JOptionPane.ERROR_MESSAGE); } } // 修改出勤表信息监听 if (e.getSource() == inputnum4) { try { int x = Integer.parseInt(inputnum4.getText().trim()); num = inputnum4.getText().trim(); con = getConnection(); sql = con.createStatement(); rs = sql.executeQuery("SELECT * from presence where pre_no=" + x); boolean boo = rs.next(); if (boo == false) { JOptionPane.showMessageDialog(this, "出勤类别号不存在", "提示", JOptionPane.WARNING_MESSAGE); } else { a4[0][0] = rs.getString(2); a4[0][1] = rs.getDouble(3); table4.repaint(); } con.close(); } catch (SQLException ee) { System.out.println(ee); } } if (e.getSource() == enter4) { try { con = getConnection(); //System.out.println(a4[0][0] + "," + a4[0][1] + "," + num); sql = con.createStatement(); int k = sql.executeUpdate("update presence set pre_name='" + a4[0][0] + "',pre_xishu=" + Double.parseDouble(a4[0][1].toString()) + " where pre_no='" + num + "'"); if (k == 1) { JOptionPane.showMessageDialog(this, "信息更新成功", "成功", JOptionPane.PLAIN_MESSAGE); con.close(); } } catch (SQLException ee) { JOptionPane.showMessageDialog(this, "更新失败" + ee, "失败", JOptionPane.ERROR_MESSAGE); } } // 监听修改津贴信息 if (e.getSource() == inputnum5) { int k = Integer.parseInt(inputnum5.getText().trim()); try { System.out.println(k + ""); con = getConnection(); sql = con.createStatement(); rs = sql.executeQuery("SELECT * from Jintie where jin_no=" + k); boolean boo = rs.next(); if (boo == false) { JOptionPane.showMessageDialog(this, "出勤类别号不存在", "提示", JOptionPane.WARNING_MESSAGE); } else { a5[0][0] = rs.getString(2); a5[0][1] = rs.getDouble(3); table5.repaint(); } // System.out.println(Double.parseDouble(a5[0][1].toString())+""); con.close(); } catch (SQLException ee) { System.out.println(ee); } } if (e.getSource() == enter5) { int k = Integer.parseInt(inputnum5.getText().trim()); try { con = getConnection(); sql = con.createStatement(); // System.out.println(Double.parseDouble(a5[0][1].toString())+""); int m = sql.executeUpdate("update jintie set jin_name='" + a5[0][0] + "',jin_Money=" + Double.parseDouble(a5[0][1].toString()) + " where jin_no='" + k + "'"); if (m == 1) { JOptionPane.showMessageDialog(this, "信息修改成功", "成功", JOptionPane.PLAIN_MESSAGE); con.close(); } } catch (SQLException ee) { JOptionPane.showMessageDialog(this, "修改失败" + ee, "失败", JOptionPane.ERROR_MESSAGE); } } // 修改工资工龄监听 if (e.getSource() == inputnum6) { int k = Integer.parseInt(inputnum6.getText().trim()); try { // System.out.println(k+""); con = getConnection(); sql = con.createStatement(); rs = sql.executeQuery("SELECT * from SalAndTime where sal_timeLev=" + k); boolean boo = rs.next(); if (boo == false) { JOptionPane.showMessageDialog(this, "该等级不存在", "提示", JOptionPane.WARNING_MESSAGE); } else { a6[0][0] = rs.getDouble(2); table6.repaint(); } con.close(); } catch (SQLException ee) { System.out.println(ee); } } if (e.getSource() == enter6) { int k = Integer.parseInt(inputnum6.getText().trim()); try { con = getConnection(); sql = con.createStatement(); int m = sql .executeUpdate("update SalAndTime set sal_timeMoney=" + Double.parseDouble(a6[0][0].toString()) + " where sal_timeLev='" + k + "'"); if (m == 1) { JOptionPane.showMessageDialog(this, "信息修改成功", "成功", JOptionPane.PLAIN_MESSAGE); con.close(); } } catch (SQLException ee) { JOptionPane.showMessageDialog(this, "修改失败" + ee, "失败", JOptionPane.ERROR_MESSAGE); } } // 修改职务工资监听 if (e.getSource() == inputnum7) { int k = Integer.parseInt(inputnum7.getText().trim()); try { // System.out.println(k+""); con = getConnection(); sql = con.createStatement(); rs = sql.executeQuery("SELECT * from SalAndTech where sal_techLev=" + k); boolean boo = rs.next(); if (boo == false) { JOptionPane.showMessageDialog(this, "该等级不存在", "提示", JOptionPane.WARNING_MESSAGE); } else { a7[0][0] = rs.getDouble(2); table7.repaint(); } con.close(); } catch (SQLException ee) { System.out.println(ee); } } if (e.getSource() == enter7) { int k = Integer.parseInt(inputnum7.getText().trim()); try { con = getConnection(); sql = con.createStatement(); int m = sql .executeUpdate("update SalAndTech set sal_techMoney=" + Double.parseDouble(a7[0][0].toString()) + " where sal_techLev='" + k + "'"); if (m == 1) { JOptionPane.showMessageDialog(this, "信息修改成功", "成功", JOptionPane.PLAIN_MESSAGE); con.close(); } } catch (SQLException ee) { JOptionPane.showMessageDialog(this, "修改失败" + ee, "失败", JOptionPane.ERROR_MESSAGE); } } // 添加职工信息监听 if (e.getSource() == enterInsert8) { try { con = getConnection(); con.setAutoCommit(false); sql = con.createStatement(); int k = sql.executeUpdate("INSERT INTO employees VALUES('" + a8[0][0] + "','" + a8[0][1] + "','" + a8[0][2] + "','" + a8[0][3] + "','" + a8[0][4] + "','" + a8[0][5] + "','" + a8[0][6] + "','" + a8[0][7] + "','" + a8[0][8] + "')"); System.out.println("k = " + k); int m = sql .executeUpdate("INSERT INTO EmpandSal(emp_salEmpNO,emp_salTimeLev,emp_salTechLev) VALUES('" + a8[0][0] + "'," + a8[0][8] + "," + a8[0][10] + ")"); int n = sql.executeUpdate("INSERT INTO DepAndEmp VALUES('" + a8[0][0] + "'," + a8[0][9] + ")"); int l = sql .executeUpdate("INSERT INTO EmpAndRSal(emp_rsalEmpNo) VALUES('" + a8[0][0] + "')"); if (k == 1 && m == 1 && n == 1 && l == 1) JOptionPane.showMessageDialog(this, "插入成功", "成功", JOptionPane.PLAIN_MESSAGE); con.commit(); con.close(); } catch (SQLException ee) { try { con.rollback(); JOptionPane.showMessageDialog(this, "插入失败" + ee, "失败", JOptionPane.ERROR_MESSAGE); } catch (SQLException e1) { e1.printStackTrace(); } } } // 添加出勤信息监听 if (e.getSource() == enterInsert9) { try { con = getConnection(); sql = con.createStatement(); int k = sql.executeUpdate("INSERT INTO EmpAndPre VALUES('" + a9[0][0] + "'," + a9[0][1] + "," + a9[0][2] + ")"); if (k == 1) JOptionPane.showMessageDialog(this, "插入成功", "成功", JOptionPane.PLAIN_MESSAGE); con.close(); } catch (SQLException ee) { JOptionPane.showMessageDialog(this, "插入失败" + ee, "失败", JOptionPane.ERROR_MESSAGE); } } //添加津贴信息监听 if (e.getSource() == enterInsert10) { try { con = getConnection(); sql = con.createStatement(); int k = sql.executeUpdate("INSERT INTO EmpAndJintie VALUES('" + a10[0][0] + "'," + a10[0][1] + ")"); if (k == 1) JOptionPane.showMessageDialog(this, "插入成功", "成功", JOptionPane.PLAIN_MESSAGE); con.close(); } catch (SQLException ee) { JOptionPane.showMessageDialog(this, "插入失败" + ee, "失败", JOptionPane.ERROR_MESSAGE); } } // 添加出勤信息监听 if (e.getSource() == enterInsert11) { try { con = getConnection(); sql = con.createStatement(); int k = sql.executeUpdate("INSERT INTO Presence VALUES(" + Integer.parseInt(a11[0][0].toString()) + ",'"+ a11[0][1] + "',"+ Double.parseDouble(a11[0][2].toString()) + ")"); if (k == 1) JOptionPane.showMessageDialog(this, "插入成功", "成功", JOptionPane.PLAIN_MESSAGE); con.close(); } catch (SQLException ee) { JOptionPane.showMessageDialog(this, "插入失败" + ee, "失败", JOptionPane.ERROR_MESSAGE); } } // 添加津贴信息监听 if (e.getSource() == enterInsert12) { try { con = getConnection(); sql = con.createStatement(); int k = sql.executeUpdate("INSERT INTO Jintie VALUES(" + Integer.parseInt(a12[0][0].toString()) + ",'" + a12[0][1] + "'," + Double.parseDouble(a12[0][2].toString()) + ")"); if (k == 1) JOptionPane.showMessageDialog(this, "插入成功", "成功", JOptionPane.PLAIN_MESSAGE); con.close(); } catch (SQLException ee) { JOptionPane.showMessageDialog(this, "插入失败" + ee, "失败", JOptionPane.ERROR_MESSAGE); } } // 添加工龄等级监听 if (e.getSource() == enterInsert13) { try { con = getConnection(); // con = DriverManager.getConnection("jdbc:odbc:guo", "system", // "system"); cstmt = con.prepareCall("{ call insert_data(?,?,?,?,?) }"); cstmt.setInt(1, 1); cstmt.setInt(2, 0); cstmt.setInt(3, Integer.parseInt(a13[0][0].toString())); System.out.println("here:" + Double.parseDouble(a13[0][0].toString()) + ""); cstmt.setDouble(4, Double.parseDouble(a13[0][1].toString())); cstmt.registerOutParameter(5, java.sql.Types.DECIMAL); cstmt.execute(); int k = cstmt.getInt(5); System.out.println(cstmt.getInt(5)); // sql=con.createStatement(); // int // k=sql.executeUpdate("INSERT INTO SalAndTime VALUES("+Integer.parseInt(a13[0][0].toString())+","+Double.parseDouble(a13[0][1].toString())+")"); if (k == 0) JOptionPane.showMessageDialog(this, "插入成功", "成功", JOptionPane.PLAIN_MESSAGE); con.close(); } catch (SQLException ee) { JOptionPane.showMessageDialog(this, "插入失败" + ee, "失败", JOptionPane.ERROR_MESSAGE); } } // 添加职务工资信息监听 if (e.getSource() == enterInsert14) { try { con = getConnection(); cstmt = con.prepareCall("{ call insert_data(?,?,?,?,?) }"); cstmt.setInt(1, 0); cstmt.setInt(2, 1); cstmt.setInt(3, Integer.parseInt(a14[0][0].toString())); cstmt.setDouble(4, Double.parseDouble(a14[0][1].toString())); cstmt.registerOutParameter(5, java.sql.Types.DECIMAL); cstmt.execute(); int k = cstmt.getInt(5); System.out.println(cstmt.getInt(5)); // sql=con.createStatement(); // int // k=sql.executeUpdate("INSERT INTO SalAndTech VALUES("+Integer.parseInt(a14[0][0].toString())+","+Double.parseDouble(a14[0][1].toString())+")"); if (k == 0) JOptionPane.showMessageDialog(this, "插入成功", "成功", JOptionPane.PLAIN_MESSAGE); con.close(); } catch (SQLException ee) { JOptionPane.showMessageDialog(this, "插入失败" + ee, "失败", JOptionPane.ERROR_MESSAGE); } } // 监听部门工资统计 if (e.getSource() == jj19) { int m = Integer.parseInt(jt19.getText().toString()); System.out.println("m = " + m); try { con = getConnection(); sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = sql.executeQuery("SELECT emp_rsalEmpNo,emp_rsalary FROM DepAndEmp,EmpAndRSal WHERE dep_empEmpNo=emp_rsalEmpNo AND dep_empDepNo=" + m); rs.last(); int k = rs.getRow(); if (k != 1) { a19 = new Object[k + 1][2]; rs.beforeFirst(); k = 0; double sum = 0; while (rs.next()) { a19[k][0] = rs.getString(1); a19[k][1] = rs.getDouble(2); sum = sum + rs.getDouble(2); // System.out.println(a[k][0]+""+a[k][1]); k++; } a19[k][0] = "该部门总工资"; a19[k][1] = sum; con.close(); table19 = new JTable(a19, name19); add(new JScrollPane(table19), BorderLayout.CENTER); } else JOptionPane.showMessageDialog(this, "输入错误", "错误", JOptionPane.ERROR_MESSAGE); } catch (SQLException e1) { e1.printStackTrace(); } table19 = new JTable(a19, name19); add(new JScrollPane(table19), BorderLayout.CENTER); validate(); } // 删除职工信息监听 if (e.getSource() == jb21) { try { con = getConnection(); sql = con.createStatement(); int l = sql .executeUpdate("delete from employees where emp_No='" + inputNumber21.getText() + "'"); if (l == 1) JOptionPane.showMessageDialog(this, "删除成功", "成功", JOptionPane.PLAIN_MESSAGE); else JOptionPane.showMessageDialog(this, "没有该员工", "警告", JOptionPane.WARNING_MESSAGE); con.close(); } catch (SQLException ee) { JOptionPane.showMessageDialog(this, "删除失败" + ee, "失败", JOptionPane.ERROR_MESSAGE); } } // 删除员工出勤信息监听 if (e.getSource() == jj22) { num = jt22.getText(); try { con = getConnection(); sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = sql.executeQuery("SELECT * FROM EmpAndPre WHERE emp_preEmpNo='" + num + "'"); rs.last(); int k = rs.getRow(); a22 = new Object[k][3]; rs.beforeFirst(); k = 0; while (rs.next()) { a22[k][0] = rs.getString(1); a22[k][1] = rs.getInt(2); a22[k][2] = rs.getInt(3); k++; } con.close(); } catch (SQLException e1) { e1.printStackTrace(); } table22 = new JTable(a22, name22); add(new JScrollPane(table22), BorderLayout.CENTER); JPanel jpj = new JPanel(); jpj.setLayout(new FlowLayout()); validate(); } else if (e.getSource() == jb22) { String b = jt22.getText(); int c = Integer.parseInt(jl22.getText()); System.out.println(b + " " + c); try { con = getConnection(); sql = con.createStatement(); int l = sql .executeUpdate("DELETE FROM EmpAndPre WHERE emp_preEmpNo='" + b + "' and emp_prePreNo=" + c + ""); if (l == 0) { JOptionPane.showMessageDialog(this, "删除失败", "失败", JOptionPane.ERROR_MESSAGE); } else JOptionPane.showMessageDialog(this, "删除成功", "成功", JOptionPane.PLAIN_MESSAGE); con.close(); } catch (SQLException e1) { e1.printStackTrace(); } validate(); } //删除职工津贴信息 if (e.getSource() == jj23) { num = jt23.getText(); try { con = getConnection(); sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = sql.executeQuery("SELECT * FROM EmpAndJintie WHERE emp_jinEmpNo='" + num + "'"); rs.last(); int k = rs.getRow(); a23 = new Object[k][2]; rs.beforeFirst(); k = 0; while (rs.next()) { a23[k][0] = rs.getString(1); a23[k][1] = rs.getInt(2); k++; } con.close(); } catch (SQLException e1) { e1.printStackTrace(); } table23 = new JTable(a23, name23); add(new JScrollPane(table23), BorderLayout.CENTER); JPanel jpj = new JPanel(); jpj.setLayout(new FlowLayout()); validate(); } else if (e.getSource() == jb23) { String b = jt23.getText(); int c = Integer.parseInt(jl23.getText()); System.out.println(b + " " + c); try { con = getConnection(); sql = con.createStatement(); int l = sql .executeUpdate("DELETE FROM EmpAndJintie WHERE emp_jinEmpNo='" + b + "' and emp_jinJinNo=" + c + ""); if (l == 0) { JOptionPane.showMessageDialog(this, "删除失败", "失败", JOptionPane.ERROR_MESSAGE); } else JOptionPane.showMessageDialog(this, "删除成功", "成功", JOptionPane.PLAIN_MESSAGE); con.close(); } catch (SQLException e1) { e1.printStackTrace(); } } } private Connection getConnection() {// String url = "jdbc:sqlserver://localhost:1433;DatabaseName=Salary"; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载mysql的驱动 return (Connection) DriverManager.getConnection(url, "sa", "123"); //返回数据库的连接 } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return null; } public static void main(String args[]) { new adminUser(); } } ``` ``` Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at ch12.adminUser.actionPerformed(adminUser.java:1201) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$400(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
小白学 Python 爬虫(25):爬取股票信息
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
世界上最牛的网络设备,价格低廉,其貌不扬......
夜深人静,电视和电脑都已经关机休息,但是我还在默默工作,我安静地趴在你家中的某个地方,7*24小时不眠不休,任劳任怨,目的只有一个,能让你舒服地躺在床上,畅快地刷手机!没错,这就是我,...
《面试宝典》2019年springmvc面试高频题(java)
前言 2019即将过去,伴随我们即将迎来的又是新的一年,过完春节,马上又要迎来新的金三银四面试季。那么,作为程序猿的你,是否真的有所准备的呢,亦或是安于本职工作,继续做好手头上的事情。 当然,不论选择如何,假如你真的准备在之后的金三银四跳槽的话,那么作为一个Java工程师,就不可不看了。如何在几个月的时间里,快速的为即将到来的面试进行充分的准备呢? 1、什么是Spring MVC ?简单...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试一个ArrayList我都能跟面试官扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
2020年1月中国编程语言排行榜,python是2019增长最快编程语言
编程语言比例 排名 编程语言 最低工资 工资中位数 最低工资 最高工资 人头 人头百分比 1 rust 20713 17500 5042 46250 480 0.14% 2 typescript 18503 22500 6000 30000 1821 0.52% 3 lua 18150 17500 5250 35000 2956 0.84% 4 go 17989 16...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
学习使用一些插件,可以提高开发效率。对于我们开发人员很有帮助。这篇博客介绍了开发中使用的插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
工作十年的数据分析师被炒,没有方向,你根本躲不过中年危机
2020年刚刚开始,就意味着离职潮高峰的到来,我身边就有不少人拿着年终奖离职了,而最让我感到意外的,是一位工作十年的数据分析师也离职了,不同于别人的主动辞职,他是被公司炒掉的。 很多人都说数据分析是个好饭碗,工作不累薪资高、入门简单又好学。然而今年34的他,却真正尝到了中年危机的滋味,平时也有不少人都会私信问我: 数据分析师也有中年危机吗?跟程序员一样是吃青春饭的吗?该怎么保证自己不被公司淘汰...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
立即提问