Struts2,Spring,Ibatis向Oracle中插入数据时报错 本帖最后由 lidongfeng19861126 于 2010-01-18 22:26:35 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 感觉是你的配置问题,以下内容来自网络,仅供参考:http://blog.sina.com.cn/s/blog_6402bae90100gwax.html###配置Ibatis的两个关键配置SqlMapConfig映射文件和SqlMap映射文件。首先要配置的当然是SqlMapConfig文件:<?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> <!-- 唯一的Properties文件,加载数据库连接信息 --> <properties resource="mysql.properties"/> <!--配置和优化SqlMapClient实例的各选项,是可选的 <settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="false" /> --> <!-- 配置Ibatis事务管理,使用JDBC事务类型,数据源使用Simple类型 --> <transactionManager type="JDBC"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="${mysql.driver}"/> <property name="JDBC.ConnectionURL" value="${mysql.url}"/> <property name="JDBC.Username" value="${mysql.username}"/> <property name="JDBC.Password" value="${mysql.password}"/> </dataSource> </transactionManager> <!-- 配置Ibatis要使用的SqlMap文件信息 --> <sqlMap resource="com/jack/ibatis/pojo/map/person.xml"/> </sqlMapConfig> <?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> <!-- 唯一的Properties文件,加载数据库连接信息 --> <properties resource="mysql.properties"/><!--配置和优化SqlMapClient实例的各选项,是可选的<settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="false" />--> <!-- 配置Ibatis事务管理,使用JDBC事务类型,数据源使用Simple类型 --> <transactionManager type="JDBC"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="${mysql.driver}"/> <property name="JDBC.ConnectionURL" value="${mysql.url}"/> <property name="JDBC.Username" value="${mysql.username}"/> <property name="JDBC.Password" value="${mysql.password}"/> </dataSource> </transactionManager> <!-- 配置Ibatis要使用的SqlMap文件信息 --> <sqlMap resource="com/jack/ibatis/pojo/map/person.xml"/></sqlMapConfig> setting元素可以配置和优化SqlMapClient对象的各选项,因为本例只是简单的使用,所有并没有必要去配置。 现在配置SqlMap文件person.xml,此文件是专门针对您的POJO类进行配置的Java代码<?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="person" type="com.jack.ibatis.pojo.Person"/> <!-- 配置表和类之间的映射关系 --> <resultMap class="com.jack.ibatis.pojo.Person" id="personMap"> <result property="id" column="ID"/> <result property="username" column="U_NAME"/> <result property="password" column="U_PASSWORD"/> </resultMap> <!-- 添加用户 --> <insert id="insertPerson" parameterClass="person"> <!-- 配置Mysql主键自动增长 --> <selectKey keyProperty="id" resultClass="int"> SELECT LAST_INSERT_ID() as value </selectKey> <!-- 配置Oracle主键自动增长 <selectKey resultClass="int" keyProperty="id" type="pre"> <![CDATA[SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL]]> </selectKey>--> <!-- 配置MSServer主键自动增长 <selectKey resultClass="int" keyProperty="id"> <![CDATA[SELECT SCOPE_IDENTITY() AS ID ]]> </selectKey>--> <![CDATA[ INSERT PERSON(U_NAME,U_PASSWORD) VALUES(#username#,#password#) ]]> </insert> <!-- 查看特定用户 --> <select id="queryPersonById" parameterClass="int" resultMap="personMap"> <![CDATA[ SELECT * FROM PERSON WHERE ID=#id# ]]> </select> <!-- 查看所有的用户 --> <select id="queryAllPerson" resultMap="personMap"> <![CDATA[ SELECT * FROM PERSON ]]> </select> </sqlMap> <?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="person" type="com.jack.ibatis.pojo.Person"/> <!-- 配置表和类之间的映射关系 --> <resultMap class="com.jack.ibatis.pojo.Person" id="personMap"> <result property="id" column="ID"/> <result property="username" column="U_NAME"/> <result property="password" column="U_PASSWORD"/> </resultMap> <!-- 添加用户 --> <insert id="insertPerson" parameterClass="person"> <!-- 配置Mysql主键自动增长 --> <selectKey keyProperty="id" resultClass="int"> SELECT LAST_INSERT_ID() as value </selectKey> <!-- 配置Oracle主键自动增长 <selectKey resultClass="int" keyProperty="id" type="pre"> <![CDATA[SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL]]> </selectKey>--> <!-- 配置MSServer主键自动增长 <selectKey resultClass="int" keyProperty="id"> <![CDATA[SELECT SCOPE_IDENTITY() AS ID ]]> </selectKey>--> <![CDATA[ INSERT PERSON(U_NAME,U_PASSWORD) VALUES(#username#,#password#) ]]> </insert> <!-- 查看特定用户 --> <select id="queryPersonById" parameterClass="int" resultMap="personMap"> <![CDATA[ SELECT * FROM PERSON WHERE ID=#id# ]]> </select> <!-- 查看所有的用户 --> <select id="queryAllPerson" resultMap="personMap"> <![CDATA[ SELECT * FROM PERSON ]]> </select></sqlMap> OK,现在所有的配置都已经完成啦 求教控制台输入数据的编码问题 这道简单题求解释··· 输入一个2位数,怎么样将其个位和十位互换位置? 问一个小问题 请教 c++到java的类型转换问题! 怎样将数字金额转换成中外大写金额(java实现) 一个捆扰了很久的问题 如何在下载applet时显示下载进度条?比如:“请稍后,下载中。。。” 想把jbuilder7 enterprise trial在linux里安装。 哪有ias下载呢??除了borland的站点??? 为什么RandomAccessFile写文件时乱码 知道unicode如何能得到对应字符
http://blog.sina.com.cn/s/blog_6402bae90100gwax.html###
配置Ibatis的两个关键配置SqlMapConfig映射文件和SqlMap映射文件。
首先要配置的当然是SqlMapConfig文件:
<?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>
<!-- 唯一的Properties文件,加载数据库连接信息 -->
<properties resource="mysql.properties"/>
<!--配置和优化SqlMapClient实例的各选项,是可选的
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
errorTracingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false"
/>
-->
<!-- 配置Ibatis事务管理,使用JDBC事务类型,数据源使用Simple类型 -->
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${mysql.driver}"/>
<property name="JDBC.ConnectionURL" value="${mysql.url}"/>
<property name="JDBC.Username" value="${mysql.username}"/>
<property name="JDBC.Password" value="${mysql.password}"/>
</dataSource>
</transactionManager>
<!-- 配置Ibatis要使用的SqlMap文件信息 -->
<sqlMap resource="com/jack/ibatis/pojo/map/person.xml"/>
</sqlMapConfig>
<?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>
<!-- 唯一的Properties文件,加载数据库连接信息 -->
<properties resource="mysql.properties"/>
<!--配置和优化SqlMapClient实例的各选项,是可选的
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
errorTracingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false"
/>
-->
<!-- 配置Ibatis事务管理,使用JDBC事务类型,数据源使用Simple类型 -->
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${mysql.driver}"/>
<property name="JDBC.ConnectionURL" value="${mysql.url}"/>
<property name="JDBC.Username" value="${mysql.username}"/>
<property name="JDBC.Password" value="${mysql.password}"/>
</dataSource>
</transactionManager>
<!-- 配置Ibatis要使用的SqlMap文件信息 -->
<sqlMap resource="com/jack/ibatis/pojo/map/person.xml"/>
</sqlMapConfig>
setting元素可以配置和优化SqlMapClient对象的各选项,因为本例只是简单的使用,所有并没有必要去配置。
现在配置SqlMap文件person.xml,此文件是专门针对您的POJO类进行配置的
Java代码
<?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="person" type="com.jack.ibatis.pojo.Person"/>
<!-- 配置表和类之间的映射关系 -->
<resultMap class="com.jack.ibatis.pojo.Person" id="personMap">
<result property="id" column="ID"/>
<result property="username" column="U_NAME"/>
<result property="password" column="U_PASSWORD"/>
</resultMap>
<!-- 添加用户 -->
<insert id="insertPerson" parameterClass="person">
<!-- 配置Mysql主键自动增长 -->
<selectKey keyProperty="id" resultClass="int">
SELECT LAST_INSERT_ID() as value
</selectKey>
<!-- 配置Oracle主键自动增长
<selectKey resultClass="int" keyProperty="id" type="pre">
<![CDATA[SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL]]>
</selectKey>-->
<!-- 配置MSServer主键自动增长
<selectKey resultClass="int" keyProperty="id">
<![CDATA[SELECT SCOPE_IDENTITY() AS ID ]]>
</selectKey>-->
<![CDATA[
INSERT PERSON(U_NAME,U_PASSWORD) VALUES(#username#,#password#)
]]>
</insert>
<!-- 查看特定用户 -->
<select id="queryPersonById" parameterClass="int" resultMap="personMap">
<![CDATA[
SELECT * FROM PERSON WHERE ID=#id#
]]>
</select>
<!-- 查看所有的用户 -->
<select id="queryAllPerson" resultMap="personMap">
<![CDATA[
SELECT * FROM PERSON
]]>
</select>
</sqlMap>
<?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="person" type="com.jack.ibatis.pojo.Person"/>
<!-- 配置表和类之间的映射关系 -->
<resultMap class="com.jack.ibatis.pojo.Person" id="personMap">
<result property="id" column="ID"/>
<result property="username" column="U_NAME"/>
<result property="password" column="U_PASSWORD"/>
</resultMap>
<!-- 添加用户 -->
<insert id="insertPerson" parameterClass="person">
<!-- 配置Mysql主键自动增长 -->
<selectKey keyProperty="id" resultClass="int">
SELECT LAST_INSERT_ID() as value
</selectKey>
<!-- 配置Oracle主键自动增长
<selectKey resultClass="int" keyProperty="id" type="pre">
<![CDATA[SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL]]>
</selectKey>-->
<!-- 配置MSServer主键自动增长
<selectKey resultClass="int" keyProperty="id">
<![CDATA[SELECT SCOPE_IDENTITY() AS ID ]]>
</selectKey>-->
<![CDATA[
INSERT PERSON(U_NAME,U_PASSWORD) VALUES(#username#,#password#)
]]>
</insert>
<!-- 查看特定用户 -->
<select id="queryPersonById" parameterClass="int" resultMap="personMap">
<![CDATA[
SELECT * FROM PERSON WHERE ID=#id#
]]>
</select>
<!-- 查看所有的用户 -->
<select id="queryAllPerson" resultMap="personMap">
<![CDATA[
SELECT * FROM PERSON
]]>
</select>
</sqlMap>
OK,现在所有的配置都已经完成啦