hibernate数据库Int类型查找语句

我要从sqlserver数据库中,查找类型为Int的piaojia变量,然后显示在Jsp页面中。
该用什么语句。?谢谢大家帮忙!
public String checiSerach()
{
System.out.println("^^"+piaoshijian+"^^"+startshijian1+"^^"+startshijian2+"%%");
StringBuffer sql=new StringBuffer("from TCheci where del='no'");
if(!shifazhan.equals(""))
{
sql.append(" and shifazhan like '%"+shifazhan+"%'");
}
if(!piaoshijian.equals(""))
{
sql.append(" and piaoshijian='"+piaoshijian+"'");
}
if(!startshijian1.equals(""))
{
sql.append(" and startshijian > '"+startshijian1+"'");
}
if(!startshijian2.equals(""))
{
sql.append(" and startshijian < '"+startshijian2+"'");
}
if(!(piaojia==(""))
{
sql.append(" and piaojia < '"+piaojia+"'");
}
System.out.println(sql.toString()+"***");
这是我的代码,piaojia变量这么写报错了。

1个回答

你试着打个断点看看有没有接收到参数。要是简单的查询并不需要stringbuffer做拼接的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
hibernate 分页查询语句问题
我的一个语句在使用Oracle时正常运行,换成MySQL后不能正常使用了[code="java"]String hql = "from News n where n.entry.entryid in (" + "select e.entryid from Entry e where e.parentid=1 ) " + "or n.entry.entryid=1 order by n.lastmodifydate desc"; List tempList = basicMan.pagedQuery(hql, 1, 2);[/code][code="java"]public List pagedQuery(final String hql, int currentPage, final int pageSize) { if (currentPage == 0) { currentPage = 1; } final int curPage = currentPage; List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(hql); List result = query.setFirstResult((curPage - 1) * pageSize) .setMaxResults(pageSize).list(); return result; } }); return list; }[/code] 错误代码如下[code="java"]Hibernate: select * from ( select news0_.NEWSID as NEWSID2_, news0_.ENTRYID as ENTRYID2_, news0_.NEWSTITLE as NEWSTITLE2_, news0_.CONTENT as CONTENT2_, news0_.KEYWORDS as KEYWORDS2_, news0_.LASTMODIFYDATE as LASTMODI6_2_, news0_.ORDERINDEX as ORDERINDEX2_, news0_.PICPATH as PICPATH2_ from zkq1f1_db.news news0_ where news0_.ENTRYID in (select entry1_.ENTRYID from zkq1f1_db.entry entry1_ where entry1_.PARENTID=1) or news0_.ENTRYID=1 order by news0_.LASTMODIFYDATE ) where rownum <= ? Exception in thread "main" org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:615) at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412) at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424) at org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:343) at com.kcheng.dao.BasicDImp.pagedQuery(BasicDImp.java:169) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy5.pagedQuery(Unknown Source) at test.my.dao.TestDao.main(TestDao.java:38) Caused by: org.hibernate.exception.SQLGrammarException: could not execute query[/code][code="java"]Caused by: java.sql.SQLException: Every derived table must have its own alias[/code] 在不使用分页的情况下页正常运行 ---------------------------------------------------------------------------------------- 怎么没有人来帮助呢,提示一下也好啊 [b]问题补充:[/b] query.setFirstResult((curPage - 1) * pageSize) .setMaxResults(pageSize).list(); hibernate这种方式也一样啊 [b]问题补充:[/b] 确实问题出在[code="java"]query.setFirstResult((curPage - 1) * pageSize) .setMaxResults(pageSize)[/code] 但是这是为什么呢?应该怎么改呢 [b]问题补充:[/b] 产生的sql语句是rownum <= ? 需要改成limit 但是hql该怎么改呢 [b]问题补充:[/b] 照你那样改的话代码改动蛮大,现在是因为转移数据库的时候出了问题,就是说代码不想去做大的改动了
spring的hibernate查询日期的语句
select to_date('2011-11-28','yyyy-mm-dd')-to_date('2011-11-01','yyyy-mm-dd') from dual 这句sql语句是从oracle数据库中查询两个日期之间的天数,这句在oracle中运行正常,返回一个整数。可是放在dao持久层查询时不能运行。会说找不到dual,可是应该怎样写sql语句呢。 [code="java"] public int findBeginEndNum(String begintime,String endtime) { try{ String sql="select to_date('"+endtime+"','yyyy-mm-dd')-to_date('"+begintime+"','yyyy-mm-dd') from dual"; System.out.println(sql); this.getHibernateTemplate().find(sql); 【运行到这里就报错】 //Object obj=this.getHibernateTemplate().find(sql).get(0); //if(obj!=null){ // return Integer.parseInt(obj.toString()); //} }catch(Exception e){ e.printStackTrace(); } return 0; } [/code]
hibernate执行几次数据库查询就卡住
1.判断坐标编号no在项目里是否已存在 ``` public boolean isExist(Long projectId, int no) { Query query = baseDao.createQuery("select t.id from Position t where t.project.id = ? and t.no = ?"); query.setParameter(0, projectId); query.setParameter(1, no); return (query.list().size() > 0) ? true : false; } ``` 单独查询,刷新多少次多可以得到结果 2. 查询指定项目里的坐标的最大编号值 ``` public Integer getMaxNo(Long projectId) { Query query = baseDao.createQuery("select max(t.no) from Position t where t.project.id = ?"); query.setLong(0, projectId); return (Integer) query.uniqueResult(); } ``` 单独查询,刷新多少次多可以得到结果 3.保存坐标信息 ``` public void saveOrUpdate(Position position, Long projectId) { try { if (projectId != null) { Project project = (Project) baseDao.findById(Project.class, projectId); position.setProject(project); } //如果指定坐标编号在当前项目里已存在 if (isExist(position.getProject().getId(), position.getNo())) { //改变该指定坐标编号的值为当前项目里最大坐标编号的值+1 position.setNo(getMaxNo(position.getProject().getId()) + 1); } baseDao.saveOrUpdate(position); } catch (Exception e) { e.printStackTrace(); } } ``` 测试本方法时,前2次都可以正常执行,到第3次时,网页就会卡住;如果注释掉第2个if语句,就可以一直正常执行
java连接mysql 用hibernate怎么写查询语句
以前用的是sqlserver,现在该为mysql,数据库连接上了,但是以前写的查询报错了 —————————————————— select userinfo0_.id as id0_, userinfo0_.company_name as company2_0_, userinfo0_.user_name as user3_0_, userinfo0_.mobile_number as mobile4_0_ from Demo.dbo.user_info userinfo0_,Demo.dbo.user_info去掉dbo就可以查询出来,请问要如何解决呢? [code="java"] public int queryAll() { // TODO Auto-generated method stub String hql="from UserInfo"; List list = getHibernateTemplate().find(hql); [/code] [code="java"] org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; SQL [select userinfo0_.id as id0_, userinfo0_.company_name as company2_0_, userinfo0_.user_name as user3_0_, userinfo0_.mobile_number as mobile4_0_ from Demo.dbo.user_info userinfo0_]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:629) org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412) org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411) org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374) org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:912) org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:904) com.seamoon.demo.dao.impl.UserInfoDAOImpl.queryAll(UserInfoDAOImpl.java:181) [/code]
spring+hibernate3查询速度
系统 struts + spring + hibernate3,数据库mysql5.0 机器2G内存,cpu双核(具体的没见) 表结构: [code="sql"]received_message(//接受短信表 id int not null autoincrement, action varchar(255), .... game_code_int bigint,//代表游戏 party_code_int bigint,//代表渠道 status_int bigint,//表示计费成功状态 rece_date datetime,//接受时间 money float default 0//短信价格 ) party(//渠道商的表 id int not null auto_increment, .... party_code_int bigint,//和上面的party_code_int一样 ) game(//游戏所对应 id int not null auto_increment, .... game_code_int bigint,//和上面的game_code_int对应 )[/code] 现在received_message表里面有30多万条数据 查询变的很慢,有的时候要等1分钟,甚至更长 BOSS要求在查询时候必须是即时信息,所以我自己也没有办法去缓存received_message表里面的数据 查询的时候经常出现select count(party_code_int),sum(money) from received_message where party_code_int=? 或者select count(game_code_int),sum(money) from received_message where game_code_int=? and rece_date > ? 这样类似的查询语句 具体还需要什么办法,请帮忙解答下,我现在很郁闷,小弟是java刚刚入门!
使用hibernate把sqlserver中image类型的数据读出来
<p>在数据库里有一个image类型的数据,通常可以使用 ResultSet    rs    =    ps.executeQuery();   <br>                     rs.next();   <br>                     InputStream    in    =    rs.getBinaryStream("filecontent");   <br>读到这个二进制的数据,现在使用的是hibernate,一条查询语句返回的是一个对象,使用hibernate reverse后image类型的变成了String类型,该如何操作才能正确读到数据库中的二进制数据?</p> <p> </p> <p>也就是hibernate中有没有什么方法代替ResultSet的getBinaryStream();</p><br /><strong>问题补充:</strong><br />第一个的回答,我试过了有[Microsoft][SQLServer 2000 Driver for JDBC]Unsupported data conversion异常。 <br />如果用byte[] 映射,那映射文件里属性的type 是不是java.lang.Byte? <br />第二个的回答,我试过了生成的图片&gt;2G. <br /><br /><strong>问题补充:</strong><br />huangnetian说的“把那个image类型的字段配置到hibernate中,配成byte与之对应 <br />”有nsupported data conversion.异常。 <br /> <br /> <br />lovewhzlq说的改成binary虽然无异常,但是生成的图片依然很大。 <br />生成图片到磁盘的代码如下: <br /> <br />byte[] b = vsheetinfoviewobj.getCoverImage(); <br /> String path = ""; <br /> //如果有图片 <br /> if (null != b) { <br /> //System.out.println(b); <br /> try { <br /> path = "d:/new1.jpg"; <br /> FileOutputStream out = new FileOutputStream(path); <br /> int len = b.length; <br /> while (len != -1) { <br /> out.write(b, 0, len); <br /> out.flush(); <br /> } <br /> out.close(); <br /> } catch (Exception e) { <br /> // TODO Auto-generated catch block <br /> e.printStackTrace(); <br /> } <br /> o[0] = vsheetinfoviewobj; <br /> o[1] = path; <br /> } <br /> else{ <br /> o[0]=vsheetinfoviewobj; <br /> o[1]=null; <br /> } <br /> <br />恳请高手再指教。<br /><strong>问题补充:</strong><br />图片不是很大(绝对不是&gt;2G),读取图片是hibernate做的,读到byte[]中了。然后把byte[]中写到磁盘上了。这个思路对不对? <br /><br /><strong>问题补充:</strong><br />byte[]的length:2359350;<br /><strong>问题补充:</strong><br />byte[]的length:2359350; 但是生成的图片&gt;2G.这是什么原因?可以看到图片了。就是图片&gt;2G啊。<br /><strong>问题补充:</strong><br />大哥,现在生成的图片更大了4G了。为什么2M的图片我写到磁盘上就变成4G 了?原因就在这里啊。你看看我上面附的代码。谢谢你这么耐心。
关于spring+hibernate配置多数据源的问题
我的项目是个webservice项目,使用了hibernate+spring框架,由于项目中要用到两个数据库(都是oracle数据库),我在网上查了一些资料,但是在我的项目中做数据源切换的时候总是切换不过去,也就是说只能连接默认的数据源,一下是我的spring配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd" default-autowire="byName"> <context:annotation-config /> <!-- AXIS2通过该对象加载spring中的bean 固定配置 --> <bean id="applicationContext" class="org.apache.axis2.extensions.spring.receivers.ApplicationContextHolder" /> <!-- end --> <!-- AXIS2本地业务配置 --> <bean id="PAPWebService" class="com.pap.ws.PAPWebService" /> <!-- end --> <context:component-scan base-package="com.pap"> <context:include-filter type="regex" expression=".dao.impl.*" /> <context:include-filter type="regex" expression=".serviec.impl.*" /> <context:include-filter type="regex" expression=".entity.*" /> </context:component-scan> <bean id="tmsDataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource"> <property name="driver" value="oracle.jdbc.driver.OracleDriver" /> <property name="driverUrl" value="jdbc:oracle:thin:@172.17.30.80:1521:tms" /> <property name="user" value="SELFSERVICE" /> <property name="password" value="Password123" /> <!-- 最大数据库连接数 --> <property name="maximumConnectionCount" value="100" /> <!-- 最小数据库连接数 --> <property name="minimumConnectionCount" value="3" /> <!-- 最少保持的空闲连接数(默认2个) --> <property name="prototypeCount" value="3" /> <!-- 没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受 --> <!-- <property name="maximumNewConnections" value="20"/> --> <!-- 最大的并发连接数 --> <property name="simultaneousBuildThrottle" value="50" /> <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 默认30秒 --> <property name="houseKeepingSleepTime" value="10000" /> <!-- 用于保持连接的测试语句 --> <property name="houseKeepingTestSql" value="select sysdate from dual" /> <!-- 在使用之前测试 --> <property name="testBeforeUse" value="true" /> </bean> <bean id="hisDataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource"> <property name="driver" value="oracle.jdbc.driver.OracleDriver" /> <property name="driverUrl" value="jdbc:oracle:thin:@172.17.1.252:1521:ORCL" /> <property name="user" value="system" /> <property name="password" value="aaaaaa" /> <!-- 最大数据库连接数 --> <property name="maximumConnectionCount" value="100" /> <!-- 最小数据库连接数 --> <property name="minimumConnectionCount" value="3" /> <!-- 最少保持的空闲连接数(默认2个) --> <property name="prototypeCount" value="3" /> <!-- 没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受 --> <!-- <property name="maximumNewConnections" value="20"/> --> <!-- 最大的并发连接数 --> <property name="simultaneousBuildThrottle" value="50" /> <!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 默认30秒 --> <property name="houseKeepingSleepTime" value="10000" /> <!-- 用于保持连接的测试语句 --> <property name="houseKeepingTestSql" value="select sysdate from dual" /> <!-- 在使用之前测试 --> <property name="testBeforeUse" value="true" /> </bean> <bean id="dynamicDataSource" class="com.pap.datasource.DynamicDataSource"> <!-- 通过key-value的形式来关联数据源 --> <property name="targetDataSources"> <map key-type="java.lang.String"> <entry value-ref="tmsDataSource" key="tmsDataSource"></entry> <entry value-ref="hisDataSource" key="hisDataSource"></entry> </map> </property> <property name="defaultTargetDataSource" ref="tmsDataSource"> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dynamicDataSource" /> <property name="packagesToScan"> <list> <value>com.pap.entity</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <!-- <prop key="hibernate.hbm2ddl.auto">update</prop> --> </props> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" /> </beans> 下面是我写的两个用于切换数据源的类: DataSourceContextHolder.java package com.pap.datasource; public class DataSourceContextHolder { public static final String DATA_SOURCE_TMS = "tmsDataSource"; public static final String DATA_SOURCE_HIS = "hisDataSource"; private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>(); public static void setDataSourceType(String customerType) { contextHolder.set(customerType); } public static String getDataSourceType() { return contextHolder.get(); } public static void clearDataSourceType() { contextHolder.remove(); } } DynamicDataSource.java package com.pap.datasource; import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; public class DynamicDataSource extends AbstractRoutingDataSource { @Override protected Object determineCurrentLookupKey() { return DataSourceContextHolder.getDataSourceType(); } } dao层代码 package com.pap.dao.impl; import java.io.Serializable; import java.util.List; import org.hibernate.criterion.DetachedCriteria; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import org.springframework.stereotype.Repository; import com.pap.dao.BaseDao; @Repository("baseDao") public class BaseDaoImpl extends HibernateDaoSupport implements BaseDao{ @Override public <T> Serializable save(T entity) throws Exception { Serializable s = this.getHibernateTemplate().save(entity); return s; } @Override public <T> void update(T entity) throws Exception { this.getHibernateTemplate().update(entity); } @SuppressWarnings("unchecked") @Override public <T> List<T> query(String hql,Object[] values) throws Exception { return this.getHibernateTemplate().find(hql, values); } @Override public <T> List<T> query(String hql, Object value) throws Exception { return query(hql, new Object[]{value}); } @Override public <T>T getEntity(Class<T> entityClass, Serializable id) throws Exception { return this.getHibernateTemplate().get(entityClass, id); } @SuppressWarnings("unchecked") @Override public <T> List<T> find(DetachedCriteria detachedCriteria, int firstResult, int maxResults) throws Exception { return getHibernateTemplate().findByCriteria(detachedCriteria, firstResult, maxResults); } @Override @SuppressWarnings("unchecked") public <T> List<T> find(DetachedCriteria criteria) throws Exception { return getHibernateTemplate().findByCriteria(criteria); } } service层代码,我是在这里做的数据源切换 package com.pap.service.impl; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.annotation.Resource; import org.hibernate.criterion.DetachedCriteria; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.pap.dao.BaseDao; import com.pap.datasource.DataSourceContextHolder; import com.pap.entity.ChargeTypeDict; import com.pap.entity.ClinicForRegist; import com.pap.entity.MedicalCard; import com.pap.entity.Patient; import com.pap.entity.SelfTerminal; import com.pap.entity.TransactionRecord; import com.pap.entity.User; import com.pap.service.BaseService; @Service @Transactional(propagation = Propagation.REQUIRED) public class BaseServiceImpl implements BaseService { @Resource private BaseDao baseDao; /** * 查询排号信息 */ @Override public List<ClinicForRegist> queryClinicForRegist(java.sql.Date clinicDate, Object[] timeDesc, int firstResult, int maxResults) throws Exception { DataSourceContextHolder.setDataSourceType(DataSourceContextHolder.DATA_SOURCE_HIS); DetachedCriteria detachedCriteria = DetachedCriteria.forClass(ClinicForRegist.class); detachedCriteria.add(Restrictions.eq("clinicDate", clinicDate)); detachedCriteria.add(Restrictions.in("timeDesc", timeDesc)); List<ClinicForRegist> list = baseDao.find(detachedCriteria, firstResult, maxResults); DataSourceContextHolder.clearDataSourceType(); return list; } } webservice接口类 package com.pap.ws; import java.sql.Timestamp; import java.util.Calendar; import java.util.Date; import java.util.List; import javax.annotation.Resource; import org.apache.log4j.Logger; import com.pap.entity.ChargeTypeDict; import com.pap.entity.ClinicForRegist; import com.pap.entity.ClinicIndex; import com.pap.entity.DeptDict; import com.pap.entity.MedicalCard; import com.pap.entity.Patient; import com.pap.entity.Privileges; import com.pap.entity.Response; import com.pap.entity.SelfTerminal; import com.pap.entity.TransactionRecord; import com.pap.entity.User; import com.pap.service.BaseService; import com.pap.util.MD5Util; public class PAPWebService { @Resource BaseService baseService; /** * 查询可挂号信息 * @param firstResult 起始条数 * @param maxResults 最大条数 * @return */ public Response queryClinicRegist(int firstResult, int maxResults) { Response response = new Response(); try { Calendar calendar = Calendar.getInstance(); int hour = calendar.get(Calendar.HOUR_OF_DAY); String[] timeDesc = null; if (8 < hour && hour < 12) { timeDesc = new String[] { "白天", "上午", "下午", "昼夜" }; } else if (hour > 11 && hour < 18) { timeDesc = new String[] { "白天", "下午", "昼夜" }; } else { timeDesc = new String[] {"昼夜" }; } List<ClinicForRegist> list = baseService.queryClinicForRegist(new java.sql.Date(calendar.getTimeInMillis()), timeDesc, firstResult, maxResults); if(list.size() > 0){ response.setResult("S"); response.setArrayData(list); }else{ response.setResult("F"); response.setResult("没有查询到记录"); } } catch (Exception e) { e.printStackTrace(); response.setResult("F"); response.setErrorInfo(e.getMessage()); } return response; } public void setClinicForRegist(ClinicForRegist clinicForRegist){ } public void setClinicIndex(ClinicIndex clinicIndex){ } public void setDeptDict(DeptDict deptDict){ } }
hibernate的criteria查询
``` public List<Record> list(String confID, String srcpath, Date dateTime, int quality, int videoBackground, int transparency, int layoutId) { Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Record.class,"re"); criteria.add(Restrictions.eq("re.confid", "a83ec67f04934c1f8648f892f3b5ea30")); criteria.add(Restrictions.eq("re.srcpath","d://movie")); criteria.add(Restrictions.eq("re.transcode_start_time","2017-11-16 13:50:13")); criteria.createAlias("re.rc", "rrc",CriteriaSpecification.LEFT_JOIN);//关联主对象中的附属对象的属性名 criteria.add(Restrictions.eq("rrc.quality",1)); criteria.add(Restrictions.eq("rrc.video_background",1)); criteria.add(Restrictions.eq("rrc.transparency",1)); criteria.add(Restrictions.eq("re.layoutId",1)); criteria.setFetchMode("rrc",FetchMode.JOIN); List<Record> list = criteria.list(); for(Record re:list){ System.out.println("11123"+re.getLayoutid()); } return (List<Record>)criteria.list(); } ``` 现遇问题, 控制台不能show_sql,也不报错。对应的sql语句在数据库中能查询数据。
Hibernate4 org.hibernate.QueryException异常问题
各位大侠好,项目一直报错"org.hibernate.QueryException: could not resolve property: u_phone of: com.wanshang.po.Users",我仔细检查po类和映射文件,也没发现错误,请问各位大侠,这个问题是哪里错了?下面是各配置文件: ## Users.java ``` public class Users { private int id; private String name; private String phone; private String password; private String paypassword = "*"; private String usertype = "customer"; private float point = 0; public Users(){} public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getPaypassword() { return paypassword; } public void setPaypassword(String paypassword) { this.paypassword = paypassword; } public String getUsertype() { return usertype; } public void setUsertype(String usertype) { this.usertype = usertype; } public float getPoint() { return point; } public void setPoint(float point) { this.point = point; } } ``` ## Users.hbm.xml ``` <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.wanshang.po.Users" table="usersInfo"> <!-- 用户编号 --> <id name="id" column="u_id"> <generator class="identity" /> </id> <!-- 用户姓名 --> <property name="name" column="u_name" /> <!-- 用户手机 --> <property name="phone" column="u_phone" /> <!-- 用户密码 --> <property name="password" column="u_password" /> <!-- 用户支付密码 --> <property name="paypassword" column="u_paypassword" /> <!-- 用户类型 --> <property name="usertype" column="u_usertype" /> <!-- 用户积分 --> <property name="point" column="u_point" /> </class> </hibernate-mapping> ``` ## hibernate.cfg.xml ``` <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="myeclipse.connection.profile">mysql</property> <!-- 数据库方言 --> <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> <!-- 数据库驱动 --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!-- 数据库链接 --> <property name="connection.url">jdbc:mysql://127.0.0.1:3306/wanshang</property> <!-- 数据库用户名 --> <property name="connection.username">root</property> <!-- 数据库密码 --> <property name="connection.password"></property> <!-- 数据库连接池最大连接数 --> <property name="connection.pool_size">2000</property> <!-- 自动建表 --> <property name="hbm2ddl.auto">update</property> <!-- 打印SQL语句 --> <property name="show_sql">true</property> <!-- 映射 --> <mapping resource="com/wanshang/po/Users.hbm.xml" /> </session-factory> </hibernate-configuration> ``` ## 报错时经常会指向这个方法,代码如下: ``` /*通过字段集合查找*/ public Users findByMap(Map<String, String> params) { // TODO Users users = new Users(); //生成Session实例 Session session = HibernateUtil.getSession(); try{ Criteria criteria = session.createCriteria(Users.class); //遍历Map Set<String> key = params.keySet(); for(Iterator it = key.iterator();it.hasNext();){ String k = (String) it.next(); //保存key criteria.add(Restrictions.eq(k, params.get(k)));//eq是等于,gt是大于,lt是小于,or是或 System.out.println(k+":"+params.get(k)); } users = (Users) criteria.list().get(0); }catch(Exception e){ e.printStackTrace(); }finally{ //关闭Session实例 HibernateUtil.closeSession(session); return users; } } ``` ## 下面是数据库截图: ![图片说明](https://img-ask.csdn.net/upload/201610/21/1477037855_873577.jpg)
hibernate里面使用 criteria设定时间范围,拿不到数据
*数据库里面 submitTime 是nvarchar(50);sqlserver数据库 [code="java"] public Pager findPagerByTime(String startTime,String endTime,int pageSize, int pageNo){ // startTime是2011-2-2,endTime是2011-3-1 Session session=getHibernateTemplate().getSessionFactory().openSession(); Criteria criteria=session.createCriteria(ApplyList.class); criteria.add(Restrictions.between("submitTime", startTime, endTime)); int rowCount=((Integer)criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue(); criteria.setProjection(null); int startIndex=pageSize*(pageNo-1); criteria.addOrder(Order.desc("submitTime")); criteria.setFirstResult(startIndex); criteria.setMaxResults(pageSize); List result=criteria.list(); // 查询不到 System.out.println("result.size():"+result.size()); session.close(); return new Pager(pageSize,pageNo,rowCount,result); } [/code] 请问这样的查询语句,是哪里出错导致拿不出这个时间范围内的数据呢?
Hibernate分页效率问题
项目中使用了公司封装的数据库操作jar,但Hibernate分页效率总是不高,怀疑底层是先查后分页的情况,底子不好 各位大神劳烦看下 是先查询后分的页吗?(请先回答此问题) 有什么优化建议没? sqlstr 为sql语句,mapps为条件 public Map getList(String sqlstr, Map mapps, int iPageNo, int iPageSize) throws DAOException { HibernateCallback callback = new HibernateCallback(this, sqlstr, mapps, iPageNo, iPageSize) { final HibernatePersistenceManager this$0; private final String val$sqlstr; private final Map val$mapps; private final int val$iPageNo; private final int val$iPageSize; public Object doInHibernate() throws HibernateException, SQLException { Query query = this.this$0.getHibernateTemplate().createQuery(session, this.val$sqlstr); List list = new ArrayList(); if ((this.val$mapps != null) && (!(this.val$mapps.isEmpty()))) { Iterator it = this.val$mapps.keySet().iterator(); while (it.hasNext()) { String numStr = (String)it.next(); int num = Integer.parseInt(numStr); query.setParameter(num, this.val$mapps.get(numStr)); } } this.this$0.setPageNo(this.val$iPageNo); this.this$0.setPageSize(this.val$iPageSize); if ((this.val$mapps != null) && (!(this.val$mapps.isEmpty()))) this.this$0.setQueryPage(query, this.val$mapps); else this.this$0.setQueryPage(query); list = query.list(); Map map = new HashMap(); map.put("RecTotal", this.this$0.getRecTotal()); map.put("PageTotal", this.this$0.getPageTotal()); map.put("List", list); return map; } }; return ((Map)getHibernateTemplate().execute(callback)); }
Hibernate多表查询
<div class="iteye-blog-content-contain" style="font-size: 14px;"> <p>public PageModel getPage(int currentPage, int pageSize) { String hql = "from Orders,Users,Orderstate where Orders.clientid = Users.userid and Orders.progress = Orderstate.stateid"; String count = "select count(*) from Orders"; PageModel pageModel = this.getPage(hql, count, currentPage, pageSize); return pageModel; } 项目中使用的是hibernate框架,要进行多表查询,在DAO类方法中是这么写的,但是运行项目出现了错误,怎么解决,这个语句在数据库中可以执行,hibernate中会报错</p> <pre name="code" class="java">Struts Problem Report Struts has detected an unhandled exception: Messages: Invalid path: 'null.clientid' [from com.scan918.printerordersystem.model.Orders,com.scan918.printerordersystem.model.Users,com.scan918.printerordersystem.model.Orderstate where Orders.clientid = Users.userid and Orders.progress = Orderstate.stateid] Invalid path: 'null.clientid' [from com.scan918.printerordersystem.model.Orders,com.scan918.printerordersystem.model.Users,com.scan918.printerordersystem.model.Orderstate where Orders.clientid = Users.userid and Orders.progress = Orderstate.stateid]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: Invalid path: 'null.clientid' [from com.scan918.printerordersystem.model.Orders,com.scan918.printerordersystem.model.Users,com.scan918.printerordersystem.model.Orderstate where Orders.clientid = Users.userid and Orders.progress = Orderstate.stateid] File: org/hibernate/hql/ast/QuerySyntaxException.java Line number: 54 Stacktraces org.springframework.orm.hibernate3.HibernateQueryException: Invalid path: 'null.clientid' [from com.scan918.printerordersystem.model.Orders,com.scan918.printerordersystem.model.Users,com.scan918.printerordersystem.model.Orderstate where Orders.clientid = Users.userid and Orders.progress = Orderstate.stateid]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: Invalid path: 'null.clientid' [from com.scan918.printerordersystem.model.Orders,com.scan918.printerordersystem.model.Users,com.scan918.printerordersystem.model.Orderstate where Orders.clientid = Users.userid and Orders.progress = Orderstate.stateid] org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:657) org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412) org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424) org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:343) com.scan918.printerordersystem.dao.impl.BaseDAO.pageQuery(BaseDAO.java:301) com.scan918.printerordersystem.dao.impl.BaseDAO.getPage(BaseDAO.java:323) com.scan918.printerordersystem.dao.impl.OrdersDAOImpl.getPage(OrdersDAOImpl.java:21) com.scan918.printerordersystem.service.impl.OrderServiceImpl.getPage(OrderServiceImpl.java:26) com.scan918.printerordersystem.action.admin.AOrderAction.getPage(AOrderAction.java:63) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441) com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243) com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) java.lang.Thread.run(Thread.java:722) org.hibernate.hql.ast.QuerySyntaxException: Invalid path: 'null.clientid' [from com.scan918.printerordersystem.model.Orders,com.scan918.printerordersystem.model.Users,com.scan918.printerordersystem.model.Orderstate where Orders.clientid = Users.userid and Orders.progress = Orderstate.stateid] org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54) org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47) org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:82) org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:261) org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:185) org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136) org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:101) org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:80) org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94) org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156) org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135) org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1651) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.springframework.orm.hibernate3.HibernateTemplate$CloseSuppressingInvocationHandler.invoke(HibernateTemplate.java:1293) $Proxy12.createQuery(Unknown Source) com.scan918.printerordersystem.dao.impl.BaseDAO$6.doInHibernate(BaseDAO.java:306) org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419) org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:343) com.scan918.printerordersystem.dao.impl.BaseDAO.pageQuery(BaseDAO.java:301) com.scan918.printerordersystem.dao.impl.BaseDAO.getPage(BaseDAO.java:323) com.scan918.printerordersystem.dao.impl.OrdersDAOImpl.getPage(OrdersDAOImpl.java:21) com.scan918.printerordersystem.service.impl.OrderServiceImpl.getPage(OrderServiceImpl.java:26) com.scan918.printerordersystem.action.admin.AOrderAction.getPage(AOrderAction.java:63) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441) com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243) com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) java.lang.Thread.run(Thread.java:722) You are seeing this page because development mode is enabled. Development mode, or devMode, enables extra debugging behaviors and reports to assist developers. To disable this mode, set: struts.devMode=false in your WEB-INF/classes/struts.properties file.</pre> <p> </p> </div>
执行delete没有报错,就是删不掉数据,sql语句也有,求大神
package edu.jmi.xyh.view; import java.awt.BorderLayout; public class DeleteView extends JFrame { private JPanel contentPane; private JTextField txID; private JTextField txName; private JPasswordField txPw; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { DeleteView frame = new DeleteView(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public DeleteView() { setTitle("\u5220\u9664\u5B66\u751F\u4FE1\u606F"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JLabel label = new JLabel("\u5220 \u9664 \u5B66 \u751F \u4FE1 \u606F"); label.setFont(new Font("宋体", Font.PLAIN, 16)); label.setBounds(140, 22, 147, 15); contentPane.add(label); JLabel lblId = new JLabel("\u7528 \u6237 ID\uFF1A"); lblId.setBounds(95, 55, 69, 15); contentPane.add(lblId); txID = new JTextField(); txID.setBounds(174, 52, 113, 21); contentPane.add(txID); txID.setColumns(10); JLabel label_2 = new JLabel("\u7528 \u6237 \u540D\uFF1A"); label_2.setBounds(95, 98, 66, 15); contentPane.add(label_2); JLabel label_3 = new JLabel("\u5BC6 \u7801\uFF1A"); label_3.setBounds(95, 143, 54, 15); contentPane.add(label_3); txName = new JTextField(); txName.setBounds(174, 95, 113, 21); contentPane.add(txName); txName.setColumns(10); JButton button = new JButton("\u5220\u9664"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String id=txID.getText(); String pw=txPw.getText(); String name=txName.getText(); Student student=new Student(); student.setStuId(id); student.setStuName(name); student.setStuPwd(pw); StudentDao studentDao=new StudentDao(); int result=studentDao.delete(id); if(result==0){ JOptionPane.showMessageDialog(null, "删除成功!"); } else{ JOptionPane.showMessageDialog(null, "删除失败!"); } System.out.println("id="+id+"pw="+pw); } }); button.setBounds(75, 189, 93, 23); contentPane.add(button); JButton button_1 = new JButton("\u53D6\u6D88"); button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //生成一个对象 MainView mainView = new MainView(); //隐藏窗口 DeleteView.this.setVisible(false); mainView.setVisible(true); } }); button_1.setBounds(232, 189, 93, 23); contentPane.add(button_1); txPw = new JPasswordField(); txPw.setBounds(174, 140, 113, 21); contentPane.add(txPw); } public void setMainView(MainView mainView) { // TODO Auto-generated method stub } public void setID(Object id) { // TODO Auto-generated method stub } } 2.package edu.jmi.xyh.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import edu.jmi.xyh.bean.Student; public class StudentDao { //测试用 //ORM object relation mapping hibernate,ibaits //每一条记录映射每一个对象,记录集合映射成对象集合List //Dao data access object //save将一个java对象存储到数据库表中,就是将对象转换为记录 public int save(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库连接 Connection connection=null; try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //字符串拼接 String sql="insert into student(stuId,stuName,stuPwd)values('" +student.getStuId()+"','"+student.getStuName()+"','"+student.getStuPwd()+"')"; //用来在程序中指挥sql命令执行 st.execute(sql); System.out.println(sql); return 0; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ dboperation.closeConnect(connection); } } public int update(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库 Connection connection=null; try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //字符串拼接 String sql="update student set stuName='"+student.getStuName()+ "', stuPwd='"+student.getStuPwd()+"' where stuId='"+ student.getStuId()+"'"; st.execute(sql); System.out.println(sql); return 0; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ dboperation.closeConnect(connection); } } public int delete(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库连接 Connection connection=null; try{ connection=dboperation.getConnection(); String sql="delete from student where stuId='?'"; //准备执行sql语句 PreparedStatement pst=connection.prepareStatement(sql); //替换上面的问号 pst.setString(1, student.getStuId()); pst.execute(); /* Statement st=connction.createStatement(); //字符串拼接 String sql="delete from student where Stuid='"+student.getStuid()+"'"; st.execute(sql);*/ //把sql语句打出来 System.out.println(sql); //返回值 return 0; //异常处理 }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ //关闭与数据库连接 dboperation.closeConnect(connection); } } //查询结果放到集合中,集合中的每一个对象都是student <>是泛型 public List<Student> query(){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库 Connection connection=null; List<Student> list = new ArrayList<Student>(); try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //查询语句 String sql="select* from student"; //查询语句执行exuecuteQuery,不是execte,执行后放回结果集resultset,把resultsest变成list,通过遍历实现 ResultSet rs=st.executeQuery(sql); //rs.next向下移动一行,刚开始在第0行。如果该行存在,返回true,否则会返回false, //每一行对应一个student对象,全部记录对应list //getInt,getString,getDate,getBoolean,获取该字段的值 //getInt(1),getInt("stuId") //可能有多条用while,最多用一条用if if(rs.next()){ Student student=new Student(); String stuId=rs.getString("stuId"); String stuName=rs.getString("stuName"); String stuPwd=rs.getString("stuPwd"); student.setStuId(stuId); student.setStuName(stuName); student.setStuPwd(stuPwd); //最后将student对象存放到集合中 list.add(student); } System.out.println(sql); return list; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return null; }finally{ dboperation.closeConnect(connection); } } //重载 public static Student query(String id) { // TODO Auto-generated method stub //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dbOperation=new DBOperation(); //获取数据库连接 Connection connction=null; try{ connction=dbOperation.getConnection(); Statement st=connction.createStatement(); //查询语句 String sql="select * from student where stuid='"+id+"'"; //查询语句执行exuecuteQuery,不是execute,执行后放回结果集resultset,把resultset变成list,通过遍历实现 ResultSet rs=st.executeQuery(sql); //可能有多条用while,最多一条就用if可以了。码农 Student student=null; if(rs.next()){ //如果有记录,新建一个student对象,将查到的结果封装到student对象中。 student=new Student(); String stuId=rs.getString("stuId"); String stuName=rs.getString("stuName"); String stuPwd=rs.getString("stuPwd"); student.setStuId(stuId); student.setStuName(stuName); student.setStuPwd(stuPwd); } return student; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return null; }finally{ dbOperation.closeConnect(connction); } } public static void main(String args[]){ StudentDao studentDao=new StudentDao(); List<Student> list=studentDao.query(); //for each语句 iterator for(Student student:list){ System.out.println(student.getStuName()); } /*Student student=new Student(); student.setStuId("152118130235"); student.setStuName("徐耀辉"); student.setStuPwd("979194874");*/ } public int delete(String id) { // TODO Auto-generated method stub return 0; } }
执行Delect好像未连接上数据库
package edu.jmi.xyh.view; import java.awt.BorderLayout; public class DeleteView extends JFrame { private JPanel contentPane; private JTextField txID; private JTextField txName; private JPasswordField txPw; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { DeleteView frame = new DeleteView(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public DeleteView() { setTitle("\u5220\u9664\u5B66\u751F\u4FE1\u606F"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JLabel label = new JLabel("\u5220 \u9664 \u5B66 \u751F \u4FE1 \u606F"); label.setFont(new Font("宋体", Font.PLAIN, 16)); label.setBounds(140, 22, 147, 15); contentPane.add(label); JLabel lblId = new JLabel("\u7528 \u6237 ID\uFF1A"); lblId.setBounds(95, 55, 69, 15); contentPane.add(lblId); txID = new JTextField(); txID.setBounds(174, 52, 113, 21); contentPane.add(txID); txID.setColumns(10); JLabel label_2 = new JLabel("\u7528 \u6237 \u540D\uFF1A"); label_2.setBounds(95, 98, 66, 15); contentPane.add(label_2); JLabel label_3 = new JLabel("\u5BC6 \u7801\uFF1A"); label_3.setBounds(95, 143, 54, 15); contentPane.add(label_3); txName = new JTextField(); txName.setBounds(174, 95, 113, 21); contentPane.add(txName); txName.setColumns(10); JButton button = new JButton("\u5220\u9664"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String id=txID.getText(); String pw=txPw.getText(); String name=txName.getText(); Student student=new Student(); student.setStuId(id); student.setStuName(name); student.setStuPwd(pw); StudentDao studentDao=new StudentDao(); int result=studentDao.delete(id); if(result==0){ JOptionPane.showMessageDialog(null, "删除成功!"); } else{ JOptionPane.showMessageDialog(null, "删除失败!"); } System.out.println("id="+id+"pw="+pw); } }); button.setBounds(75, 189, 93, 23); contentPane.add(button); JButton button_1 = new JButton("\u53D6\u6D88"); button_1.setBounds(232, 189, 93, 23); contentPane.add(button_1); txPw = new JPasswordField(); txPw.setBounds(174, 140, 113, 21); contentPane.add(txPw); } } package edu.jmi.xyh.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import edu.jmi.xyh.bean.Student; public class StudentDao { //测试用 //ORM object relation mapping hibernate,ibaits //每一条记录映射每一个对象,记录集合映射成对象集合List //Dao data access object //save将一个java对象存储到数据库表中,就是将对象转换为记录 public int save(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库连接 Connection connection=null; try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //字符串拼接 String sql="insert into student(stuId,stuName,stuPwd)values('" +student.getStuId()+"','"+student.getStuName()+"','"+student.getStuPwd()+"')"; //用来在程序中指挥sql命令执行 st.execute(sql); System.out.println(sql); return 0; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ dboperation.closeConnect(connection); } } public int update(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库 Connection connection=null; try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //字符串拼接 String sql="update student set stuName='"+student.getStuName()+ "', stuPwd='"+student.getStuPwd()+"' where stuId='"+ student.getStuId()+"'"; st.execute(sql); System.out.println(sql); return 0; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ dboperation.closeConnect(connection); } } public int delete(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库连接 Connection connection=null; try{ connection=dboperation.getConnection(); String sql="delete from student where stuId='?'"; PreparedStatement pst=connection.prepareStatement(sql); pst.setString(1, student.getStuId()); pst.execute(); /* Statement st=connction.createStatement(); //字符串拼接 String sql="delete from student where Stuid='"+student.getStuid()+"'"; st.execute(sql);*/ System.out.println(sql); return 0; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ dboperation.closeConnect(connection); } } //查询结果放到集合中,集合中的每一个对象都是student <>是泛型 public List<Student> query(){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库 Connection connection=null; List<Student> list = new ArrayList<Student>(); try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //查询语句 String sql="select* from student"; //查询语句执行exuecuteQuery,不是execte,执行后放回结果集resultset,把resultsest变成list,通过遍历实现 ResultSet rs=st.executeQuery(sql); //rs.next向下移动一行,刚开始在第0行。如果该行存在,返回true,否则会返回false, //每一行对应一个student对象,全部记录对应list //getInt,getString,getDate,getBoolean,获取该字段的值 //getInt(1),getInt("stuId") //可能有多条用while,最多用一条用if if(rs.next()){ Student student=new Student(); String stuId=rs.getString("stuId"); String stuName=rs.getString("stuName"); String stuPwd=rs.getString("stuPwd"); student.setStuId(stuId); student.setStuName(stuName); student.setStuPwd(stuPwd); //最后将student对象存放到集合中 list.add(student); } System.out.println(sql); return list; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return null; }finally{ dboperation.closeConnect(connection); } } //重载 public static Student query(String id) { // TODO Auto-generated method stub //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dbOperation=new DBOperation(); //获取数据库连接 Connection connction=null; try{ connction=dbOperation.getConnection(); Statement st=connction.createStatement(); //查询语句 String sql="select * from student where stuid='"+id+"'"; //查询语句执行exuecuteQuery,不是execute,执行后放回结果集resultset,把resultset变成list,通过遍历实现 ResultSet rs=st.executeQuery(sql); //可能有多条用while,最多一条就用if可以了。码农 Student student=null; if(rs.next()){ //如果有记录,新建一个student对象,将查到的结果封装到student对象中。 student=new Student(); String stuId=rs.getString("stuId"); String stuName=rs.getString("stuName"); String stuPwd=rs.getString("stuPwd"); student.setStuId(stuId); student.setStuName(stuName); student.setStuPwd(stuPwd); } return student; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return null; }finally{ dbOperation.closeConnect(connction); } } public static void main(String args[]){ StudentDao studentDao=new StudentDao(); List<Student> list=studentDao.query(); //for each语句 iterator for(Student student:list){ System.out.println(student.getStuName()); } /*Student student=new Student(); student.setStuId("152118130235"); student.setStuName("徐耀辉"); student.setStuPwd("979194874");*/ } public int delete(String id) { // TODO Auto-generated method stub return 0; } }
mysql 和proxool 数据库连接池的问题(连接定时递增)
我在Struts2.0 + Spring2.0 + hibernate3.2的应用中采用了proxool 数据库连接池。 proxool.xml的配置如下: <?xml version="1.0" encoding="utf-8"?> <something-else-entirely> <proxool> <alias>test</alias> <driver-url>jdbc:mysql://127.0.0.1:3306/testdb?useUnicode=true&amp;characterEncoding=utf-8</driver-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <driver-properties> <property name="user" value="root"/> <property name="password" value="root"/> </driver-properties> <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql> <house-keeping-sleep-time>90000</house-keeping-sleep-time> <prototype-count>5</prototype-count> <maximum-connection-count>100</maximum-connection-count> <minimum-connection-count>10</minimum-connection-count> </proxool> </something-else-entirely> 在applicationContext.xml中 <!-- Hibernate-Spring配置 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="mappingResources"> <list> <value>com/test/User.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">false</prop> <prop key="hibernate.connection.autocommit">true</prop> <prop key="hibernate.connection.release_mode">after_statement</prop> <prop key="hibernate.bytecode.use_reflection_optimizer">true</prop> <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop> <prop key="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</prop> <prop key="hibernate.proxool.xml">proxool.xml</prop> <prop key="hibernate.proxool.pool_alias">test</prop> </props> </property> </bean> MySqL 的 my.ini 配置参数 max_connections=500 interactive_timeout=10000000 wait_timeout=10000000 proxool 的 maximum-connection-lifetime(连接最大生命时间)默认4小时,发现每隔4个小时,通过show status命令查看MySQl 的Connections 增加10个,很快就会到达max_connections的最大限制,虽然可以把max_connections设置为16000,但是这只是延长出问题的时间而已。请各位遇到这样情况的朋友指导如何解决? MySQL 版本5.0和4.1都试过,proxool 版本为 proxool-0.9.0RC3。 [b]问题补充:[/b] 蔡华江:谢谢指点。我在数据库的查询、更新等方面都是通过hibernate来完成的,如查询用户 public User findUserByUsername(String username) { String queryStr=PropertyOwner.getKeyValue("getuserwithname"); Session session = this.getSession(); Query query=getQuery(queryStr,session); query.setString("username", username); if(query.list().size()>0) { User tmp=(User)query.list().get(0); this.closeSession(session); return tmp; } else { this.closeSession(session); return null; } } 在程序的最后都有this.closeSession(session);这样的语句,难道数据连接没有关闭? [b]问题补充:[/b] 现在我怀疑是 this.closeSession(session); 没有关闭连接。因为Session session = this.getSession(); 利用getSession强制获得了Hibernate的 Session,这个Session可能是当前事务中之前使用过的,或者可能是一个新的,并不在当前事务中,Spring只对当前事务中的Session 进行关闭。参考“spring整合hibernate关于session的管理”(http://solodu.iteye.com/blog/454469),我修改Session session = super.getSession(true);运行10分钟后还是递增连接。说明还有其他的数据库连接没有释放。查看Proxool的监控界面可以看到连接情况0 (active), 10 (available), 100 (max)。 我怀疑一个定时保存的地方有问题 try { otherDAO.updataOrSave(tmpp); } catch (Exception e) { } ......>跟踪 public void updataOrSave(T domainObject) throws Exception { saveOrUpdate((Object)domainObject); } ......>继续跟踪 protected void saveOrUpdate(final Object obj)throws Exception { run ( new TransactionRunnable () { public Object run (Session s) { saveOrUpdate(obj, s); return null; } }); } ......>继续跟踪 protected void saveOrUpdate(Object obj, Session s) { s.saveOrUpdate(obj); } 请问上述代码有问题吗? [b]问题补充:[/b] 现在我把定时保存部分关闭了,照样有此问题。 [b]问题补充:[/b] 经过多次试验,增加连接的地方是类似这样的hibernate的操作 public History queryHistory(String queryStr,String entity,Date time) { Session session = this.getHibernateTemplate().getSessionFactory().openSession();//该句照样增加连接数 //getSession();//该句照样增加连接数 Query query=super.getQuery(queryStr,session); int size=query.list().size(); if(size>0) { History temp=(History)query.list().get(0); session.close(); return temp; } else { session.close(); return null; } } [b]问题补充:[/b] 现在问题是Proxool连接池里的连接ID老是递增(通过Proxool监控界面看),连接数是没有超过最大连接。请问各位好手如何解决啊? [b]问题补充:[/b] 这个问题竟然是我的理解错了。 MySQL的SHOW STATUS提供服务器的状态信息: Connections 试图连接MySQL服务器的次数,是不断增加,不是真正的目前连接数(与MySqL 的 my.ini 配置参数 max_connections无关,好多人都理解错误)。 真正有用的是下述几个 Threads_created 表示创建过的线程数,该值太大,就要增加my.cnf中thread_cache_size的值 Threads_connected 当前打开的连接的数量。 Threads_running 不在睡眠的线程数量。 Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。 Aborted_connects 尝试已经失败的MySQL服务器的连接的次数。 感谢蔡华江的指导。
关于S2SH3大框架整合后,hibernate无异常提醒问题。
调用查询数据库操作的时候,HQL语句写错也没有错误提示。其中我的代码封装如下: hibernate、struts2配置已经整合到spring中。 1. 处理页面传来的值的 action类: public class ManagerAction extends BaseAction{ @Resource private ManagerInter managerImpl; private Manager manager; public String recManager(){ String account = manager.getAccount(); String paswd = manager.getPassword(); System.out.println(account+" "+paswd); List<Manager> managers = managerImpl.executeQuery("from Manager",account,paswd); return "success"; } public Manager getManager() { return manager; } public void setManager(Manager manager) { this.manager = manager; } public void setManagerImpl(ManagerInter managerImpl) { this.managerImpl = managerImpl; } 这段代码中的HQL语句是明显错误,但却没有异常抛出。在HQL语句正确的情况下,是能正常的查询出数据,故已经排除数据库异常,代码错误,没织入spring容器等错误。 2. 这个查询方法是调用了 ManagerInter 接口里的方法,已经织入spring,其中ManagerInter接口代码如下: public interface ManagerInter extends BaseDaoInter{ //这个接口写入该业务专有方法 } 这个接口是继承了一个基础接口,基础接口代码如下: public interface BaseDaoInter { /** * 查询方法 * */ public List executeQuery(String hql , Object...prameters); } 其中实现类如下: @Transactional public abstract class BaseDaoImpl implements BaseDaoInter{ @Resource private SessionFactory sessionFactory; //查询方法 public List executeQuery(String hql, Object... prameters) { Query query = sessionFactory.getCurrentSession().createQuery(hql); if(prameters!=null&&prameters.length>0){ for (int i = 0; i < prameters.length; i++) { query.setParameter(i, prameters[i]); } } return query.list(); } } 问:要怎样做才能让错误抛出。 我已经尝试过的方法: public List executeQuery(String hql, Object... prameters) { Query query = null; try { query = sessionFactory.getCurrentSession().createQuery(hql); if (prameters != null && prameters.length > 0) { for (int i = 0; i < prameters.length; i++) { query.setParameter(i, prameters[i]); } } } catch (Exception e) { throw new RuntimeException(e.getMessage()); } return query.list(); } 对这个实现类 进行 异常扑捉,可是不行。 问:怎么办?
报java.lang.IllegalArgumentException错误?
信息: Server startup in 27476 ms Hibernate: select bbasic0_.b_ID as b1_0_, bbasic0_.b_cost as b2_0_, bbasic0_.b_level as b3_0_, bbasic0_.b_number as b4_0_, bbasic0_.b_project as b5_0_, bbasic0_.b_remark as b6_0_, bbasic0_.b_state as b7_0_ from p_basic bbasic0_ limit ? 2017-11-1 19:43:11 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet springDispatcherServlet threw exception java.lang.IllegalArgumentException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:66) at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:583) at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:229) at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3848) at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:152) at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:982) at org.hibernate.loader.Loader.doQuery(Loader.java:857) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274) at org.hibernate.loader.Loader.doList(Loader.java:2542) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276) at org.hibernate.loader.Loader.list(Loader.java:2271) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:459) at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:365) at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) at cn.zrcx.dao.DaoSupport.getScrollData(DaoSupport.java:75) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:266) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at $Proxy41.getScrollData(Unknown Source) at cn.zrcx.action.BasicAction.query(BasicAction.java:109) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:781) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:721) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at cn.zrcx.filter.EcodingFilter.doFilter(EcodingFilter.java:40) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 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:102) 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:877) at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675) at java.lang.Thread.run(Thread.java:619) 向数据库中执行分页查询操作包如上的错误,不知道是哪里出的问题 **控制层代码:** @RequestMapping("/basicAction_query") public void query(HttpServletRequest request, HttpServletResponse response) throws IOException{ //int currentPage=Integer.parseInt(request.getParameter("page")); //int pageSize=Integer.parseInt(request.getParameter("rows")); int currentPage=1; int pageSize=5; PageView pageview=new PageView(currentPage,pageSize); QueryResult<BBasic> queryResult=basicService.getScrollData(BBasic.class, (currentPage-1)*pageview.getMaxresult(),pageview.getMaxresult(),null,null,null); **//上面分页查询语句报错** long totalrecord=queryResult.getTotalrecord(); List<BBasic> resultlist=queryResult.getResultlist(); JsonConfig jsonConfig=new JsonConfig(); jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor()); String jsonData=JSONArray.fromObject(resultlist,jsonConfig).toString(); System.out.println("{\"total\":"+totalrecord+",\"rows\":"+jsonData+"}"); response.getWriter().print("{\"total\":"+totalrecord+",\"rows\":"+jsonData+"}"); } 直接访问控制层方法报上面的错误,Hibernate查询语句出来了,正常可以把查询结果转变为json数据的,但是报了上面这个错误,不知道是哪里出的问题?请教各位大神,帮忙给点指点,谢谢!
[极品难]关于hibernate如何把原生sql查出的结果转化为对象
例如我们有一个照片的PO <br /> <br />Java code <br />//照片po <br />class Photo <br />{ <br />&nbsp;&nbsp; int id; <br />&nbsp;&nbsp; string title; <br />&nbsp;&nbsp; double avgScore;//平均分,这个字段在数据库中是没有映射的,也就是 非持久化属性 <br />} <br /> <br />//投票po ,每张照片对应多个vote记录 <br />class Vote <br />{ <br />&nbsp;&nbsp; int id; <br />&nbsp;&nbsp; int photoId; <br />&nbsp;&nbsp; int score; <br />} <br /> <br /> <br /> <br />用sql = "select {p.*,avg(v.score) as p.avgScore} from photo p left join vote v on p.id = v.photoId "; <br />单纯的sql结果很满意,包含照片的信息和每张照片的平均分数。 <br /> <br />代码如下: <br />Query query = session.createSQLQuery(sql.toString()).addEntity(Photo.class); <br /> <br />运行后,没有错误,但是在SQL语句中的avg(v.score) as p.avgScore} 这一部分,没有被像我们预期的那样set进photo的avgScore属性中。 <br /> <br /> <br />问题: <br />我们如果遇到要用原生sql进行查询,并要将结果set进一个po中,其中set进po中的属性,不完全是被可持久化的,例如本例 <br />中的avgScore属性。 <br /> <br />期待大家来解答这个疑惑~谢谢! thanks a lot ! <br /> <br />PS: 请别和我说完全可以用hql等方式,这只是个简单的示例,目前是想研究原生sql对象映射问题。 <br /><br /><strong>问题补充:</strong><br />首先谢谢yangtao309您的回答!~ <br /> <br />我仔细看了那篇文章,addScalar这个的意思似乎只是把查出来的非属性结果进行类型绑定,我现在的困惑是如果把这个值自动绑定进po中~~ <br /> <br />就像上面的例子,select出一个po,然后这个po中要有那个avgScore的属性值,目前我试过即使用addScalar明确avgScore的类型,还是不会自动set进po中。。 <br /> <br />是不是我哪弄错了,还是什么原因,希望大家再帮我看看<br /><strong>问题补充:</strong><br />谢谢您 walsh 的回答,我觉得您说的很有道理 ,我现在用的MYSQL5,按您的提示,运行后,控制台打出下样异常,繁请帮忙看下,谢谢! <br /> <br /> <br /> <br />打印出的SQL: <br />sql:&nbsp; select {p.id,p.user_id,p.url,p.state,avg(v.score) as p.avgScore} from photos p&nbsp; where p.user_id = :userId and p.state in ( 0, 1 )&nbsp; group by p.id&nbsp; order by&nbsp; p.id desc <br /> <br /> <br /> <br /> <br /> <br />报了个这个错: <br />44187 [http-8080-1] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 1064, SQLState: 42000 <br />44187 [http-8080-1] ERROR org.hibernate.util.JDBCExceptionReporter - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from photos p&nbsp; where p.user_id = 13 and p.state in ( 0, 1 )&nbsp; group by p.id&nbsp; orde' at line 1 <br />2009-9-3 12:04:39 org.apache.catalina.core.StandardWrapperValve invoke <br />严重: Servlet.service() for servlet default threw exception <br />com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from photos p&nbsp; where p.user_id = 13 and p.state in ( 0, 1 )&nbsp; group by p.id&nbsp; orde' at line 1 <br /> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936) <br /><br /><strong>问题补充:</strong><br />为什么要对所有字段字组??这原因和自动set进po应该没直接关系吧? <br /><img src="/images/smiles/icon_surprised.gif"/> <br /><strong>问题补充:</strong><br />改成group by p.id, p.user_id,p.url,p.state仍然是之前的错误。 <br /> <br />如果不加{}那么就报在数据库找不到p.avgScore这列,因为p.avgScore是一个虚似的临时变量,非持久化属性。 <br /> <br />谢谢,再帮忙想想~~~<br /><strong>问题补充:</strong><br />谢谢,WALSH再次的回答。 <br /> <br />我提问题时只是简单写的示例,省略了几个字段, <br />sql = "select p.id,avg(v.score) from photo p , vote v where p.id = v.photoId&nbsp; group by p.id";&nbsp;&nbsp; <br /> <br />这么写是可以,但不会被自动绑定进PO,我来问就是想知道在不调用SET方法的情况下能否自动把非字段属性绑定进PO。 <br /> <br />如果是单调set方法,我是知道的~~有没有自动的方式,谢谢walsh不遗余力的帮我解决这个问题。谢谢! <br /> <br />您看看有没有自动的方式绑定进PO的。。 <br /><br /><strong>问题补充:</strong><br />您好walsh,我也知道hibernate会找set方法,但有可能还会只限制在*.hbm.xml文件中声明,或者只被@Cloumn注解的属性字段。。 <br /> <br />因为我返回avg(v.score) as p.avgScore,其实在p这个po中是有setAvgScore()这个方法的,可是终始不会被调用 。。。 <br /> <br />我甚至做过这个测试,把avgScore()设成@Cloumn(insertable=false,updateable=false),还是不会自动set进po中。。 <br /> <br /> <br />对这个问题看来基本明确了。。可能就是不行,只能返回object[]来一个个的set了吧? <br /> <br />
findByPojo查值放入对象中和sql在数据库直接执行值不匹配,求救?
Service层调用hibernete的findByPrimaryId(s),控制台没有sql语句执行,可获取到对象,对象内实体类状态status为1;Service层调用hibernete的findByPojo(Class<?> className)返回的list中status为1,sql直接在数据库运行,查询的记录里status为10,其余值一致。 ``` //逻辑代码 WorkItem workItem =new WorkItem(); workItem.setId(workItemId); List<POJO> iList = serviceWorkItem.findByPOJO(workItem); if(iList !=null &&!iList.isEmpty()){ workItem = (WorkItem) iList.get(0); }else{ throw new OperationsException(TransCode.ERROR_QUERYIMG.getCode()); } //WorkItem workItem = (WorkItem) serviceWorkItem.findByPrimaryId(workItemId); if(workItem!=null){ int ocrStatue = workItem.getStatus(); //实体类 /** * 返回状态属性的值 * @return Integer */ public Integer getStatus() { return this.status; } /** * 设置状态的值 * @param status Integer */ public void setStatus(Integer status) { this.status = status; } ```![图片说明](https://img-ask.csdn.net/upload/201905/21/1558427281_248287.png) sql语句:SELECT this_.ID AS ID21_0_, this_. CODE AS CODE21_0_, this_. NAME AS NAME21_0_, this_. STATUS AS STATUS21_0_, this_.DESCRIPTION AS DESCRIPT5_21_0_, this_.TYPE AS TYPE21_0_, this_.ROLE AS ROLE21_0_, this_.OPERATOR AS OPERATOR21_0_, this_.CREATE_TIME AS CREATE9_21_0_, this_.FINISH_TIME AS FINISH10_21_0_, this_.ACQUIRE_TIME AS ACQUIRE11_21_0_, this_.EX_OPERATOR1 AS EX12_21_0_, this_.EX_OPERATOR2 AS EX13_21_0_, this_.SCAN_BATCH_ID AS SCAN14_21_0_, this_.BATCH_ID AS BATCH15_21_0_, this_.IMAGE_ID AS IMAGE16_21_0_, this_.PRIORITY AS PRIORITY21_0_, this_.BIZ_DATE AS BIZ18_21_0_, this_.CH_WORKLOAD AS CH19_21_0_, this_.EN_WORKLOAD AS EN20_21_0_, this_.FIELD_NUM AS FIELD21_21_0_, this_.VALID_OPER AS VALID22_21_0_, this_.VALID_FIELD_NUM AS VALID23_21_0_, this_.PROJECT_ID AS PROJECT24_21_0_, this_.BILL_ID AS BILL25_21_0_, this_.PROCESS_TIME AS PROCESS26_21_0_, this_.BATCH_CTIME AS BATCH27_21_0_, this_.IMAGE_BLOCK_ID AS IMAGE28_21_0_, this_.EX_WORK_ITEM_ID AS EX29_21_0_, this_.INPUT_NO AS INPUT30_21_0_, this_. MONTH AS MONTH21_0_, this_. YEAR AS YEAR21_0_, this_. DAY AS DAY21_0_, this_.OPERATOR_NAME AS OPERATOR34_21_0_, this_.QUEUE_NAME AS QUEUE35_21_0_, this_.OBTAINED_TIME AS OBTAINED36_21_0_, this_.UPDATE_ASS AS UPDATE37_21_0_ FROM WORK_ITEM this_ WHERE this_.ID ='4028abad6ad95dfc016ad963f3cf0002'
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
python自动下载图片
近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。 突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?’ 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It’s simple. Wait for me for a ...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 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万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业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:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
C++(数据结构与算法):62---搜索树(二叉搜索树、索引二叉搜索树)
一、搜索树的复杂度分析 本文考察二叉搜索树和索引二叉搜索树 二叉搜索树的渐进性能可以和跳表媲美: 查找、插入、删除操作所需的平均时间为Θ(logn) 查找、插入、删除操作的最坏情况的时间为Θ(n) 元素按升序输出时所需时间为Θ(n) 虽然在最坏情况下的查找、插入、删除操作,散列表和二叉搜索树的时间性能相同,但是散列表在最好的情况下具有超级性能Θ(1) 不过,对于一个指定的关键...
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
最全最强!世界大学计算机专业排名总结!
我正在参与CSDN200进20,希望得到您的支持,扫码续投票5次。感谢您! (为表示感谢,您投票后私信我,我把我总结的人工智能手推笔记和思维导图发送给您,感谢!) 目录 泰晤士高等教育世界大学排名 QS 世界大学排名 US News 世界大学排名 世界大学学术排名(Academic Ranking of World Universities) 泰晤士高等教育世界大学排名 中国共...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
立即提问