文档章节

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
深圳
程序员
私信 提问
spring boot(六):如何优雅的使用mybatis

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

纯洁的虫纸
2016/11/07
0
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
如何优雅的使用 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

没有更多内容

加载失败,请刷新页面

加载更多

混合模型---logistic模型的混合

专家混合

中国龙-扬科
6分钟前
1
0
自定义参数校验注解 (实现ConstraintValidator方法)

Hibernate Validator常用注解(图网上找的) 2.自定义校验器 a.注解类 @Target({FIELD, METHOD, PARAMETER, ANNOTATION_TYPE})@Retention(RUNTIME)@Documented@Constraint(validatedB......

INSISTQIAO
9分钟前
1
0
Integer 实现

Integer 封装类型,参数传递传的是值,不是引用 内带缓存,-128 到127 -128 到127 直接数值 IntegerCache 如果不在这个范围,才会new Integer () public static Integer valueOf(int ...

Java搬砖工程师
10分钟前
1
0
数字IT基础-数据采集总线

数字化运营基础 在如今“双十一”不再是线上活动的代名词,而逐步变为一场线上线下同时进行的消费者盛宴。销售、运营、物流、生产商等都在开足马力在各大渠道备战,据统计: 消费者在期间被平...

阿里云官方博客
17分钟前
0
0
三次握手四次挥手

背景 和女朋友异地恋,为了保持感情我提议每天晚上视频聊天一次。 从好上开始,到现在,一年多也算坚持下来了。 问题: 有时候聊天的过程中,我的网络或者她的网络可能会不好,视频就会卡住,...

瑞查德-Jack
21分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部