文档章节

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

没有更多内容

加载失败,请刷新页面

加载更多

android -------- MVP+DataBinding 的使用

天来说说MVP+DataBinding 的使用 以一个登录案例来讲解 布局:(ConstraintLayout 作为根布局) <layout> <data> <variable name="onClick" ......

切切歆语
31分钟前
1
0
阿里十年Java架构经验总结,这几点尤为重要!

你有没有静下心来思考过:同样是做了x年Java开发,为什么你的技术比别人差很多?为什么别人每月28K你却只有10K? 其实技术水平的高低和个人智商关系不大(毕竟能做Java编程开发大家都不会差)...

别打我会飞
35分钟前
1
0
Ubuntu 中安装和配置 Caddy 服务

首先访问:https://caddyserver.com/download 选择操作系统、插件和授权类型,点击 Download 下载编译好的文件包,或者执行页面最下面的一键安装脚本,完成 caddy 的安装。 安装完成后,/us...

八风不动
50分钟前
2
0
java代码效率优化

1、 尽量指定类的final修饰符 带有final修饰符的类是不可派生的。 2、 尽量重用对象。 3、 尽量使用局部变量,调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较...

踏破铁鞋无觅处
今天
3
0
程序员的几款利器

1. 作为程序员,最希望的就是自己的代码能够在一个云平台上保留下来,gitlab等等这些很多。但是我这里推荐“码云平台”码云平台和开源中国可以直接关联起来。开源中国可以记录博客,当然也是...

ChinaHYF
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部