MyBatis的parameterMap问题

空白-键 2011-11-12 03:21:30
我刚接触Mybatis,自己写了个例子测试,因为数据库字段跟实体类字段不一样,所以用了parameterMap和resultMap,但是在insert的时候,数据没有插入
配置文件如下


<resultMap id="studentResultMap" type="student">
<id property="id" column="F_ID" />
<result property="name" column="F_NAME" />
</resultMap>

<parameterMap id="studentParameterMap" type="student">
<parameter property="id" resultMap="F_ID"/>
<parameter property="name" resultMap="F_NAME"/>
</parameterMap>

<select id="selectAllStudent" resultMap="studentResultMap">
<![CDATA[
select * from A_TEMP_STUDENT
]]>
</select>

<insert id="insertStudent" parameterMap="studentParameterMap">
<![CDATA[
insert into A_TEMP_STUDENT (f_id, f_name) values (#{id}, #{name})
]]>
</insert>


java代码:


/* (non-Javadoc)
* @see com.lmiky.database.BaseDAO#list()
*/
@SuppressWarnings("unchecked")
public List<T> list() {
SqlSession session = openSession(getSqlMapper());
List<T> students = session.selectList("com.lmiky.student.selectAllStudent");
closeSession(session);
return students;
}

/* (non-Javadoc)
* @see com.lmiky.database.BaseDAO#add(com.lmiky.database.pojo.BasePojo)
*/
public T add(T t) {
SqlSession session = openSession(getSqlMapper());
session.insert("insertStudent", t);
closeSession(session);
return t;
}

public static void main(String[] args) {
StudentDAO<Student> studentDAO = new StudentDAOImpl<Student>();

//添加
Student student = new Student();
student.setId(101l);
student.setName("test101");
studentDAO.add(student);

//查询
List<Student> students = new StudentDAOImpl<Student>().list();
for(Student s : students) {
System.out.println(s);
}

}


查询没问题,就是插入数据插不进去,也没报错,Mybatis官方文档实在是介绍太简单了,竟然也没提到parameterMap。
google上输入mybatis,查询出来的都是ibatis,是不是现在没什么人用mybatis,都还在用ibatis
...全文
14602 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
liyonghui123 2014-03-21
  • 打赏
  • 举报
回复
引用 6 楼 linminqin 的回复:
主要原因是我java代码里session没有commit 配置文件的parameterMap="studentParameterMap"改为parameterType="student"
这么做根本就是不对 insert into A_TEMP_STUDENT (f_id, f_name) values (?, ?) 这样才对
GlyphVectory 2013-09-08
  • 打赏
  • 举报
回复
其实你说的你把parameterMap改成了parameterType
是可以。
但是在你的学习生涯中就会缺少一笔,你对parameterMap没有用过。
其实:你写的都是正确的,你看看是不是哪里空格问题。
我是可以的,2种type,map
maifute 2011-11-22
  • 打赏
  • 举报
回复
没有提交事务~openSession(true)或者session.commit()~
kouyiSC 2011-11-13
  • 打赏
  • 举报
回复
主要原因周末。。人少。。更重要原因是昨天我没有看到你的帖子。。。。
空白-键 2011-11-13
  • 打赏
  • 举报
回复
主要原因是我java代码里session没有commit
配置文件的parameterMap="studentParameterMap"改为parameterType="student"
coooliang 2011-11-13
  • 打赏
  • 举报
回复
你是如何解决的
空白-键 2011-11-12
  • 打赏
  • 举报
回复
等会儿就结贴
空白-键 2011-11-12
  • 打赏
  • 举报
回复
总算有人来了,对CSDN快绝望了,我自己解决了,不是parameterMap问题
iioioioioioio 2011-11-12
  • 打赏
  • 举报
回复
insert into A_TEMP_STUDENT (f_id, f_name) values (?, ?)
或者是 <parameter property="id" resultMap="F_ID"/>加上jdbcType看看
空白-键 2011-11-12
  • 打赏
  • 举报
回复
哎,为什么最近问得问题都没人回答

67,514

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧