很奇怪!加断点java执行的sql和不加断点执行的sql结果不一致!

我让其打印出来了一段sql,在plsql中执行,执行结果数据没问题,但是在java中执行出来的结果却是不同,但也不是完全不同,只是count(*) 的结果不一致

1个回答

有可能是传入的查询参数问题,要看下打印出来的执行sql是不是一致的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
idea怎么完成打印完整过长的执行sql。

在idea中配置配置log4j后,控制台可以打印sql。但是如果sql过长时打印的sql是不完整的。spring+mybatis。 就是这种![图片说明](https://img-ask.csdn.net/upload/201801/16/1516070549_482201.png) 哪位大师指导需要怎么处理吗

javaweb小项目,在写完登录功能时设置断点查看程序运行状况时得到的结果和直接运行得到的结果不一样???

初学者今天打算自己写一下小项目,写完登录功能后运行了没什么问题。 但是设置断点之后打算一步步看运行过程,发生了诡异的事情,因为之前用断点查看运行过程没出现过这样的事,首先正常启动得到正常的结果,加了断点走却得不到一样的结果。 程序正常运行大概流程就是在login.html填上用户名和密码发送请求给LoginServlet调用service,service调dao执行sql查询是否有这个用户。 事务处理用了动态代理,dao层的实现类也依靠mybatis的动态代理,只写sql语句。 一般我发现问题后都会上网查,但是这个加不加断点影响结果的事情查了一下午都没有找到解决办法,我设置了两个点,34行(断点1)和46行(断点2)。 我发现把 断点1 设置在获取动态代理对象agent(图里第35行代码)那一句代码之前,直走断点1不跳过,那么37行得到的emp对象会是null,也就是找不到这个用户。 明明输入了正确的用户名和密码,而且不走断点直接运行是可以验证通过的。 接下来更诡异的是,我选择走断点的方式,但是我走到断点1的时候,选择跳过断点1,居然得到了emp这个对象,然后验证成功。 这到底咋回事阿???? 下面第一张图是跳过断点1 第二张图是走断点1 ![这是跳过断点1](https://img-ask.csdn.net/upload/201912/04/1575390954_130758.png) ![这是走断点1](https://img-ask.csdn.net/upload/201912/04/1575390974_195779.png) 试了一下跟着断点走到动态代理类的时候报了反射异常InvocationTargetException,应该是动态代理类写错了? ![图片说明](https://img-ask.csdn.net/upload/201912/04/1575436234_560327.png) ``` java.lang.reflect.InvocationTargetException 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 com.cdx.psms.utils.TransactionInvocationHandler.invoke(TransactionInvocationHandler.java:29) at com.sun.proxy.$Proxy6.login(Unknown Source) at com.cdx.psms.controller.LoginServlet.doPost(LoginServlet.java:41) at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1579) 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:748) Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: Executor was closed. ### Cause: org.apache.ibatis.executor.ExecutorException: Executor was closed. at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:57) at com.sun.proxy.$Proxy5.login(Unknown Source) at com.cdx.psms.service.EmpServiceImpl.login(EmpServiceImpl.java:17) ... 31 more Caused by: org.apache.ibatis.executor.ExecutorException: Executor was closed. at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:197) at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:146) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:82) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) ... 37 more ``` public class EmpServiceImpl implements EmpService { private EmpDao empDao = SqlSessionUtil.getSession().getMapper(EmpDao.class); @Override public Emp login(String username,String password) { Emp emp = new Emp(); emp.setUsername(username); emp.setPassword(password); emp = empDao.login(emp); return emp; } } ``` ```

MFC执行SQL语句时失败(数据库连接成功)

这个问题卡了好几天了,ADO方式连接数据库,写了一个ADO类,连接数据库成功,但是在查询操作时失败,源码如下,sql语句应该没问题,别的程序如果在主窗口连接并执行是没问题的 具体就是执行完断点那行之后不进入WHILE,直接报错,如果能解决,必有重谢!!()红包重谢 ![图片说明](https://img-ask.csdn.net/upload/201711/27/1511753765_754115.png) ``` void ADO::OnBnClickedButton1() { { // TODO: 在此添加控件通知处理程序代码 m_list.DeleteAllItems(); UpdateData(true); CString cmdEditID; CString cmdEditValue; CRect rect; // 获取编程语言列表视图控件的位置和大小 m_list.GetClientRect(&rect); // 为列表视图控件添加全行选中和栅格风格 m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); m_list.InsertColumn(0, _T("编辑命令名称"), LVCFMT_LEFT, rect.Width() / 2); m_list.InsertColumn(1, _T("编辑命令值"), LVCFMT_LEFT, rect.Width() / 2); try { _variant_t RecordsAffected; m_pRecordset.CreateInstance(__uuidof(Recordset)); CString search_sql; search_sql.Format(_T("SELECT * FROM cmdedit")); m_pRecordset = ((ADO*)(AfxGetMainWnd()))->m_pConnection->Execute(search_sql.AllocSysString(), NULL, adCmdText); while (!m_pRecordset->adoEOF) { CString cmdEditID; cmdEditID = m_pRecordset->GetCollect("ID").bstrVal; m_list.InsertItem(0, cmdEditID); cmdEditValue = m_pRecordset->GetCollect("idvalue").bstrVal; m_list.SetItemText(0, 1, cmdEditValue); m_pRecordset->MoveNext(); } m_pRecordset->Close(); } catch (_com_error e) { AfxMessageBox(_T("搜索失败!")); return; } } } ```

C#中sql语句不能正常执行,各位大牛帮忙看一下

private void Form3_Load(object sender, EventArgs e) { string sql = "insert into Phone3 (select * from Phone1 union select * from Phone2)"; SqlConnection con = new SqlConnection(strConn); SqlCommand cmd = new SqlCommand(sql,con); con.Open(); if( cmd.ExecuteNonQuery()==0) MessageBox.Show(@"成功!"); con.Close(); 没有插入成功,也没有弹出MessageBox。 断点调试是出现了: 线程 0x163c 已退出,返回值为 259 (0x103)。 “System.Data.SqlClient.SqlException”类型的第一次机会异常在 System.Data.dll 中发生 各位帮小弟一把,刚学C#,好多不懂的。

一个奇怪的问题,有关Classforname("com.mysql.jdbc.Driver")报空指针异常

我写了个JDBC工具类,然后测试的时候报空指针异常,我用断点测试出是Class.forname() 这里是null,但是我驱动包之类的都加了啊!然后不死心的我又手写了一个测试类,Class.forname() 又可以连接,就是说工具类就不行,测试类就可以。 下面把代码贴上来,希望又前辈能够指正我的错误。 `` import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class JDBCUtils { private JDBCUtils(){} private static Connection con = null; static{ try{ Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/mybase"; String username = "root"; String password = "123"; Connection con = DriverManager.getConnection(url,username,password); }catch (ClassNotFoundException se){ se.printStackTrace(); System.out.println("数据库连接失败"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static Connection getConnection(){ return con; } } ```上面就是我的工具类了 ``` import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class JDBCTest { public static void main(String[] args) throws SQLException { Connection con = JDBCUtils.getConnection(); PreparedStatement pst = con.prepareStatement("SELECT sname FROM sort"); ResultSet rs = pst.executeQuery(); while(rs.next()){ System.out.println(rs.getString("sname")); } } } ``` 上面是我工具类的测试类,下面我把报错信息贴一下 ``` Exception in thread "main" java.lang.NullPointerException at com.itheima.jdbcutil.JDBCTest.main(JDBCTest.java:13) ``` 下面是我可以正常运行的测试类 ``` import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class JDBCTest2 { public static void main(String[] args) throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/mybase","root","123"); PreparedStatement pst = con.prepareStatement("select sname from sort"); ResultSet rs = pst.executeQuery(); while(rs.next()){ System.out.println(rs.getString("sname")); } } } ```

mybatis sql中查询获取不到值

<select id="selectAll" parameterType="com.xxx.entity.BiReportsTemplate" resultMap="BaseResultMap" > select brt.rtid,brtc.categoryname,brt.templatename,brt.templatesql,brt.templatetitle,brt.templatesumcolumns,brt.empcreatecode,brt.empcreatename,brt.createtime,brt.empmodifycode,brt.empmodifyname,brt.modifytime,brt.isenable,brt.counter from bi_reports_template brt left join bi_reports_template_category brtc on brt.rtcid=brtc.rtcid where 1=1 <if test="templatename != null" > and brt.templateName = #{templatename,jdbcType=VARCHAR} </if> order by brt.rtid </select> sql如上, <if test="templatename != null" > and brt.templateName = #{templatename,jdbcType=VARCHAR} </if> 获取不到templatename值什么原因哦???

MySql查询连续号码段,存在断点,求MySql解法。

见过Oracle解法,现在用MySql不知道如何解决。题目如下: 我有一个表结构, fphm,kshm 2014,00000001 2014,00000002 2014,00000003 2014,00000004 2014,00000005 2014,00000007 2014,00000008 2014,00000009 2013,00000120 2013,00000121 2013,00000122 2013,00000124 2013,00000125 (第二个字段内可能是连续的数据,可能存在断点。) 怎样能查询出来这样的结果,查询出连续的记录来。 就像下面的这样? 2014,00000001,00000005 2014,00000007,00000009 2013,00000120,00000122 2013,00000124,00000125

template.queryForObject(sql, BPR,username,password); 我用这个jar和SQL连接的时候,在test类中可以使用 ,可是到了servlet服务器上就会报错说服务器问题?

``` public class UserDao { private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource()); public User login(User loginUser){ try { //1.编写sql String sql ="select * from user WHERE username=? AND PASSWORD=?"; String username = loginUser.getUsername(); String password = loginUser.getPASSWORD(); System.out.println("DAO+"+username); BeanPropertyRowMapper<User> BPR =new BeanPropertyRowMapper<User>(User.class); //2.调用query方法 User user = template.queryForObject(sql, BPR,username,password); // User user = new JdbcTemplate().queryForObject(sql,BPR,username,password); System.out.println("UD"+user); return user; } catch (DataAccessException e) { e.printStackTrace();//记录日志 return null; } } } ``` 报错了 java.sql.SQLException: com.mysql.cj.jdbc.Driver 和 org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: com.mysql.cj.jdbc.Driver at cn.itcast.dao.UserDao.login(UserDao.java:21) at cn.itcast.Servlet.LoginServlet.doGet(LoginServlet.java:34) 大致上说就是那个template.queryForObject 和数据库没办法交流把 我觉得是 ![图片说明](https://img-ask.csdn.net/upload/202005/17/1589698536_390173.png) ![图片说明](https://img-ask.csdn.net/upload/202005/17/1589698591_100519.png) ![图片说明](https://img-ask.csdn.net/upload/202005/17/1589698598_321445.png)

SQL查询出错:java.lang.Exception: ERROR:ORA-03001: 未实施的功能

以下是报错信息: ![图片说明](https://img-ask.csdn.net/upload/201905/06/1557116301_962347.png) 以下是SQL代码: ``` WITH TMP_TABLE_INFO AS (SELECT DISTINCT T.CITY_NAME, T1.PRICE_DATE, T1.YM_ID, T2.VERSION_CODE, T2.VERSION_ID, PKG_COMMON_ROUTINE.FUNC_NEW_MSRP(T1.PRICE_DATE, T2.VERSION_ID) AS MSRP FROM SJZX.V_REGION T LEFT JOIN SJZX.T_NEW_ENERGY_REPORT_VERSION T1 ON 1 = 1 LEFT JOIN SJZX.V_VERSION T2 ON T2.VERSION_CODE = T1.VERSION_CODE WHERE T.CITY_NAME IN ('北京市', '上海市', '广州市', '深圳市', '天津市', '成都市', '西安市', '杭州市', '武汉市', '济南市', '昆明市', '青岛市', '合肥市', '重庆市', '长沙市', '郑州市', '南京市', '长春市', '苏州市', '南昌市', '宁波市', '福州市') AND T1.YM_ID IN (201812, 201901, 201902)), TMP_MSRP AS (SELECT DISTINCT YM_ID, SUB_MODEL_ID, 最低MSRP, 最高MSRP FROM (SELECT YM_ID, VERSION_CODE, VERSION_ID, SUB_MODEL_ID, MAX(VERSION_ID) KEEP(DENSE_RANK FIRST ORDER BY MSRP) OVER(PARTITION BY YM_ID, SUB_MODEL_ID) AS 最低MSRP, MAX(VERSION_ID) KEEP(DENSE_RANK LAST ORDER BY MSRP) OVER(PARTITION BY YM_ID, SUB_MODEL_ID) AS 最高MSRP FROM (SELECT DISTINCT T.VERSION_CODE, T1.VERSION_ID, T1.SUB_MODEL_ID, T.YM_ID, PKG_COMMON_ROUTINE.FUNC_NEW_MSRP(T.PRICE_DATE, T1.VERSION_ID) AS MSRP FROM SJZX.T_NEW_ENERGY_REPORT_VERSION T LEFT JOIN SJZX.V_VERSION T1 ON T.VERSION_CODE = T1.VERSION_CODE WHERE T.YM_ID IN (201812, 201901, 201902)))), TMP_CITY_PRICE AS (SELECT A.PRICE_DATE, B.VERSION_CODE, B.VERSION_ID, B.SUB_MODEL_ID, C.CITY_NAME, C.CITY_ENAME, A.MARKET_PRICE * 10000 TP FROM SJZX.V_TP_CITY A, SJZX.V_VERSION B, SJZX.V_REGION C WHERE A.VERSION_ID = B.VERSION_ID AND A.CITY_ID = C.CITY_ID AND A.PRICE_INPUT_DATE_ID IN (2) AND A.PRICE_DATE BETWEEN 20181230 AND 20190228 AND B.VERSION_CODE IN (SELECT DISTINCT VERSION_CODE FROM SJZX.T_NEW_ENERGY_REPORT_VERSION) AND C.CITY_NAME IN ('北京市', '上海市', '广州市', '深圳市', '天津市', '成都市', '西安市', '杭州市', '武汉市', '济南市', '昆明市', '青岛市', '合肥市', '重庆市', '长沙市', '郑州市', '南京市', '长春市', '苏州市', '南昌市', '宁波市', '福州市')), TMP_MIX AS (SELECT T.YM_ID, T1.SUB_MODEL_ID, T.VERSION_CODE, T2.SALES_QTY / NULLIF(SUM(T2.SALES_QTY) OVER(PARTITION BY T1.SUB_MODEL_ID, T.YM_ID), 0) AS MIX FROM SJZX.T_NEW_ENERGY_REPORT_VERSION T LEFT JOIN SJZX.V_VERSION T1 ON T1.VERSION_CODE = T.VERSION_CODE LEFT JOIN SJZX.V_ISABS_VERSION_SALES T2 ON T2.VERSION_ID = T1.VERSION_ID AND T2.YM_ID = T.YM_ID WHERE T.YM_ID BETWEEN 201812 AND 201902), TMP_SUBSIDIES AS (SELECT TO_CHAR(T1.PRICE_DATE, 'YYYYMMDD') AS PRICE_DATE, T3.CITY_NAME, T1.VERSION_ID, T1.LOCAL_SUBSIDIES, T1.NATION_SUBSIDIES, T2.OEM_SUBSIDY, T2.FAVOURABLE_CBT, AVG(T2.GUIDING_PRICE) MSRP, AVG(T1.TP * 10000) CP FROM SJZX.FDW_NEW_ENERGY_PRICE_MANAGE T1 LEFT JOIN SJZX.FDW_NEW_ENERGY_CAR_TYPE T2 ON T1.VERSION_ID = T2.VERSION_ID AND T1.CITY_ID = T2.CITY_ID AND T1.PRICE_DATE BETWEEN T2.START_EXECUTE_DATE AND T2.END_EXECUTE_DATE LEFT JOIN SJZX.V_REGION T3 ON T3.CITY_ID = T1.CITY_ID GROUP BY T1.VERSION_ID, T3.CITY_NAME, T1.PRICE_DATE, T1.LOCAL_SUBSIDIES, T1.NATION_SUBSIDIES, T2.OEM_SUBSIDY, T2.FAVOURABLE_CBT) SELECT T0.VERSION_CODE, CASE WHEN T.PRODUCTION_AND_MARKETING LIKE '%在销%' THEN 'On sale' ELSE 'Stopped Sale' END SALES_STATUS, T0.CITY_NAME, SUBSTR(T0.YM_ID, 1, 4) AS S_YEAR, TO_NUMBER(SUBSTR(T0.YM_ID, 5, 2)) AS S_MONTH, T0.YM_ID, CASE WHEN T.MANF_BRAND_PROP_NAME LIKE '%进口%' THEN 'IMP' ELSE 'CKD' END PRODUCT_TYPE, '' AS DEALER, T.MANF_GROUP_ENAME, T.BRAND_ORIG_ENAME, T.MANF_ENAME, T.BRAND_ENAME, T.MODEL_ENAME, T.SUB_MODEL_ENAME, T.VERSION_FULL_ENAME, CASE WHEN T0.VERSION_ID = T2.最低MSRP THEN 'Entry' WHEN T0.VERSION_ID = T2.最高MSRP THEN 'Top' ELSE '-' END ENTRY_LINE, T.SEGMENT_NAME, T.BODY_TYPE_ENAME, TO_DATE(T.LAUNCH_DATE, 'YYYY-MM-DD') AS LAUNCH_DATE, T.FUEL_TYPE_ENAME, T1.电机, T1.排量, T1.最大功率, T1.马力, T1.电机马力, T1.电机的最大功率, T1."纯电续航里程(km)", T1."电池电量(电能)(kwh)", T1.驱动形式, T1.车长, T1.车宽, T1.车高, T1.轴距, T1.车辆总质量, T1.整备质量, T1."最高车速(km/h)", T1."纯电行驶最高速度(km/h)", T1.电池包能量密度, T5.CP, T0.MSRP, T3.MIX, T4.TP, T5.NATION_SUBSIDIES, T5.LOCAL_SUBSIDIES, T5.FAVOURABLE_CBT, T5.OEM_SUBSIDY FROM TMP_TABLE_INFO T0 LEFT JOIN SJZX.V_VERSION T ON T.VERSION_CODE = T0.VERSION_CODE LEFT JOIN SJZX.V_NEW_ENERGY_REPORT_CONFIG T1 ON T1.VERSION_ID = T.VERSION_ID LEFT JOIN TMP_MSRP T2 ON T2.SUB_MODEL_ID = T.SUB_MODEL_ID AND T2.YM_ID = T0.YM_ID LEFT JOIN TMP_MIX T3 ON T3.YM_ID = T0.YM_ID AND T3.VERSION_CODE = T0.VERSION_CODE LEFT JOIN TMP_CITY_PRICE T4 ON T4.PRICE_DATE = T0.PRICE_DATE AND T4.VERSION_CODE = T0.VERSION_CODE AND T4.CITY_NAME = T0.CITY_NAME LEFT JOIN TMP_SUBSIDIES T5 ON T5.VERSION_ID = T.VERSION_ID AND T5.PRICE_DATE = T0.PRICE_DATE AND T5.CITY_NAME = T0.CITY_NAME ORDER BY T0.YM_ID, T.MANF_ENAME, T.BRAND_ENAME, T0.CITY_NAME ``` 求大神解决~~~~~~感激不尽!!!!!

Java debug到某一行时修改数据库,查出数据仍为修改之前的

程序一步步执行,当断点到某一行时,需要查询数据库,这时手动修改数据库里的值并提交,继续执行程序,发现查出的数据是修改数据库之前的值,这是为什么?

web项目在执行大量的插入语句时执行一段时间后卡死

SSH框架,在页面有一个poi 批量导入excel的功能,每读取excel一行,保存为一个实体然后循环insert到DB里。刚开始程序运行正常,但是一段时间过后,系统出现卡死,不再执行insert sql ,刷新页面也没有响应,只能重启服务器。期间程序没有报错,myeclipse也不是内存溢出导致的卡死,因为点击其他功能模块时不会出现上述所说的问题,只有在执行大量的insert sql 时才会。 因为代码没有报错我也就不贴代码了。 我自己想的不知道是不是hibernate在做insert时由于数据量大导致链接关闭,但是我设置数据库连接池断开时间是1800s,事实上也没有超过。由于不知道hibernate底层的源码是怎样执行insert的,希望有大神说说,为什么在执行少量的insert时系统不会卡死,但处理大量数据并长时间insert的就是卡死。 虚心求各位指导!谢谢大家。如果有需要我会贴出代码。感谢。 更改过后的代码,但是又有新的问题 ``` @Override public void save(List<T> list) { long begin = System.currentTimeMillis(); Session session = getSession(); try { for (int i = 0; i < list.size(); i++) { session.save(list.get(i)); if (i%50 == 0 && i != 0) { session.flush(); session.clear(); } } } catch (Exception e) { e.printStackTrace(); } finally{ session.clear(); } long end = System.currentTimeMillis(); System.out.println((end-begin)/1000.0); } ``` 这是basedao,是spring管理hibernate,加了2个属性 ``` <prop key="hibernate.jdbc.fetch_size">100</prop> <prop key="hibernate.jdbc.batch_size">50</prop> ``` 方法是根据不同的实体批量insert,虽然现在执行大量insert时不会中断,但是我有4个实体要连续执行批量insert,在insert完前2个实体后,我在第三个实体调用批量导入的方法设了断点,程序并没有停在断点上,又出现了卡死的情况。PS:不知道是不是在insert第二个实体那里就卡死了,还是说执行完第二个批量insert就卡死了,反正我在第三个批量insert方法前断点没进,并且系统卡死,只能重启。 请大家不吝赐教!感谢!

SQLSERVER触发器如何DEBUG

用的SQL SERVER2012 VS版本是10 不能调试似乎

java 连接 access数据库问题

方法如下: public List<Map<String, String>> queryProject(String path) throws SQLException { //加载驱动 try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); return null; } String dbUrl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + path; Connection conn = DriverManager.getConnection(dbUrl); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select InstanceID, name from Project"); List<Map<String, String>> results = new ArrayList<Map<String,String>>(); while(rs.next()){ Map<String, String> rst = new HashMap<String, String>(); rst.put("InstanceID", rs.getString(1)); rst.put("name", rs.getString(2)); results.add(rst); //System.out.println(rs.getString(1)+"-->"+rs.getString(2)); } rs.close(); stmt.close(); conn.close(); return results; } 断点调试,发现在执行Connection conn = DriverManager.getConnection(dbUrl);代码时,报如下错误: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 超出系统资源。 at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3073) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323) at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:207) 这个问题该如何解决呢?

quartz定时器 +Hibernate连数据库执行一段时间后,查询方法不返回值了

在Spring中配置了quartz定时器,每分钟执行一次,用Hibernate连数据库执行一段时间后,查询方法不返回值了,是什么情况啊??急救! 数据库查询,继承HibernateDaoSupport, @Resource(name = "sessionFactory") public final void setSuperSessionFactory(SessionFactory sessionFactory) { super.setSessionFactory(sessionFactory); } 定时器执行前几十次都是正常的,但之后就会发生数据查询不到结果,抛异常了, 断点跟踪发现 List<?> list = this.getSession().createSQLQuery(f.getOrigHql()).list(); 这句,在执行.list()方法后抛的异常,没有返回结果。 出现异常后,操作其它页面可以正常查询数据,但新增和编辑提交时也报错,感觉数据库表被锁了一样 可是之前的几十次为什么都正常,之后就坏了呢?求解

如图,为什么DataSet从sql server获取的字符串数据带省略号?

![图片说明](https://img-ask.csdn.net/upload/201504/02/1427948055_476158.jpg) 我要对数据内容进行判断,结果老是不符。 后来断点调试,放大镜查看DataSet对象,如图,发现它有2列的值是带省略号的, 这2列在sql server里的数据类型是 char(50)、vchar(50)、nvchar(50), 3种我都换过, 但是程序运行后DataSet对象那里还是带省略号。怎么会出现这种情况呢

sqlsever 临时表无法读取问题 亟需大神

我觉得很多人都不会明白这个问题,我坐等大神回答一下。 C#程序 。在一个程序里面创建了一个sqlsever 的临时表,关闭链接(并没有回收),再次打开这个链接,表无法读取了。 我以为这是临时表生存时间的问题,但是我打开ssms却发现表还存在(在链接回收前打了断点测试)。。。 不多说上图。。。。。 第一个图,关闭链接的程序图: ![图片说明](https://img-ask.csdn.net/upload/201510/22/1445517677_714369.png) 在断点处,进入ssms查看表,表是存在的 ![图片说明](https://img-ask.csdn.net/upload/201510/22/1445517759_588696.png) 但是程序运行结果…… ![图片说明](https://img-ask.csdn.net/upload/201510/22/1445517792_235081.png) 于是我把链接保持打开,程序如下…… ![图片说明](https://img-ask.csdn.net/upload/201510/22/1445517883_693862.png) 于是一切都好了,这是为什么呢? ![图片说明](https://img-ask.csdn.net/upload/201510/22/1445517823_617474.png)

Java代码里修改某个字段的状态马上查询这个状态的数据查询不到

有两张表 主订单表 和订单详情表 假设一个订单里面有多个详情 当其中一条详情的状态变更为 发货的时候 需要判断这个订单下面所有的详情 是不是已经发货了 如果都发货了 修改主订单里面状态为已发货 否则是部分发货 问题 我修改完这个详情的状态的时候(本来这已经是最后一条了) 会马上去查询 这笔订单下是否还存在没有发货的数据 结果发现怎么查都能查得到还存在一条 但是最后一条详情的状态我是在代码里面改了的 这个怎么解决啊 我马上改了之后应该是查不到zhe'tiao'shu'ju'de

这是为什么?sqlserver2008调试问题

请教各位大神 ,我是第一次使用sqlserver2008调试功能, 请问设好断点之后F11直接就退出来了,然后控制台出现这个: 自动附加到计算机“(local)”上的进程“[2272] [SQL] (local)”成功。 线程 '(local) [55]' (0x1268) 已退出,返回值为 0 (0x0)。 线程 '(local) [55]' (0x1268) 已退出,返回值为 0 (0x0)。 程序“[2272] [SQL] (local): (local)”已退出,返回值为 0 (0x0)。

在Dao层拼接语句报错,但是在数据库运行没有问题

在Dao层拼接语句报错——数据库:sqlserver2008R2,whth pro as(select...很长就不写了), 这个跑断点测试一切正常,复制到数据库可以运行,但是在Dao层用父类封装的方法就会报错, 报错抛出的异常显示的语句被改变了,也搞不懂什么情况

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Linux面试题(2020最新版)

文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什...

将一个接口响应时间从2s优化到 200ms以内的一个案例

一、背景 在开发联调阶段发现一个接口的响应时间特别长,经常超时,囧… 本文讲讲是如何定位到性能瓶颈以及修改的思路,将该接口从 2 s 左右优化到 200ms 以内 。 二、步骤 2.1 定位 定位性能瓶颈有两个思路,一个是通过工具去监控,一个是通过经验去猜想。 2.1.1 工具监控 就工具而言,推荐使用 arthas ,用到的是 trace 命令 具体安装步骤很简单,大家自行研究。 我的使用步骤是...

学历低,无法胜任工作,大佬告诉你应该怎么做

微信上收到一位读者小涛的留言,大致的意思是自己只有高中学历,经过培训后找到了一份工作,但很难胜任,考虑要不要辞职找一份他能力可以胜任的实习工作。下面是他留言的一部分内容: 二哥,我是 2016 年高中毕业的,考上了大学但没去成,主要是因为当时家里经济条件不太允许。 打工了三年后想学一门技术,就去培训了。培训的学校比较垃圾,现在非常后悔没去正规一点的机构培训。 去年 11 月份来北京找到了一份工...

JVM内存结构和Java内存模型别再傻傻分不清了

JVM内存结构和Java内存模型都是面试的热点问题,名字看感觉都差不多,网上有些博客也都把这两个概念混着用,实际上他们之间差别还是挺大的。 通俗点说,JVM内存结构是与JVM的内部存储结构相关,而Java内存模型是与多线程编程相关,本文针对这两个总是被混用的概念展开讲解。 JVM内存结构 JVM构成 说到JVM内存结构,就不会只是说内存结构的5个分区,而是会延展到整个JVM相关的问题,所以先了解下

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Google 与微软的浏览器之争

浏览器再现“神仙打架”。整理 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)从 IE 到 Chrome,再从 Chrome 到 Edge,微软与...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

85后蒋凡:28岁实现财务自由、34岁成为阿里万亿电商帝国双掌门,他的人生底层逻辑是什么?...

蒋凡是何许人也? 2017年12月27日,在入职4年时间里,蒋凡开挂般坐上了淘宝总裁位置。 为此,时任阿里CEO张勇在任命书中力赞: 蒋凡加入阿里,始终保持创业者的冲劲,有敏锐的...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

什么时候跳槽,为什么离职,你想好了么?

都是出来打工的,多为自己着想

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

立即提问
相关内容推荐