还在学习使用Eclipse和iBATIS ing。。。
因为加载的iBATIS包是别人传的,不清楚是否完整的,但是可以实现数据库的查询操作,但是在实现INSERT上出问题了:
SQLMap中:
INSERT INTO sone(name, phonenumber)
VALUES(#name:VARCHAR#, #phonenumber:VARCHAR#)
Dao中:
public static Sone insertSone(String code) throws SQLException
{
return (Sone) client.insert("insertSoneByCode", code);
}
求教该如何实现。。。
ps:没有设主键,只要求能正确插入一组数据(xinka,010-1010-1010)...
resultClass="Sone" 这个是啥,你的插入数据,怎么会还会返回一个Sone 对象出去了。、
code 如果在sql配置中没有指定名字,请用 #value:VARCHAR#
如果要实现楼主的插入:
[code="java"]
INSERT INTO sone(name, phonenumber)
VALUES(#name:VARCHAR#, #phonenumber:VARCHAR#)
Dao中:
public static Sone insertSone(String code) throws SQLException
{
//这里最少也得是一个map进去,或者实体对象进去。
Map param = new HashMap();
param.put("name", "xinka");
param.put("phonenumber", "010-1010-1010");
//xinka,010-1010-1010
return (Sone) client.insert("insertSoneByCode", param);
}
[/code]
<![CDATA[
INSERT INTO storage (name,type,date,content) VALUES (#name#,#type#, #date#,#content#)
]]>
把相应的字段对应着改下 看Ok 不 不行M 我
有报错信息吗
跟你用main 还是用容器没有什么关系,关键你要知道。
[code="java"]
INSERT INTO sone(name, phonenumber)
VALUES(#name:VARCHAR#, #phonenumber:VARCHAR#)
// 这部分就是我在SQL Map中想要实现INSERT操作的代码
你要理解 parameterClass 是什么意思。resultClass是什么意思。
还用就是
return (Sone) client.insert("insertSoneByCode", param);
这insert 返回什么。
[/code]
你知道是什么意思,那我问你几个问题:
第一个:name 和 phonenumber 那里来的,你只有一个 parameterClass="java.lang.String"
[code="java"]
INSERT INTO sone(name, phonenumber)
VALUES(#name:VARCHAR#, #phonenumber:VARCHAR#)
这部分就是我在SQL Map中想要实现INSERT操作的代码
[/code]
第二个 : 你这个sql 语句怎么返回这个resultClass="Sone"
[code="java"]
INSERT INTO sone(name, phonenumber)
VALUES(#name:VARCHAR#, #phonenumber:VARCHAR#)
这部分就是我在SQL Map中想要实现INSERT操作的代码
[/code]
sql的CRUD,每一步都是单独完成的。
你要实现insert 那就是insert,所以你的return sone没什么意义。
而你要实现插入后返回 插入完成的结果的话 那就需要在另行执行一次查询。
在你的sqlmap中resultClass="Sone"是没有任何意义的。
你的代码:
INSERT INTO sone(name, phonenumber)
VALUES(#name:VARCHAR#, #phonenumber:VARCHAR#)
public static Sone insertSone(String code) throws SQLException
{
return (Sone) client.insert("insertSoneByCode", code);
}
你的方法指定了一个为String类型的code参数,而sql中却是要对两个字段进行操作,参数不匹配报错;而且ibatis不能解析你的name和phonenumber是从哪里来的。
多参数可参考用数组形式。