MyBatis基础

基本原理

将sql语句写入到xml文件中,为这个xml文件提供统一的接口来操作数据库

引入整合

  • 引入两个驱动包


    Paste_Image.png
  • 在bean.xml中注册sqlSessionFactory(相当于jdbc的connection)

   
   
     

其中typeAliasesPackage 为类型别名包目录
mapperLocations为sql语句映射xml文件目录

  • 注册sqlSessionTemplate

    

  • 注册dao父类bean和实现bean

    



  • model包下结构如下
MyBatis基础_第1张图片
Paste_Image.png
  • 编写Mapper.xml映射文件




  
    
        
        
        
    
    
    

其中select 中定义增删改查的语句
属性resultMap定义了返回map

实现

  • DAO要extendsSqlSessionDaoSupport
public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao{

    private static final String CLASS_NAME = User.class.getName();
    private static final String SQL_ID_USER_GET_USER_BY_NAME = ".getUserByName";

    @Override
    public User getUserByName(String userName) {
        return getSqlSession().selectOne(CLASS_NAME + SQL_ID_USER_GET_USER_BY_NAME, userName);
    }
}

其中CLASS_NAME对应mapper中的namespace
SQL_ID_USER_GET_USER_BY_NAME对应

动态条件定义

    
        
            
        
        
            
        
    

其中sql节点用来定义公用的sql语句
同样这段代码可以直接写进getQuestionCount

    

使用总结

如果是在function中传两个以上的参数,那么可以将参数拼接成一个map传到sql节点中
xml中接收参数类型为parameterType="map"
其中#会根据你参数的类型做处理
$不会,只会将你的值替换,所以当写入为字符串时记得加上单引号。所以尽量使用# 当使用like时可以使用$

你可能感兴趣的:(MyBatis基础)