文档章节

MyBatis之灵活编程模式

ws199358
 ws199358
发布于 2017/02/15 16:49
字数 375
阅读 23
收藏 0

一、面向接口编程

在MyBatis中,Mapper中的namespace用于绑定Dao接口的,即面向接口编程。

它的好处在于当使用了namespace之后就可以不用写接口实现类,业务逻辑会直接通过这个绑定寻找到相对应的SQL语句进行对应的数据处理。

<mapper namespace="com.domain.StudentMapper">    
  
    <select id="selectById" parameterType="int" resultType="student">    
       select * from student where id=#{id}    
    </select>  
       
</mapper>
public interface StudentMapper {
   public Student selectById(int id);
}

调用方法时,直接用接口.方法名

public Test{
@Autowired
StudentMapper studentMapper ;

public void test01(){

Student student = studentMapper.selectById(1);

      }
}

使用 Mapper 接口调用必须具备以下条件:

  1. Mapper 接口方法名 和 studentMapper.xml 中定义的每个 sql 的 id 同名。

  2. Mapper 接口方法的输入参数类型和studentMapper.xml 中定义的 sql parameterType 类型相同。

  3. Mapper 接口的输出参数类型和 studentMapper.xml 中 定义的 sql 的 resultType 类型相同。

  4. studentMapper.xml 文件中的 namespace 即是 Mapper 接口的类路径

二、面向对象编程

public interface UserDao {

	//根据Id查询用户信息
	public User findUserById(int userId) throws Exception;
	
}


public class UserDaoImpl implements UserDao {
   //通过spring将 SqlSessionFactory 注入
	private SqlSessionFactory sqlSessionFactory;
	
	
	@Override
	public User findUserById(int userId) throws Exception {
		SqlSession sqlSession = null;
		User user = null;
		try {
			//通过SqlSessionFactory获取SqlSession
			sqlSession = sqlSessionFactory.openSession();
			
			//使用session操作数据库
			//selectOne第一个参数:指定sql的id(statement id),注意带上namespace;第二个参数:向sql中传的参数值
			user = sqlSession.selectOne("com.domain.StudentMapper.selectById", userId);
			
			System.out.println(user);
		} catch (Exception e) {
			// TODO: handle exception
		} finally {
			if (sqlSession != null) {
				sqlSession.close();
			}
		}
		
		return user;
	}

	
	}
}

 

© 著作权归作者所有

共有 人打赏支持
ws199358
粉丝 6
博文 21
码字总数 17855
作品 0
深圳
程序员
springboot:如何优雅的使用mybatis

这两天启动了一个新项目因为项目组成员一直都使用的是mybatis,虽然个人比较喜欢jpa这种极简的模式,但是为了项目保持统一性技术选型还是定了 mybatis。到网上找了一下关于spring boot和myb...

Victor_Cindy1
2017/12/13
0
0
springboot(六):如何优雅的使用mybatis

这两天启动了一个新项目因为项目组成员一直都使用的是mybatis,虽然个人比较喜欢jpa这种极简的模式,但是为了项目保持统一性技术选型还是定了 mybatis。到网上找了一下关于spring boot和myb...

ityouknow
2016/11/07
0
0
spring boot(六):如何优雅的使用mybatis

这两天启动了一个新项目因为项目组成员一直都使用的是mybatis,虽然个人比较喜欢jpa这种极简的模式,但是为了项目保持统一性技术选型还是定了 mybatis。到网上找了一下关于spring boot和myb...

纯洁的虫纸
2016/11/07
0
0
如何优雅的使用 mybatis

这两天启动了一个新项目因为项目组成员一直都使用的是mybatis,虽然个人比较喜欢jpa这种极简的模式,但是为了项目保持统一性技术选型还是定了 mybatis。到网上找了一下关于spring boot和myb...

楠木楠
2016/11/22
1K
3
springboot(六):如何优雅的使用mybatis

这两天启动了一个新项目因为项目组成员一直都使用的是mybatis,虽然个人比较喜欢jpa这种极简的模式,但是为了项目保持统一性技术选型还是定了 mybatis。到网上找了一下关于spring boot和myb...

纯洁的微笑
2016/11/07
5.7K
41

没有更多内容

加载失败,请刷新页面

加载更多

下一页

windbg学习记录

我开始熟练使用windbg是从帮助手册开始的,也就是.hh命令。 就像学习windows开发从msdn开始一样,微软的产品虽然不开源,但是文档做的是相当的好。然而那些开源的东西呢?开源的竞争力其实就...

simpower
5分钟前
0
0
学习scala的网站汇总

https://www.codacy.com/blog/how-to-learn-scala/

Littlebox
7分钟前
0
0
配置本地的cloud9开发环境

前言 说到(前端)在线IDE开发环境,cloud9是不能绕过的,cloud9支持很多语言,默认支持的就有Node.js,Python,Ruby,PHP,Go,更逆天的是,他还支持数据库,包括MySQL,MongoDB,Redis,S...

Kefy
10分钟前
0
0
springcloud应用程序上下文层次结构

如果您从SpringApplication或SpringApplicationBuilder构建应用程序上下文,则将Bootstrap上下文添加为该上下文的父级。这是一个Spring的功能,即子上下文从其父进程继承属性源和配置文件,因...

itcloud
15分钟前
0
0
新程序员最爱的免费资源

简评:国外美女程序员推荐了她自己用过的一些免费资源,对新手比较友好的那种。 原作者 Ali Spittel,是个美女程序员,以下这些资源都是她自己试过的。以下「我」代表 Ali Spittel。 学 HTML...

极光推送
18分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部