一个UserMapper
<mapper namespace="example.dao.UserMapper">
<resultMap type="User" id="usermap">
<result column="name" property="name" typeHandler="example.dao.typehandler.SimpleTypeHandler"/>
</resultMap>
<select id="findById" parameterType="HashMap" resultType="User" resultMap="usermap">
select * from test.T_User where id=#{id}
</select>
<!--
<select id="findByName" parameterType="HashMap" resultType="User">
select * from test.T_User where name=#{name}
</select>
-->
<insert id="addUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
insert into T_User (name,sex,age) values(#{name},#{sex},#{age})
</insert>
</mapper>
测试代码:
package example;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import example.dao.UserMapper;
import example.model.User;
public class SimpleBatis {
public static void main(String[] args) throws Exception {
String resource = "mybatis-config.xml";
InputStream in = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlfactory = new SqlSessionFactoryBuilder().build(in);
SqlSession session = sqlfactory.openSession(true);
try {
UserMapper mapper = session.getMapper(UserMapper.class);
User user = null;
user = new User();
user.setName("terry");
user.setSex((byte)1);
user.setAge(30);
mapper.addUser(user);
Thread.sleep(20000);
new User();
user.setName("marry");
user.setSex((byte)0);
user.setAge(26);
mapper.addUser(user);
user = mapper.findByName("terry");
System.out.println(user.getId()+"-"+user.getName()+", sex:"+user.getSex()+", age:"+user.getAge());
} finally {
// session.commit();
session.close();
}
}
}
1. sqlfactory.openSession()缺省是不会自动提交的,即使finally调用了session.close。上面insert的记录也不会出现在数据库中。需要自己调用session.commit()来提交修改。要打开autocommit可以使用openSession(true)
2. mapper.findByName根据mapper的配置是只能返回单一记录,等同于调用了session.selectOne(...),若数据库中出现多条name=terry的记录,上面的代码会报异常。
分享到:
相关推荐
NULL 博文链接:https://yiyiboy2010.iteye.com/blog/1455392
SpringMVC-MyBatis学习笔记
mybatis学习笔记
MyBatis学习笔记
mybatis学习笔记 mybatis学习笔记 mybatis学习笔记 mybatis学习笔记 mybatis学习笔记 mybatis学习笔记
MyBatis学习笔记.zip
Mybatis学习笔记(狂神).md
1、Mybatis的介绍 2、Mybatis的入门 a)使用jdbc操作数据库存在的问题 b)Mybatis的架构 c)Mybatis的入门程序 3、Dao的开发方法 a)原始dao的开发方法 b)接口的动态代理方式 SqlMapConfig.xml文件说 2.Mybatis介绍 ...
自己总结的MyBatis-Plus 学习笔记
个人mybatis学习笔记,是个人学习后记录所得,记录内容仅供参考,如如果有什么不对的地方,欢迎指正。
mybatis学习笔记代码
Mybatis学习笔记整理,全面详实,通俗易懂.md
自己整理的Mybatis学习笔记,希望可以帮助大家
在大学期间学习Mybatis做的笔记,共有11个word,对应每个章节,从简介到缓存机制,条理清晰,重点我自己都用彩字标注。能够有效帮助初学者快速理解和掌握Mybatis。内置完整学习pdf。
java orm mybatis 数据库
马士兵老师mybatis相关学习笔记
狂神说Java——Mybatis学习笔记