`
cnflat
  • 浏览: 13601 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

mybatis学习笔记1

    博客分类:
  • JAVA
阅读更多
一个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的记录,上面的代码会报异常。
分享到:
评论

相关推荐

    MyBatis学习笔记1

    【标题】"MyBatis学习笔记1" 涉及的知识点主要集中在MyBatis这一流行的持久层框架上。MyBatis是一个优秀的Java ORM(对象关系映射)框架,它允许开发者将SQL查询与Java代码分离,使得数据库操作更加灵活且易于维护。...

    MyBatis学习笔记.zip

    在mybatis学习笔记1.docx中,我们可能涵盖了以下几个关键知识点: 1. **MyBatis简介**:首先会介绍MyBatis的起源、特点以及它在Java开发中的地位。MyBatis以其轻量级、灵活性和强大的映射功能深受开发者喜爱。 2. ...

    mybatis学习笔记

    这篇“mybatis 学习笔记”将带你深入理解 MyBatis 的核心概念和主要功能。 1. **MyBatis 概述**: MyBatis 是一个轻量级的 Java ORM(对象关系映射)框架,它的核心是 SQL 映射文件和 SqlSessionFactory。ORM 技术...

    Mybatis.md学习笔记

    mybatis学习笔记 mybatis学习笔记 mybatis学习笔记 mybatis学习笔记 mybatis学习笔记 mybatis学习笔记

    Mybatis学习笔记(狂神).md

    Mybatis学习笔记(狂神).md

    Mybatis学习笔记整合架构

    1、Mybatis的介绍 2、Mybatis的入门 a)使用jdbc操作数据库存在的问题 b)Mybatis的架构 c)Mybatis的入门程序 3、Dao的开发方法 a)原始dao的开发方法 b)接口的动态代理方式 SqlMapConfig.xml文件说 2.Mybatis介绍 ...

    MyBatis-Plus 学习笔记.pdf

    MyBatis-Plus 学习笔记 MyBatis-Plus 是一个基于 MyBatis 的增强工具,旨在简化开发、提高效率。它提供了许多实用的特性和功能,例如无侵入、损耗小、强大的 CRUD 操作、支持 Lambda 形式调用、支持多种数据库、...

    mybatis学习笔记.md

    个人mybatis学习笔记,是个人学习后记录所得,记录内容仅供参考,如如果有什么不对的地方,欢迎指正。

    Mybatis学习笔记+学习源码.zip

    在本学习资源中,你将找到一份详尽的Mybatis学习笔记和源码,这将极大地助力你的学习过程,尤其是对自学者而言。这份笔记被认为是非常有价值且深入的,作者在其中倾注了大量的精力,确保了内容的全面性和实用性。 ...

    Mybatis学习笔记

    本学习笔记是作者在大学期间深入学习Mybatis后的整理,旨在帮助初学者快速入门并掌握其核心概念与功能。 笔记共分为11个章节,涵盖Mybatis的基础到高级应用,以下是主要知识点的详细讲解: 1. **Mybatis简介**:...

    MyBatis学习笔记

    个人学习myBatis持久层框架时记录的MyBatis学习笔记,供参考

    Mybatis学习笔记整理,全面详实,通俗易懂.md

    Mybatis学习笔记整理,全面详实,通俗易懂.md

    马士兵 mybatis学习笔记

    马士兵老师的MyBatis学习笔记主要涵盖了以下几个核心知识点: 1. **MyBatis安装与环境搭建**:首先,你需要配置Java开发环境,并了解Maven或Gradle构建工具,因为MyBatis通常与这些工具结合使用来管理依赖。然后,...

Global site tag (gtag.js) - Google Analytics