jdbc执行SqlServer存储过程时 成功后返回结果集,执行失败后 return值的问题 3C

最近遇到一个存储过程,由于接口不是很规范,由于执行成功和执行失败返回的结果不一致,求大神帮忙解答,只有这点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???????????在线等,求助!!!!!!!!!!!!!!

4个回答

有没有人啊。。。。。求帮忙

各位大哥大姐,求帮忙啊

没有人吗

在begin 后面加上这句看看 SET NOCOUNT ON

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
jdbc 执行存储过程成功为何返回为false
jdbc 执行存储过程,call.execute( ) 成功为何返回为false?!![图片](https://img-ask.csdn.net/upload/201702/19/1487473009_521905.jpg)
jdbc执行sql server存储过程
写了一个存储过程 里面对一个表先执行insert into语句,然后在执行select 语句返回结果集。。用jdbc调用的时候报错没有结果集返回,去掉里面insert into 语句就没问题。。怎么解决
java使用jdbc调用存储过程,没有返回结果集。。
整个过程是这样的:之前的程序已经上线运行了。后来客户数据库升级,从sqlServer2005升级到sqlServer2008.当然系统也做了相应改动。我们是第三方软件,调用他们的数据库中的存储过程来查询数据。他们升级完系统和数据库之后,我们就查询数据报错。 然后最先报的错是驱动版本问题。我就到网上下了sqljdbc4.jar。替换了之后不再报驱动的问题。但是一直无结果集。于是我直接把调用存储过程的sql语句放到数据库中执行。是能查到结果的。然后,我又把sql语句换成一个简单的select语句。这下有结果集了。那么问题出在哪?该怎么改? ``` Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); con = DriverManager.getConnection("jdbc:sqlserver://10.4.2.10:1433;databaseName=cmp_jxt_jmpt","jmpt_open","jmpt_open*1nl0#"); // proc_stmt = con.prepareCall(" exec dbo.Proc_Jmpt_ReturnTemp 'bmtz','"+sfzjh+"',5 "); proc_stmt = con.prepareCall("select top 5 userId,loginTime,refreshtime from user_online_data"); // proc_stmt.setString(1, "bmtz"); // proc_stmt.setString(2, sfzjh); // proc_stmt.setString(3, "5"); rs = proc_stmt.executeQuery(); while (rs.next()) { String newsId = rs.getString("userId"); String title = rs.getString("loginTime"); String detName = rs.getString("refreshtime"); // String addDate = rs.getString("addDate"); // OA_BMTZ t = new OA_BMTZ(); // t.setNewsId(rs.getString("newsId")); // t.setTitle(rs.getString("title")); // t.setDetName(rs.getString("detName")); // t.setAddDate(rs.getString("addDate")); // list.add(t); } ``` 代码中可以看出我的修改轨迹。 问题出在哪,请大神指点迷经。
JDBC 1443 sqlserver
JDBC 连接 sqlserver 必须要开启1433端口吗?不只是本机连接
jdbc连接sqlserver2008出错求解
jdbc连接sqlserver2008出错求解,改怎么解决?![图片说明](https://img-ask.csdn.net/upload/201612/14/1481684573_866459.png)
JDBC调用存储过程,存储过程中事务回滚,报错
JDBC 调用存储过程,然后存储过程里面 本身写有事务 ,然后回滚了,然后到JDBC这边的时候,事务无论提交也好还是回滚也好,都会报“服务器无法继续执行该事务”,根据我的理解,存储过程里面的事务回滚了,到JDBC层面,不管rollback还是Commit都还在操作同一个事务,但是我又奇怪,无论事务回滚或者成功 不都意味着 这是事务结束么,为什么在JDBC 会报这样的错呢。
mybatis如何通过jdbc连接sqlserver数据库
我用的NavicatServer软件 制作的数据库表,并且可以连接上 有ip地址 用户名和密码 在junit测试的时候 报错: **Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 127.0.0.1,1433 的 TCP/IP 连接失败。错误:“null。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。** 在网上找了很多办法没有解决。 1先是从官网下载了sqlserver的安装包 安装上了 2有下载了jdbc连接sqlserver的驱动包 这样反复几次还是这个报错信息 问题已经解决了:谢谢大家。 只需要更改url上的IP地址和端口号即可。无需在本地安装sqlserver数据库啦!
JDBC调用mysql存储过程不执行也不报错
我写了一个定时任务,包含两部分内容:调用存储过程和调用接口推数据。 调用储存过程不执行也报错,调用接口正常。 String procdure = "{Call pr_tp_carInfo(?)}"; CallableStatement cs; try { cs = dao.getSessionFactory().openSession().connection().prepareCall(procdure); cs.setString(1, DateUtil.getCurrDate()); cs.execute(); } catch (HibernateException e1) { // TODO Auto-generated catch block e1.printStackTrace(); log.error(e1); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); log.error(e1); }
myeclipse提示没有结果集,但是放到sqlserver里面是有结果的
com.microsoft.sqlserver.jdbc.SQLServerException: 该语句没有返回结果集。 可是我把那句SQL语句打印出来黏贴到sqlserver数据库里面是有数据的
怎么用JDBC和SQLserver2008R2相连?
需要具体的代码,这是我写的有问题,该设置的都设置了,还是有问题,求大神指教! import java.sql.Connection; import java.sql.*; public class lianjie{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String ur1="jdbc:sqlserver://localhost:1433;databaseName=zjy;IntegratedSecurity"; Connection con=lianjie.getConnection(ur1); private static Connection getConnection(String ur12) { // TODO Auto-generated method stub return null; } }
怪异问题!sql在pl/sql中执行结果与java jdbc执行结果不一致
做一查询系统(struts2+myeclipse+tomcat+oracle9),一般先在pl/sql中测试sql语句,无问题后在action中使用oracle thin模式连接数据库,执行sql语句,然后将查询结果存入HashMap后输出至jsp页面。 出现如下怪异问题: 1、在pl/sql中测试sql语句时结果正常。结果中有6个字段,其中两个字段为count()函数统计出的数值。 2、将在pl/sql中测试过的sql语句写入struts2的action中,通过jdbc thin模式执行,查询结果与pl/sql中测试结果不一致。 count()函数统计的那两个字段的值不一致,暂未发现规律。数值接近,互有高低。 在struts2的action中执行sql语句前,先打印sql语句,打印语句与pl/sql中测试语句一样,查询结果一致。 在action中执行sql语句后在将rs(RecordSet)存入HashMap前,输出rs内容,count()统计出的数值结果已经不一致。 该系统中类似查询功能有几个,实现方式方法相同,唯独这个出现pl/sql和jdbc执行同一句sql结果后部分字段数值不一致的诡异情况! 烦请大家帮助分析、支招!不胜感激!!
尝试写了一个 JDBC 操作 SQLServer 的工具类,但是好像有问题,求大神帮忙指正
java新人,尝试写了一个 JDBC 操作 SQLServer 的工具类,但是好像有问题,调用 insert 指令没问题,而 select 指令出现如下报错: com.microsoft.sqlserver.jdbc.SQLServerException: ')' 附近有语法错误。 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216) at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515) at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:792) at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:689) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(SQLServerStatement.java:616) at com.javaee.servletxm.comm.MSSQLJDBC.select(MSSQLJDBC.java:160) at com.javaee.servletxm.comm.MSSQLJDBC.select(MSSQLJDBC.java:195) at com.javaee.servletxm.comm.MSSQLJDBC.selectFirstValue(MSSQLJDBC.java:172) at com.javaee.servletxm.comm.MSSQLJDBC.getPageNumber(MSSQLJDBC.java:221) at com.javaee.servletxm.comm.MSSQLJDBC.selectByFY(MSSQLJDBC.java:259) at com.javaee.servletxm.kqgl.KqManager.getAllKqxx(KqManager.java:38) at com.javaee.servletxm.kqgl.Kqwh.doGet(Kqwh.java:47) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879) at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:617) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1760) at java.lang.Thread.run(Thread.java:724) 这是具体的代码,求大神帮忙指正 package com.javaee.servletxm.comm; /** * jdbc下 SQL Server 2005 数据库的封装类 */ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.List; import java.util.Properties; public class MSSQLJDBC { // 配置文件名称 private String iniFileName = MSSQLJDBC.class.getClassLoader().getResource("/com/javaee/servletxm/comm").getPath()+ "mssql.properties"; // 连接数据库 private String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; private String url = "jdbc:sqlserver://localhost;DatabaseName=jdms"; private String user = "sa"; private String password = ""; // 定义连接属性 private Connection connect = null; // 与连接有关三个通道 private Statement stmt = null; private PreparedStatement pstmt = null; private CallableStatement cstmt = null; public static final String stmtType = "stmt"; public static final String pstmtType = "pstmt"; public static final String cstmtType = "cstmt"; // 定义参数类型的静态常量值 public static final String varCharType = "varchar"; public static final String intType = "int"; public static final String doubleType = "decimal"; public static final String dateType = "datetime"; public static final String timeType = "timestamp"; // 定义全局的结果集 private ResultSet rs = null; // 在构造方法中对属性进行初始化赋值操作 public MSSQLJDBC() { // 读取配置文件 readIni(); // 初始化连接 initConnect(); } // 可配置文件 .properties // 读取配置文件 private void readIni() { File file = new File(iniFileName); if (!file.exists()) { // 创建一个文件 try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } // 判断文件是否有值 if (file.length() == 0) {// 说明是一个空文件 // 初始化值 try { Properties p = new Properties(); p.put("driver", driver); p.put("url", url); p.put("user", user); p.put("password", password); FileOutputStream fos = new FileOutputStream(file); p.store(fos, "配置文件信息"); fos.close(); } catch (IOException e) { e.printStackTrace(); } } else {// 如果有值 // 将信息读取出来 try { FileInputStream fis = new FileInputStream(file); Properties p = new Properties(); p.load(fis); this.driver = p.getProperty("driver"); this.url = p.getProperty("url"); this.user = p.getProperty("user"); this.password = p.getProperty("password"); fis.close(); } catch (IOException e) { e.printStackTrace(); } } } // 建立连接 private void initConnect() { try { Class.forName(driver); this.connect = DriverManager.getConnection(url, user, password); this.connect.setAutoCommit(false);// 设置手动提交事务 this.stmt = connect.createStatement(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } /*/ 从tomcat缓冲池获取连接 private void initConnectFromDataSource() { try { InitialContext ic = new InitialContext(); DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/oracleds"); this.connect = ds.getConnection(); this.connect.setAutoCommit(false); this.stmt = connect.createStatement(); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } }*/ // 需要调用者控制事务的两个方法 // 提交方法 private void commit() { try { this.connect.commit(); } catch (SQLException e) { e.printStackTrace(); } } // 回滚事务 private void rollBack() { try { this.connect.rollback(); } catch (SQLException e) { e.printStackTrace(); } } // 定义一组与操作有关的方法 // 使用普通通道执行的select public ResultSet select(String sql) { ResultSet prs = null; if (stmt != null) { try { prs = stmt.executeQuery(sql); } catch (SQLException e) { e.printStackTrace(); } } return prs; } // 根据传入的sql直接获取单一值 // 使用此方法的时候sql语句返回的单一的值 public String selectFirstValue(String sql, String type, List<String> csList) { String rstr = ""; rs = select(sql, type, csList);// 确定此结果集只有一条记录 if (rs != null) {// 说明结果集有值,且只有一条记录 try { ResultSetMetaData rsmd = rs.getMetaData(); if (rs.next()) { // 移动到第一条记录 String p_type = rsmd.getColumnTypeName(1); rstr = getResultSetValue(rs, 1, p_type); } } catch (SQLException e) { e.printStackTrace(); } } return rstr; } // 使用普通通道执行的select /** * sql 参数 type 使用通道的类型 stmt pstmt cstmt List<String> csList 预编通道执行的参数队列 * String 最少必须满足如下条件的字符串 数据类型 ,数据值 数据类型定义说明 字符串 数字(整数、小数) 日期(DATE、TIMESTAMP) */ public ResultSet select(String sql, String type, List<String> csList) { ResultSet prs = null; if (type.equals(stmtType)) {// 说明使用普通通道来执行 prs = select(sql); } else if (type.equals(pstmtType)) {// 说明使用预编译通道来执行 if (connect != null) { try { pstmt = connect.prepareStatement(sql); // 验证传入的参数和sql中的参数个数一致 setPrepareStatement(pstmt, csList);// 将参数设置进当前的预编译通道 prs = pstmt.executeQuery(); } catch (Exception e) { e.printStackTrace(); } } } return prs; } // 获取 总页数 public int getPageNumber(String sql, String type, List<String> csList, int pageSize) { // 处理总页数 int pageNumber = 0; // 第一步获取sql总记录数 String psql = "select count(*) from (" + sql + ")"; String result = selectFirstValue(psql, type, csList); int rows = 0; if (result != null && result.trim() != "") { rows = Integer.valueOf(result); } if (rows % pageSize == 0) { pageNumber = rows / pageSize; } else { pageNumber = rows / pageSize + 1; } return pageNumber; } /** * 自动添加分页查询方法 * * @param sql * 要执行的sql * @param type * 执行方式 * @param csList * 参数列表 * @param curPage * 当前页数 * @param pageSize * 每页记录数 默认为10 * @return */ public ResultSet selectByFY(String sql, String type, List<String> csList, int curPage, int pageSize) { ResultSet prs = null; // 处理 每页记录数 if (pageSize <= 0) { pageSize = 10;// 默认页面10条记录 } int pageNumber = getPageNumber(sql, type, csList, pageSize); // 处理当前页数 if (curPage < 0) { curPage = 1;// 默认第一页 } if (curPage > pageNumber) { curPage = pageNumber; } String psql = "select tmpaa.* from (select tmpa.*,(select (ROW_NUMBER() over (order by id))) as rn from (" + sql + ") tmpa where (select (ROW_NUMBER() over (order by id))) <= " + (curPage * pageSize) + ") tmpaa where tmpaa.rn >= " + ((curPage - 1) * pageSize + 1); prs = select(psql, type, csList); return prs; } // 将预编通道执行的参数队列按照指定规则设置进通道中 private void setPrepareStatement(PreparedStatement p, List<String> csList) throws Exception { if (csList != null && csList.size() > 0) { for (int i = 0; i < csList.size(); i++) { // 此处的str是数据类型 ,数据值 // 解析出数据类型和数据值 String[] s = csList.get(i).split(","); String sType = s[0]; String sData = s[1]; if (varCharType.equals(sType)) { p.setString(i + 1, sData); } else if (intType.equals(sType)) { p.setInt(i + 1, Integer.valueOf(sData)); } else if(doubleType.equals(sType)){ p.setDouble(i+1, Double.valueOf(sData)); } else if (dateType.equals(sType)) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd"); java.util.Date d = sdf.parse(sData); p.setDate(i + 1, new Date(d.getTime())); } else if (timeType.equals(sType)) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd"); java.util.Date d = sdf.parse(sData); p.setTimestamp(i + 1, new Timestamp(d.getTime())); } } } } // 定义一个执行insert update delete的方法 public int iudSql(String sql) { int ri = -1; if (stmt != null) { try { ri = stmt.executeUpdate(sql); commit(); } catch (SQLException e) { e.printStackTrace(); rollBack(); } } return ri; } public int iudSql(String sql, String type, List<String> csList) { int ri = -1; if (stmtType.equals(type)) { ri = iudSql(sql); } else if (pstmtType.equals(type)) { if (connect != null) { try { pstmt = connect.prepareStatement(sql); setPrepareStatement(pstmt, csList); ri = pstmt.executeUpdate(); commit(); } catch (Exception e) { e.printStackTrace(); rollBack(); } } } return ri; } /** * 编写一个通用的遍历ResultSet结果集的方法 */ public void iteratorResultSet(ResultSet rs) { try { if (rs != null) {// 说明有值 // ResultSetMetaData 此对象里封装了与结果集有关所有信息 // 此结果有几列组成,每列的列名,每列的数据类型 ResultSetMetaData rsmd = rs.getMetaData(); // 得到结果集列数 int columnCount = rsmd.getColumnCount(); // 输出此结果集的所有列名 for (int i = 1; i <= columnCount; i++) { System.out.print(rsmd.getColumnName(i) + "\t"); } System.out.println(""); // 遍历输出所有的数据 while (rs.next()) { // 如何在获取rs中的数据? for (int i = 1; i <= columnCount; i++) { String type = rsmd.getColumnTypeName(i); System.out.print(getResultSetValue(rs, i, type) + "\t"); } System.out.println(""); } } } catch (SQLException e) { e.printStackTrace(); } } // 从ResultSet中根据数据类型来得到数据值的方法 // 先处理常用的sqlserver的数据类型的对应 private String getResultSetValue(ResultSet rs, int index, String type) { String rstr = ""; try { if (rs != null && !"".equals(type) && index > 0) { if ("char".equals(type.trim()) || "varchar".equals(type.trim())) { if (rs.getString(index) != null) { rstr = rs.getString(index); } } else if ("int".equals(type.trim())) { rstr = rs.getInt(index) + ""; } else if ("decimal".equals(type.trim())) { rstr = String.valueOf(rs.getDouble(index)); } else if ("date".equals(type.trim())) { Date date = rs.getDate(index); if (date != null) { rstr = new SimpleDateFormat("yyyy年MM月dd日").format(date); } } else if ("timestamp".equals(type.trim()) || "datetime".equals(type.trim())) { Timestamp tt = rs.getTimestamp(index); if (tt != null) { rstr = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒").format(tt); } } } } catch (SQLException e) { e.printStackTrace(); } return rstr; } /* //统一事务管理的批量sql的封装 public boolean iudSql(List<String> sqlList){ int ri = -1; if(stmt!=null){ try { ri = stmt.executeUpdate(sql); commit(); } catch (SQLException e) { e.printStackTrace(); rollBack(); } } return ri; }*/ // 关闭连接 public void close() { try { // 关闭所有的与数据库有关的对象 if (rs != null) { rs.close(); rs = null; } if (stmt != null) { stmt.close(); stmt = null; } if (pstmt != null) { pstmt.close(); pstmt = null; } if (cstmt != null) { cstmt.close(); cstmt = null; } if (connect != null) { connect.close(); connect = null; } } catch (SQLException e) { e.printStackTrace(); } } }
jdbc执行update语句,突然卡死了
我原先用的是hibernate的hql语句执行批量的update,并且是更新的同一条数据,执行一半的更新时,突然就卡住不动了,也不知道是什么原因 数据库是SqlServer2008。后来换成jdbc的sql语句执行批量更新(还是不断更新同一条记录),结果还是出现相同情况,程序卡住了(在执行jdbc.query()方法卡住了),我在用hibernate时,乐观锁和悲观锁都试过了,还是不行,jdbc也是,试过了给sql语句加锁,结果还是不行,请问各位这情况怎么解决,我实在是没办法了!求各位帮帮忙!
IDEA JDBC 结果集 next()
# 结果集只有一行,debug时next()方法返回false,无法进入循环,但是运行时可以显示结果,说明循环已经进行(结果集有多行时正常,有几条就输出几条) ## 代码(只粘贴有关代码) ### Servlet ```java //sql语句 String sql = "SELECT * FROM userdata WHERE id = ?"; //传入连接、接收数据的类,sql语句以及sql语句中?的替代 ArrayList<Data> arrayList = JDBC.search(connection, Data.class, sql, 1); PrintWriter writer = response.getWriter(); for (Data d : arrayList) { writer.println(d); } ``` ### JDBC类 ```java public static <T> ArrayList<T> search(Connection connection, Class<T> clazz, String sql, Object... args) { PreparedStatement ps = null; ResultSet result = null; ArrayList<T> collection = new ArrayList<T>(); try { ps = connection.prepareStatement(sql); for (int i = 0; i < args.length; i++) { ps.setObject(i + 1, args[i]); } result = ps.executeQuery(); //获取结果集的元数据 ResultSetMetaData rsmd = result.getMetaData(); //之前没有用过next() while (result.next()) { //获取结果集列数 int columnCount = rsmd.getColumnCount(); //创建存储结果集数据的对象 T t = clazz.getDeclaredConstructor().newInstance(); for (int i = 0; i < columnCount; i++) { //获取结果集一行的各列的数据 Object columnValue = result.getObject(i + 1); //获取当前列的列名 String columnLabel = rsmd.getColumnLabel(i + 1); //给对象的每个属性赋值 Field field = clazz.getDeclaredField(columnLabel); field.setAccessible(true); field.set(t, columnValue); } collection.add(t); } } catch (SQLException | NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } finally { if (collection == null) { System.out.println("Failed to search"); } return collection; } } ``` ## debug时next()返回false,无法进入循环 <br> ![图片说明](https://img-ask.csdn.net/upload/201910/02/1570007416_671858.png) <br> <br> ## 运行时在页面可以显示 <br> ![图片说明](https://img-ask.csdn.net/upload/201910/02/1570007116_641593.png)
jdbc连接不上数据库,sqlserver2000,jdbc
系统win7, 驱动sql2k,但就是连接不上数据库 jdbc-odbc可以连接数据库 求大神指教,谢啦 报错是:java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver package com.test_sql; import java.sql.*; public class Demo4 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Connection conn = null; PreparedStatement ps = null; ResultSet rs =null; try { //加载驱动 //com\microsoft\jdbc\sqlserver Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //建立连接jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DBName conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=master","sa","arisen"); String sql = "select *from employee"; ps = conn.prepareStatement(sql); rs = ps.executeQuery(); while(rs.next()){ int uid = rs.getInt("uid"); String uname = rs.getString(2); double sal = rs.getDouble(3); int deptno = rs.getInt(4); System.out.println(uid+" "+ uname +" " +sal+" "+deptno); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally{ try { if(rs!=null){ rs.close(); } if(ps!=null){ ps.close(); } if(conn!=null){ conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
使用jdbc链接sqlserver 2008出现Could not get JDBC Connection,项目可以启动,但不能访问数据库
JDBC:![图片说明](https://img-ask.csdn.net/upload/201909/03/1567504614_704721.png) mybatis:![图片说明](https://img-ask.csdn.net/upload/201909/03/1567504645_758618.png) jar包没问题,可以正常连接2005的数据库,链接这个2008的就不行了,求助各位大神啊 报错代码:### The error occurred while executing a query ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (I/O Error: Connection reset)] with root cause java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:209) at java.net.SocketInputStream.read(SocketInputStream.java:141) at java.io.DataInputStream.readFully(DataInputStream.java:195) at java.io.DataInputStream.readFully(DataInputStream.java:169) at net.sourceforge.jtds.jdbc.SharedSocket.readPacket(SharedSocket.java:842) at net.sourceforge.jtds.jdbc.SharedSocket.getNetPacket(SharedSocket.java:723) at net.sourceforge.jtds.jdbc.ResponseStream.getPacket(ResponseStream.java:466) at net.sourceforge.jtds.jdbc.ResponseStream.read(ResponseStream.java:103) at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2206) at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:603) at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:357) at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50) at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184) at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38) at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582) at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556) at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77) at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:84) at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:70) at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:336) at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:84) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:434) at com.sun.proxy.$Proxy17.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:231) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:75) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59) at com.sun.proxy.$Proxy21.getproList(Unknown Source) at com.ytxd.service.DuplicateCheck.DuplicateCheckServiceImpl.getproList(DuplicateCheckServiceImpl.java:333) at com.ytxd.controller.DuplicateCheck.DuplicateCheck_Controller.GetList(DuplicateCheck_Controller.java:44) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) at org.apache.coyote.http11.Http11Proce ssor.service(Http11Processor.java:783) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:789) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1437) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)
jdbc执行sql 不支持“variant”数据类型。
我一个sql查询表说明字段 ``` select top 100 [value] from sys.extended_properties ``` 在java中使用jdbc执行的时候总是报错,说value是一个变量类型。如下错误 ``` Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 不支持“variant”数据类型。 ``` 请问有人遇到过吗,如何解决
jdbc无法执行删除操作
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Scanner; public class delt { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //装载驱动 Connection con=null; PreparedStatement pre=null; Scanner input=new Scanner(System.in); System.out.print("输入要删除的姓名:"); String name=input.next(); try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //得到数据库的连接对象 String url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=us"; con=DriverManager.getConnection(url,"sa","123456"); //编写SQL语句 String sql="delete name from st where name=?"; //建立一个预处理对象 pre=con.prepareStatement(sql); pre.setString(1,name); System.out.println("11"); int i=pre.executeUpdate(); //con.commit(); System.out.println("22"); if(i>0) System.out.println("删除成功"); else System.out.println("操作未成功"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } ``` ``` 输入要删除的姓名:王二 11 com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'name' 无效。 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source) at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getPrepExecResponse(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PreparedStatementExecutionRequest.executeStatement(Unknown Source) at com.microsoft.sqlserver.jdbc.CancelableRequest.execute(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeRequest(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(Unknown Source) at delt.main(delt.java:33)
jdbc连接数据库,查询成功返回数据但是还是报错java.sql.SQLException: Operation not allowed after ResultSet closed 这是怎么回事?
try { Class.forName("com.mysql.jdbc.Driver"); String ur1="jdbc:mysql://localhost:3306/lingshi"; String username="root"; String password="root"; Connection con=DriverManager.getConnection(ur1,username,password); Statement stmt=con.createStatement(); String sql1="select * from guogan"; ResultSet rs1=stmt.executeQuery(sql1); while(rs1.next()){ String id=rs1.getString(1); System.out.print(id+"\t"); String name=rs1.getString("name"); System.out.print(name+"\t"); String price=rs1.getString(3); System.out.print(price+"\t"); String weight=rs1.getString("weight"); System.out.print(weight+"\t"); String birthdate=rs1.getString("birthdate"); System.out.print(birthdate+"\t"); String enddate=rs1.getString("enddate"); System.out.print(enddate+"\t"); String PD=rs1.getString("PD"); System.out.print(PD+"\t"); rs1.close(); stmt.close(); con.close(); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch(SQLException e1){ e1.printStackTrace(); } 我的结果如下 1 芒果干 13.00 106g 2019.12.29 2020.12.29 12months java.sql.SQLException: Operation not allowed after ResultSet closed at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:963)
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
JDK12 Collectors.teeing 你真的需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????): 管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音
作者 | Google团队 译者 | 凯隐 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 本文中,Google 团队提出了一种文本语音合成(text to speech)神经系统,能通过少量样本学习到多个不同说话者(speaker)的语音特征,并合成他们的讲话音频。此外,对于训练时网络没有接触过的说话者,也能在不重新训练的情况下,仅通过未知...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,若没有烟草销售系统,本人家人想要购买烟草,还要独自前往药...
4G EPS 第四代移动通信系统
目录 文章目录目录4G 与 LTE/EPCLTE/EPC 的架构E-UTRANE-UTRAN 协议栈eNodeBEPCMMES-GWP-GWHSSLTE/EPC 协议栈概览 4G 与 LTE/EPC 4G,即第四代移动通信系统,提供了 3G 不能满足的无线网络宽带化,主要提供数据(上网)业务。而 LTE(Long Term Evolution,长期演进技术)是电信领域用于手机及数据终端的高速无线通...
相关热词 c# clr dll c# 如何orm c# 固定大小的字符数组 c#框架设计 c# 删除数据库 c# 中文文字 图片转 c# 成员属性 接口 c#如何将程序封装 16进制负数转换 c# c#练手项目
立即提问