ibatis传参问题

做了一个从数据库查询数据然后传到jsp页面的小程序
可以根据传给数据库的orderByType和sort来改变排序的字段和顺序
如图1 2所示
为什么在执行的时候似乎这个值传递不到sql语句里
因为在jsp页面显示的时候总是按照默认的来显示,是不是我sql语句写错了?
帮忙看下

2个回答

Map conditon = new Hash();
condition.put("orderByType", orderByType);
condition.put("sort", sort);
在配置文件中:

select * from XX_XXX where 1=1

orderByType =#orderByType#

order by #sort# desc

将参数放入map集合中

Map map = new HashMap;
map.put("type",type);
然后调用SqlMapClientTemplate(这事spring支持的ibatis模版),将map传递给配置文件中,如getSqlMapClientTemplate().insert("对应sql配置文件中节点名称", map);
,然后再在配置文件中指定

<![CDATA[
通过##的方式取出值,如#type#
]]>

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ibatis配置问题
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <sqlMap> <!-- 为Person类设置一个别名 --> <typeAlias alias="user" type="com.lt.ibatis.pojo.user"/> <!-- 配置表和类之间的映射关系 --> <resultMap class="com.lt.ibatis.pojo.user" id="userMap"> <result property="userid" column="userid"/> <result property="username" column="username"/> <result property="password" column="password"/> <result property="phone" column="phone"/> <result property="fax" column="fax"/> </resultMap> <!-- 验证帐号密码 --> <select id="queryAccount" parameterClass="java.lang.String" resultClass="com.lt.ibatis.pojo.User"> <![CDATA[ SELECT * FROM USERTAB WHERE USERID=#USERID# AND PASSWORD=#PASSWORD# ]]> </select> </sqlMap> 这是我的 User.xml 表映射文件  报的错误是: Exception in thread "main" java.lang.NoClassDefFoundError: com/lt/ibatis/pojo/user (wrong name: com/lt/ibatis/pojo/User) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at com.ibatis.common.resources.Resources.classForName(Resources.java:260) at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser$14.process(SqlMapParser.java:374) at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:84) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:72) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51) at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser.parse(SqlMapParser.java:51) at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$11.process(SqlMapConfigParser.java:410) at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:84) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:72) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51) at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:86) at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:63) at com.lt.dao.QuoteDao.queryAccount(QuoteDao.java:19) at com.lt.dao.TestDao.main(TestDao.java:15) 好象是路径问题,本人刚学习ibatis,之前学的一个DEMO都成功了,这次自己写的就出问题了?有人能回答下吗?
ibatis调用存储过程入参问题
<p style="" align="left"><span lang="EN-US" style=""><span style="color: #000000;">CREATE OR REPLACE TYPE EMP_SALARY_REC AS OBJECT (<br> EMP_ID NUMBER(5),<br> EMP_NAME VARCHAR2(255),<br> START_DATE DATE,<br> SALARY NUMBER <br>);<br>/<br><br>CREATE OR REPLACE Type EMP_SALARY_TAB AS TABLE OF EMP_SALARY_REC;<br>/<br><br>next we will create a small package with one single test procedure<br><br>CREATE OR REPLACE PACKAGE EMP_SALARY_PKG IS<br> PROCEDURE GET_EMP_SALARIES(i_array IN EMP_SALARY_TAB,o_array OUT<br>EMP_SALARY_TAB);<br>End EMP_SALARY_PKG;<br>/<br></span><br>用ibatis就不能配置调用吗?</span></p><br/><strong>问题补充</strong><br/><div class="quote_title">niwenbin 写道</div><div class="quote_div">SQL Map通过&lt;procedure&gt;元素支持存储过程。下面的例子说明如何使用具有输出参数的存储过程。 <br />&lt;parameterMap id="swapParameters" class="map" &gt; <br />&lt;parameter property="email1" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/&gt; <br />&lt;parameter property="email2" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/&gt; <br />&lt;/parameterMap&gt; <br />&lt;procedure id="swapEmailAddresses" parameterMap="swapParameters" &gt; <br />{call swap_email_address (?, ?)} <br />&lt;/procedure&gt; <br />调用上面的存储过程将同时互换两个字段(数据库表)和参数对象(Map)中的两个email <br />地址。如果参数的mode属性设为INOUT或OUT,则参数对象的值被修改。否则保持不变。</div> <br /> <br /> <br />参数是自定义的type类型(EMP_SALARY_TAB): <br />CREATE OR REPLACE TYPE EMP_SALARY_REC AS OBJECT ( <br />EMP_ID NUMBER(5), <br />EMP_NAME VARCHAR2(255), <br />START_DATE DATE, <br />SALARY NUMBER <br />); <br />CREATE OR REPLACE Type EMP_SALARY_TAB AS TABLE OF EMP_SALARY_REC; <br /><br/><strong>问题补充</strong><br/><div class="quote_title">threejin520 写道</div><div class="quote_div">Ibatis访问存储过程的配置 zz&nbsp; 2009-10-30 16:35:48|&nbsp; 分类: Java |&nbsp; 标签: |字号大 <br />中 <br />小 订阅 <br /> <br />最近项目里经常需要配置用Ibatis访问存储过程(或函数),多次摸索,发现配置的难点是在于如何配置输入输出参数。现以访问Oracle的存储过程(或函数)举例说明。 <br /> <br />一般基本的配置要点如下: <br /> <br />(1)、访问存储过程(或函数)一般以procedure标签来定义statement。 <br /> <br />(2)、输入输出的参数需要用parameterMap标签单独定义。 <br /> <br />(3)、区分输入输出参数用parameter标签的mode属性来定义,分别为”OUT”和”IN”。 <br /> <br />按照是否有返回值,是否使用游标分类说明如下: <br /> <br />第一类,没有返回结果,有输出参数以out标识的过程访问配置样式: <br /> <br />&lt;parameterMap id=”functionPramsMap” class=”map”&gt; <br /> <br />&lt;parameter property=”p1″ jdbcType=”VARCHAR” javaType=”string” mode=”IN”/&gt; <br /> <br />&lt;parameter property=”p2″ jdbcType=”INTEGER” javaType=”int” mode=”IN”/&gt; <br /> <br />&lt;parameter property=”p3″ jdbcType=”INTEGER” javaType=”int” mode=”OUT” /&gt; <br /> <br />&lt;/parameterMap&gt; <br /> <br />&lt;procedure id=”statementId” parameterMap=”functionPramsMap”&gt; <br /> <br />{call packageName.functionName(?,?,?)} <br /> <br />&lt;/procedure&gt; <br /> <br />第二类,有返回结果,有输出参数以out标识的过程访问配置样式: <br /> <br />&lt;parameterMap id=”functionParamsMap” class=”map”&gt; <br /> <br />&lt;parameter property=”p0″ jdbcType=” INTEGER” javaType=”string” mode=”OUT”/&gt; <br /> <br />&lt;parameter property=”p1″ jdbcType=”VARCHAR” javaType=”string” mode=”IN”/&gt; <br /> <br />&lt;parameter property=”p2″ jdbcType=”INTEGER” javaType=”int” mode=”IN”/&gt; <br /> <br />&lt;parameter property=”p3″ jdbcType=”INTEGER” javaType=”int” mode=”OUT” /&gt; <br /> <br />&lt;/parameterMap&gt; <br /> <br />&lt;procedure id=”statementId” parameterMap=” functionParamsMap”&gt; <br /> <br />{?=call packageName.functionName(?,?,?)} <br /> <br />&lt;/procedure&gt; <br /> <br />这里参数p0标识调用过程的返回结果。 <br /> <br />第三类,有使用游标的的过程访问配置样式: <br /> <br />&lt;resultMap id=”resultMap” class=”package.ClassA”&gt; <br /> <br />&lt;result property=”property0″ column=”field0″ /&gt; <br /> <br />&lt;result property=”property1″ column=”field2″ /&gt; <br /> <br />&lt;result property=”property2″ column=”field3″ /&gt; <br /> <br />&lt;/resultMap&gt; <br /> <br />&lt;parameterMap id=”functionParamsMap” class=”map”&gt; <br /> <br />&lt;parameter property=”p0″ jdbcType=” INTEGER” javaType=”string” mode=”OUT”/&gt; <br /> <br />&lt;parameter property=”p1″ jdbcType=”VARCHAR” javaType=”string” mode=”IN”/&gt; <br /> <br />&lt;parameter property=”p2″ jdbcType=”INTEGER” javaType=”int” mode=”IN”/&gt; <br /> <br />&lt;parameter property=”p3″ jdbcType=”ORACLECURSOR” <br /> <br />javaType=”java.sql.ResultSet” mode=”OUT” resultMap=”resultMap” /&gt; <br /> <br />&lt;/parameterMap&gt; <br /> <br />&lt;procedure id=”statementId” parameterMap=”functionPramsMap”&gt; <br /> <br />{?=call packageName.functionName(?,?,?)} <br /> <br />&lt;/procedure&gt; <br /> <br />这里,关键注意的是p3参数,由于使用的是oracle数据库驱动,所以用jdbcType=”ORACLECURSOR”表示oracle游标,同时由于是游标,所以javaType=”java.sql.ResultSet”。最后必须要给参数p3配置好resultMap属性,以说明游标返回的结果集映射方式,不配置此属性,在代码里来访问结果集是不行的。此时,在Java代码里调用的样式如下: <br /> <br />HashMap&lt;String, Object&gt; params = new HashMap&lt;String, Object&gt;(); <br /> <br />params.put(”p1″, p1); <br /> <br />params.put(”p2″, p2); <br /> <br />sqlMapClient.queryForObject(”statementId”, params); <br /> <br />List&lt;ClassA&gt; list = (List&lt;ClassA&gt;) params.get(”p3″); <br /> <br />if (list != null &amp;&amp; list.size() &gt; 0) { <br /> <br />return userList.get(0); <br /> <br />} <br /> <br />return null; <br /> <br />第四类,有复杂的参数类型的存储过程: <br /> <br />(1)、对于BLOB或者CLOB,在POJO里的属性都定义为byte[]类型,iBatis配置里跟普通类型参数一样处理; <br /> <br />(2)、实现TypeHandler来自定义类型处理器用户处理复杂的字段; <br /> <br />(3)、对于数据库自定义的数据类型,首先要定义实现了java.sql.SQLData的类Class TypeA。实现getSQLTypeName方法,返回值为数据库的自定义类型名。配置文件里parameter标签的属性如:jdbcType=”TypeB” JavaType=”TypeA”,同时还要写TypeHandlerCallback用于处理jdbcType=”TypeB”的类型。 <br /></div> <br />我现在需要第四类的例子,如何构建ARRAY
一个关于ibatis的问题
向sql文里传一个字段id,当id为空或等于1时,才执行某段sql文。问题:当id为空或等于1,用ibatis怎么写
ibatis转换的一个问题
2016-10-15 17:18:39,162 ERROR (com.test.framework.progress.utils.ProgressUtils:126) - poolTaskExecutor 线程池:SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; --- The error occurred in com/test/framework/dao/ibatis2/ibatis.xml. --- The error occurred while applying a result map. --- Check the com.test.lol.code.sql.selectCodeInfoByCond-AutoResultMap. --- The error happened while setting a property on the result object. --- Cause: net.sf.cglib.beans.BulkBeanException: java.lang.String cannot be cast to java.lang.Long; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in com/test/framework/dao/ibatis2/ibatis.xml. --- The error occurred while applying a result map. --- Check the com.test.lol.code.sql.selectCodeInfoByCond-AutoResultMap. --- The error happened while setting a property on the result object. --- Cause: net.sf.cglib.beans.BulkBeanException: java.lang.String cannot be cast to java.lang.Long org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; --- The error occurred in com/test/framework/dao/ibatis2/ibatis.xml. --- The error occurred while applying a result map. --- Check the com.test.lol.code.sql.selectCodeInfoByCond-AutoResultMap. --- The error happened while setting a property on the result object. --- Cause: net.sf.cglib.beans.BulkBeanException: java.lang.String cannot be cast to java.lang.Long; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in com/test/framework/dao/ibatis2/ibatis.xml. --- The error occurred while applying a result map. --- Check the com.test.lol.code.sql.selectCodeInfoByCond-AutoResultMap. --- The error happened while setting a property on the result object. --- Cause: net.sf.cglib.beans.BulkBeanException: java.lang.String cannot be cast to java.lang.Long at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:203) at org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientTemplate.java:243) at com.test.framework.dao.ibatis2.Ibatis2SqlMapClientTemplate.query4VCommList(Ibatis2SqlMapClientTemplate.java:129) at com.test.framework.dao.ibatis2.Ibatis2SqlMapClientTemplate.queryForVCommList(Ibatis2SqlMapClientTemplate.java:225) at com.test.lol.code.service.CodeServiceImpl.selectCodeInfoByCond(CodeServiceImpl.java:2508) at com.test.lol.code.service.CodeServiceImpl$$FastClassByCGLIB$$740dee32.invoke(<generated>) at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149) at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.aop.aspectj.AspectJAfterAdvice.invoke(AspectJAfterAdvice.java:42) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:55) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) at com.test.lol.code.service.CodeServiceImpl$$EnhancerByCGLIB$$ab958bb2.selectCodeInfoByCond(<generated>) at com.test.lol.code.action.CodeAction.selectCodeInfoByCond(CodeAction.java:243) at com.test.lol.code.action.ExportallAction.category(ExportallAction.java:306) at com.test.lol.code.action.ExportallAction.exportyAll(ExportallAction.java:274) at com.test.lol.code.action.ExportallAction$1.execute(ExportallAction.java:221) at com.test.framework.progress.utils.ProgressUtils$2.run(ProgressUtils.java:124) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in com/test/framework/dao/ibatis2/ibatis.xml. --- The error occurred while applying a result map. --- Check the com.test.lol.code.sql.selectCodeInfoByCond-AutoResultMap. --- The error happened while setting a property on the result object. --- Cause: net.sf.cglib.beans.BulkBeanException: java.lang.String cannot be cast to java.lang.Long at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:204) at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForList(MappedStatement.java:139) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:567) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:541) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118) at com.test.framework.dao.ibatis2.Ibatis2SqlMapClientTemplate$1.doInSqlMapClient(Ibatis2SqlMapClientTemplate.java:131) at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:200) ... 26 more Caused by: net.sf.cglib.beans.BulkBeanException: java.lang.String cannot be cast to java.lang.Long at com.test.lol.code.valueobject.CodeInfo$$BulkBeanByCGLIB$$80c55f8f.setPropertyValues(<generated>) at com.ibatis.sqlmap.engine.accessplan.EnhancedPropertyAccessPlan.setProperties(EnhancedPropertyAccessPlan.java:33) at com.ibatis.sqlmap.engine.exchange.JavaBeanDataExchange.setData(JavaBeanDataExchange.java:112) at com.ibatis.sqlmap.engine.mapping.result.ResultMap.setResultObjectValues(ResultMap.java:371) at com.ibatis.sqlmap.engine.mapping.result.AutoResultMap.setResultObjectValues(AutoResultMap.java:54) at com.ibatis.sqlmap.engine.mapping.statement.RowHandlerCallback.handleResultObject(RowHandlerCallback.java:64) at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:385) at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:300) at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:189) at com.test.framework.dao.ibatis2.LimitSqlExecutor.executeQuery(LimitSqlExecutor.java:82) at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteQuery(MappedStatement.java:221) at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:189) ... 32 more Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long ... 44 more
一个关于iBatis的简单问题
论文的需要,第一次学习iBatis,但是一开始就出现了一个疑惑的问题,就是我在加载文件是出了错误: 代码如下: String resource = "testiBatis.xml"; Reader reader = Resources.getResourceAsReader(resource); sqlMaper = SqlMapClientBuilder.buildSqlMapClient(reader); reader.close(); 报的错误是: java.io.IOException: Could not find resource testiBatis.xml 但是testiBatis.xml文件就在工程的根目录呀,以前用Spring时也是这样用的,但是这里说找不到文件,就有些奇怪了, 并且,我还把它改为绝对路径还是有问题,请问是怎么回事呀? 非常谢谢! [b]问题补充:[/b] 回答“蔡华江”先生: 因为我现在做的只是系统的一部分进行分析,所以没有使用容器, 就是通过Spring完成业务处理,然后通过iBatis来进行数据处理, 请问,使用iBatis必须使用容器吗?
Ibatis typeHandler问题
在配置IbatiS 全局typeHandler时, 在<typeHandler javaType="java.lang.String" callback="com.mht.test.GenderTypeHandlerCallback" />中如果添加了jdbcType="java.sql.Clob" ,所写的转换类则无法执行,请问是什么原因?
Ibatis插入问题
才学Ibatis,DAO什么的都已经生成好了。如何才能插入数据或查询数据? 是在pulibc static void main(String args[])里实现吗 怎么我报Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 需要配置服务器吗?
ibatis传参数用#stuid#传不进去,用$stuid$就可以,大家看看为什么啊?
<typeAlias alias="product" type="com.cms.pojo.TBankproddata" /> <select id="getProd" parameterClass="java.util.Map" resultClass="product"> select stuid,stuname from student stuid = '$stuid$' </select> 这是sql语句,现在可以查询出来泛型的list,但是我换成#stuid#,就是空的,不报错,返回的list为空,郁闷啊,ibatis的包换了两个了,不知道是哪里的问题
关于ibatis异常一个问题
由于最近项目用的是ibatis,遇见这么一个问题,网上找了很多,也不得其法,希望那个大侠能仗义相助,不胜感激。。。。 出错是: SqlMapClient operation; SQL []; --- The error occurred in sqlmaps/MessageSQL.xml. --- The error occurred while applying a parameter map. --- Check the updateMessages-InlineParameterMap. --- Check the statement (update failed). --- Cause: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in sqlmaps/MessageSQL.xml. --- The error occurred while applying a parameter map. --- Check the updateMessages-InlineParameterMap. --- Check the statement (update failed). --- Cause: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction 调用代码: public void update(Long destUserId) { this.getSqlMapClientTemplate().update("updateMessages", destUserId); } sqlMap: <update id="updateMessages" parameterClass="java.lang.Long"> <![CDATA[ update app_message set msg_status=1 where dest_usrid=#destUserId# ]]> </update> 其中,msg_status是integer类型的,dest_usrid是long,而且,如果我在这个地方把语句换成:delete或者select语句,都能够跑起来~~~~也就是说运行到这个语句了,而且update语句单独提出来运行也没有错。 传入参数测试时,我把传入的参数写死,也还是出现这个问题,实在没招了~~~
ibatis事务管理问题,小白求知道
公司项目,分为前端用户客户端,后端平台管理端,分别是两个项目!但是后台连接的是同一个数据库,项目数据模型层使用的是ibatis!我的问题是,两个应用都有自己各自的事务管理。会不会发生幻读的情况!比如说,A读取了一个数据为100,B也读到了为100!然后A把数据减20再提交!B还是认为数据为100的情况继续操作后提交事务就会让数据失真!本人没有ibatis经验希望大虾们指教!
ibatis初级问题
本人刚开始学iBATIS 一个小例子有错误如下: --- The error occurred in employee.xml. --- The error occurred while applying a parameter map. --- Check the getEmployee-InlineParameterMap. --- Check the statement (query failed). --- Cause: java.sql.SQLException: ORA-00942: 表或视图不存在 表: create table EMPLOYEE ( EID NUMBER, NAME VARCHAR2(32), SALARY NUMBER, DEPTID VARCHAR2(32) ) employeex.xml : <sqlMap namespace="EMPLOYEE"> <select id="getEmployee" parameterClass="java.lang.Integer"> SELECT * FROM EMPLOYEE WHERE EID=#EID# </select> <insert id="insertEmployee" parameterClass="com.ibatis.dao.Employee"> INSERT INTO EMPLOYEE(EID, NAME, SALAY, DEPTID) VALUES (#eid#, #name#, #salary#, #deptid#) </insert> 主要代码: Employee employee= new Employee(); employee.setEid(15); employee.setName("oring"); employee.setSalary(1000); employee.setDeptid("0001"); SqlMapClient sqlMap = Myapp.getSqlMapInstance(); try{ Integer eid= new Integer(2); Employee employee2 = (Employee) sqlMap.queryForObject ("getEmployee", eid); catch(Exception e){ e.printStackTrace(); } }
JAVA ibatis的问题 在线急等
<select id="getfkzyqz" parameterClass="java.util.Map" remapResults="true" resultClass="java.util.HashMap"> select * from (select xsxkb.*, to_char(SUBSTR(xsxkb.XNXQ, 6, 4) - xxb.DQSZJ), to_char((SUBSTR(xsxkb.XNXQ, 6, 4) - xxb.DQSZJ) * (SUBSTR(xsxkb.XNXQ, 6, 4) - xxb.DQSZJ) * (xsxfyq.YQXF - nvl(xsxfyq.HDXF, 0) - nvl(xsxfyq.BXQWHDXF, 0) - nvl(XXQXKXF, 0))) as qz from $xsxkb$ xsxkb ,JWXT.XK_XSXFYQ xsxfyq , jwxt.xj_xxb xxb where xsxkb.xkzt = '0' and xsxkb.zt='1' and xsxkb.xh = xsxfyq.xh and xxb.xh = xsxkb.xh and xsxfyq.ZT =1 and xsxfyq.kcxz = (select jxrw.kcxz from jwxt.jw_jxrwb jxrw where jxrw.rwkey=#rwkey#) and xsxkb.rwkey = #rwkey# and ((xsxkb.nj in (select hbb.nj from jwxt.jw_hbb hbb where rwkey = #rwkey#) and (select xxb.zydm from jwxt.xj_xxb xxb where xxb.xh = xsxkb.xh) in (select hbb.zydm from jwxt.jw_hbb hbb where rwkey = #rwkey#)) or jwxt.xk_is_zykc(#rwkey#, xsxkb.xh, (select xxb.zydm from jwxt.xj_xxb xxb where xxb.xh = xsxkb.xh)) = 1 ) order by qz ) </select> 拿出来 --------------------sql map 如上 输出sql 是绝对可以查询出来的 报错如下 2015-07-02 10:26:43,315 [Thread-18] INFO - SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase] org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; --- The error occurred in sqlmap/common/JWXT_XJ_XXB_SqlMap.xml. --- The error occurred while applying a result map. --- Check the JWXT_XJ_XXB.getfkzyqz-AutoResultMap. --- Check the result mapping for the 'QZ' property. --- Cause: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'XNXQ,6,4)-XXB' in class 'java.lang.Object'; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in sqlmap/common/JWXT_XJ_XXB_SqlMap.xml. --- The error occurred while applying a result map. --- Check the JWXT_XJ_XXB.getfkzyqz-AutoResultMap. --- Check the result mapping for the 'QZ' property. --- Cause: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'XNXQ,6,4)-XXB' in class 'java.lang.Object' at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:196) at org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientTemplate.java:219) at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:266) at com.zk.dao.common.XjXxbDAOImpl.blxkbzyxsXxs(XjXxbDAOImpl.java:228) at com.zk.business.common.impl.CommonBusinessImpl$2.run(CommonBusinessImpl.java:1740) Caused by: com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in sqlmap/common/JWXT_XJ_XXB_SqlMap.xml. --- The error occurred while applying a result map. --- Check the JWXT_XJ_XXB.getfkzyqz-AutoResultMap. --- Check the result mapping for the 'QZ' property. --- Cause: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'XNXQ,6,4)-XXB' in class 'java.lang.Object' at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:188) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:123) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:615) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:589) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118) at org.springframework.orm.ibatis.SqlMapClientTemplate$3.doInSqlMapClient(SqlMapClientTemplate.java:268) at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:193) ... 4 more Caused by: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'XNXQ,6,4)-XXB' in class 'java.lang.Object' at com.ibatis.common.beans.ClassInfo.getSetterType(ClassInfo.java:273) at com.ibatis.common.beans.ComplexBeanProbe.getPropertyTypeForSetter(ComplexBeanProbe.java:91) at com.ibatis.common.beans.ComplexBeanProbe.setObject(ComplexBeanProbe.java:216) at com.ibatis.common.beans.GenericProbe.setObject(GenericProbe.java:90) at com.ibatis.sqlmap.engine.exchange.ComplexDataExchange.setData(ComplexDataExchange.java:87) at com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.setResultObjectValues(BasicResultMap.java:373) at com.ibatis.sqlmap.engine.mapping.statement.RowHandlerCallback.handleResultObject(RowHandlerCallback.java:64) at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:382) at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:301) at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:190) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(GeneralStatement.java:205) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:173) ... 10 more
请教关于ibatis的问题
ibatis里面要使用一对多关系映射时要在xml文件里面要怎么写啊?
iBatis 别名的问题
``` <sqlMap namespace="myqxcdgl"> <!-- 实体POJO --> <typeAlias alias="Account" type="com.pojo.common.Account"/> <!-- 查询所有权限 --> <select id="queryAccount" resultClass="Account"> SELECT * FROM TABLE </select> </sqlMap> ``` ``` ``` alias="Account" 这里的 Account 是指代com.pojo.common.Account 我想问 resultClass="Account" 中的 Account 是alias中定义的别名吗? 我把 alias="Account" 修改为别的别名 程序也是没有问题的
Ibatis缓存问题?
hibernate查询的时候,会先到缓存里查询,如果没有就去数据库理查,然后返回记录给程序,并填充缓存,第二次查询的时候就不用在去和数据库进行通讯了。直接从缓存里去。。 我想知道IBatis是不是也是这样的?
spring整合iBATIS配置问题
[b]各位专家,我在用myeclipse学习spring整合iBATIS的时候,当我在文件applicationContext.xml里设置,configLocationl的属性用于指向sqlMapConfig.xml文件时,如下: <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation"> <value>/WEB-INF/sqlMapConfig.xml</value> </property> <property name="dataSource"><ref local="dataSource"/></property> </bean> 无论如何书写 <value>Web-inf/sqlMapConfig.xml</value>, 控制台报错: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlMapClient' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/sqlMapConfig.xml] sqlMapConfig.xml文件如下 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <sqlMap url="file:///e:/workspace/jsf+richfaces/src/com/sqlMap.xml"/> </sqlMapConfig> 我把文件sqlMapConfig.xml和applicationContext.xml都放在WEB-INF目录下,到底问题出在哪呀,请各位专家指点
关于struts2 spring ibatis 结合问题
这2天 在学习IBATIS 准备写一个 struts hibernate ibatis 的例子出来 但是一直就没成功 我说一下我的配置步骤,请大家帮我指点一下我哪里错了 1.首先我在WEB.XML文件里 加入 STRUTS2的主控制器 <!-- struts2 主控制器 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 2.然后添加SPRING支持 <!-- 设置Spring框架配置文件路径 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:applicationContext*.xml </param-value> </context-param> <!-- 整合Spring框架 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 3.在classpath 下创建 applicationContext.xml 文件 文件内容如下 <?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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/test</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>root</value> </property> </bean> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation"> <value>classpath:SqlMapConfig.xml</value> </property> <property name="dataSource"> <ref local="dataSource" /> </property> </bean> <!-- 配置事务特性 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="find*" propagation="REQUIRED" read-only="true" /> <tx:method name="*" propagation="REQUIRED" /> </tx:attributes> </tx:advice> <!-- 配置那些类的方法进行事务管理 --> <aop:config> <aop:pointcut id="allManagerMethod" expression="execution(* org.fire.inoutstock.service.*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod" /> </aop:config> </beans> 然后在classpath下创建 sqlmapclient.xml文件 文件内容 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <sqlMap resource="sqlMap.T_User.xml" /> </sqlMapConfig> 我就这样搭建的, 然后跑的时候出错 错误信息如下 2009-6-30 12:36:33 org.apache.catalina.core.StandardContext listenerStart 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlMapClient' defined in file [D:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\test2\WEB-INF\classes\applicationContext-common.xml]: Invocation of init method failed; nested exception is com.ibatis.common.exception.NestedRuntimeException: Error occurred. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: java.io.IOException: Could not find resource sqlMap.T_User.xml at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1336) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:471) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:220) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:924) at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:887) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1147) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) 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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Caused by: com.ibatis.common.exception.NestedRuntimeException: Error occurred. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: java.io.IOException: Could not find resource sqlMap.T_User.xml at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:81) at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:62) at org.springframework.orm.ibatis.SqlMapClientFactoryBean.buildSqlMapClient(SqlMapClientFactoryBean.java:329) at org.springframework.orm.ibatis.SqlMapClientFactoryBean.afterPropertiesSet(SqlMapClientFactoryBean.java:280) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1367) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1333) ... 39 more Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: java.io.IOException: Could not find resource sqlMap.T_User.xml at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:53) at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:78) ... 44 more Caused by: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: java.io.IOException: Could not find resource sqlMap.T_User.xml Caused by: java.io.IOException: Could not find resource sqlMap.T_User.xml at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:114) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:75) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:93) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:63) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51) ... 45 more Caused by: java.io.IOException: Could not find resource sqlMap.T_User.xml at com.ibatis.common.resources.Resources.getResourceAsStream(Resources.java:101) at com.ibatis.common.resources.Resources.getResourceAsStream(Resources.java:86) at com.ibatis.common.resources.Resources.getResourceAsReader(Resources.java:150) at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$11.process(SqlMapConfigParser.java:336) at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:112) ... 49 more 2009-6-30 12:36:33 org.apache.catalina.core.StandardContext start 严重: Error listenerStart 2009-6-30 12:36:33 org.apache.catalina.core.StandardContext start 严重: Context [/test2] startup failed due to previous errors 2009-6-30 12:36:33 org.apache.catalina.core.ApplicationContext log 就这样我没成功 我导入的包有 ibatis-common-2.jar ibatis-sqlmap-2.jar ibatis-dao-2.jar 其他的包都和是STRUTS 和SPRING 还有其他的包了 请教大家帮我看看那里有问题 最好能总结一下 struts2 spring ibatis 搭建的步骤和相关的 JAR包 [b]问题补充:[/b] 还有一个问题。。。 就是ibatis 不能用spring 的aop来管理事物吗? 如果能的话要怎样来写?? <!-- 配置事务特性 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="find*" propagation="REQUIRED" read-only="true" /> <tx:method name="*" propagation="REQUIRED" /> </tx:attributes> </tx:advice> 提示创建txAdvice错误 错误信息 Error creating bean with name 'txAdvice': Cannot resolve reference to bean 'transactionManager' while setting bean property 'transactionManager'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'transactionManager' is defined 谢谢PURAS 刚才的回答。。
ibatis查询结果映射的问题
问题描述: 我使用的ibatis框架,现在有两个类,一个User一个Template,多对一的关系,即一个用户只能选择一个模板,一个模板可以被多个用户选择。 User.class [code="java"] public class User { private Long userId; private String email; private String username; private String password; private Template template; //getters and setters... } [/code] Template.class [code="java"] public class Template { private Long templateId; private String name; //getters and setters... } [/code] resultMap [code="xml"] <sqlMap namespace="Template"> <resultMap id="base" class="Template"> <result column="template_id" property="templateId" /> <result column="name" property="name" /> <result column="path" property="path" /> </resultMap> </sqlMap> <sqlMap namespace="User"> <resultMap id="base" class="User"> <result column="user_id" property="userId" /> <result column="email" property="email" /> <result column="username" property="username" /> <result column="password" property="password" /> <result property="template" resultMap="Template.base" /> </resultMap> <select id="loginByUsername" parameterClass="User" resultMap="base"> <![CDATA[ select user_id, template_id, email, username, password from user as u where u.password = #password# and u.username = #username# ]]> </select> </sqlMap> [/code] 如果是这样设置,运行loginByUsername会有以下异常: [code="java"] Exception in thread "main" com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in net/ing100/microblog/po/mapping/Template.xml. --- The error occurred while applying a result map. --- Check the Template.base. --- Check the result mapping for the 'name' property. --- Cause: com.ibatis.sqlmap.client.SqlMapException: Error getting nested result map values for 'template'. Cause: java.sql.SQLException: Column 'name' not found. at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:204) at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForObject(MappedStatement.java:120) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:518) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:493) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:82) at net.ing100.microblog.dao.impl.UserDAOImpl.loginByEmail(UserDAOImpl.java:12) at net.ing100.microblog.test.dao.TestUserDAO.main(TestUserDAO.java:32) Caused by: com.ibatis.sqlmap.client.SqlMapException: Error getting nested result map values for 'template'. Cause: java.sql.SQLException: Column 'name' not found. at com.ibatis.sqlmap.engine.mapping.result.ResultMap.setNestedResultMappingValue(ResultMap.java:467) at com.ibatis.sqlmap.engine.mapping.result.ResultMap.applyNestedResultMap(ResultMap.java:395) at com.ibatis.sqlmap.engine.mapping.result.ResultMap.setResultObjectValues(ResultMap.java:380) at com.ibatis.sqlmap.engine.mapping.statement.RowHandlerCallback.handleResultObject(RowHandlerCallback.java:64) at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:385) at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:300) at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:189) at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteQuery(MappedStatement.java:221) at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:189) ... 7 more Caused by: java.sql.SQLException: Column 'name' not found. at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1093) at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5488) at com.mchange.v2.c3p0.impl.NewProxyResultSet.getString(NewProxyResultSet.java:3342) at com.ibatis.sqlmap.engine.type.StringTypeHandler.getResult(StringTypeHandler.java:35) at com.ibatis.sqlmap.engine.mapping.result.ResultMap.getPrimitiveResultMappingValue(ResultMap.java:619) at com.ibatis.sqlmap.engine.mapping.result.ResultMap.getResults(ResultMap.java:345) at com.ibatis.sqlmap.engine.mapping.result.ResultMap.setNestedResultMappingValue(ResultMap.java:454) ... 15 more [/code] 请问像这种查询,template_id如何装配到template.templateId中去,并且不要出什么column'name'的异常?
ibatis插入或查询问题
数据库里有Account表,有username和password两个字段。ibatorConfig.xml文件如下所示。现在用Generate IBATIS Artifacts 生成文件。还需要编写一个什么样的类才能向数据库插入或查询数据?我的ibatis的版本是2.3.0.677 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ibatorConfiguration PUBLIC "-//Apache Software Foundation//DTD Apache iBATIS Ibator Configuration 1.0//EN" "http://ibatis.apache.org/dtd/ibator-config_1_0.dtd" > <ibatorConfiguration > <!-- 数据库驱动包地址 --> <classPathEntry location="E:\jar\mysql-connector-java-5.1.18-bin.jar" /> <ibatorContext id="context1" > <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.1.247:3306/stuDB" userId="remote" password="123456" /> <javaModelGenerator targetPackage="com.yz" targetProject="Testing" /> <sqlMapGenerator targetPackage="com.yz" targetProject="Testing" /> <daoGenerator targetPackage="com.yz" targetProject="Testing" type="SPRING" /> <table schema="stuDB" tableName="Account" > <property name="ignoreQualifiersAtRuntime" value="true" /> </table> </ibatorContext> </ibatorConfiguration>
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方...
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
如何防止抄袭PCB电路板
目录 1、抄板是什么 2、抄板是否属于侵权 3、如何防止抄板 1、抄板是什么 抄板也叫克隆或仿制,是对设计出来的PCB板进行反向技术研究;目前全新的定义:从狭义上来说,抄板仅指对电子产品电路板PCB文件的提取还原和利用文件进行电路板克隆的过程;从广义上来说,抄板不仅包括对电路板文件提取、电路板克隆、电路板仿制等技术过程,而且包括对电路板文件进行修改(即改板)、对电子产品外形模具进行三维...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问