栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

单独使用MyBatis教程以及可能会遇到的问题(详细)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

单独使用MyBatis教程以及可能会遇到的问题(详细)

1 导入依赖

    org.mybatis
    mybatis
    3.4.6



  org.postgresql
    postgresql
    42.2.17
    compile

2 写配置文件

mybatis-config.xml 内容




    
        
        
    
    
        
        
    
    
        
        
        
    
    
        
            
            
                
                
                
                
            
        
    
    
        
    

== 注意:
1. mappers -mapper 里面resource里面的属性路径是用 / ,不是逗号
2. 写数据库url时,如果用&报错,则用 & 转义一下==

3 写mapper以及xml 3.1 写mapper接口

3.2 写mapper.xml

== 注意命名规范 ==

4 编写启动类 4.1 启动测试类
import com.xxx.xxx.db.dao.entity.WmHandleTaskInfo;
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 org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;


public class TestWmHandleTaskInfoMapper {
   SqlSessionFactory sqlSessionFactory;

   @Before
   public void bulidSqlSessionFactory() {
       String resource = "mybatis-config.xml"; // 配置文件的路径
       InputStream inputStream = null;
       try {
           inputStream = Resources.getResourceAsStream(resource);
       } catch (IOException e) {
           e.printStackTrace();
       }
       sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
   }

   @Test
   public void selectList() {
       SqlSession sqlSession = sqlSessionFactory.openSession();
       WmHandleTaskInfoMapper userinfoMapper = sqlSession.getMapper(WmHandleTaskInfoMapper.class);
       List result = userinfoMapper.selectList(68);
       System.out.println(result);
       sqlSession.close();
   }
}
4.2 结果展示

5 可能遇到的问题 5.1 如果xml完整但运行时报错无法绑定xxxx, 可能是xml没有加载的target中去,此时在pom中加配置:

错误信息:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):


    
        ${project.build.directory}/classes
        src/main/resources
        true
        
            *.xml
            

    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, JSONObject parameter, JdbcType jdbcType) throws SQLException {
        PGobject jsonObject = new PGobject();
        jsonObject.setType("jsonb");
        jsonObject.setValue(parameter.toString());
        ps.setObject(i, jsonObject);
    }

    @Override
    public JSONObject getNullableResult(ResultSet rs, String columnName) throws SQLException {
        String sqlJson = rs.getString(columnName);
        if(null != sqlJson) {
            return JSONObject.parseObject(sqlJson);
        }
        return null;
    }

    @Override
    public JSONObject getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
        String sqlJson = rs.getString(columnIndex);
        if (null != sqlJson){
            return JSONObject.parseObject(sqlJson);
        }
        return null;
    }

    @Override
    public JSONObject getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
        String sqlJson = cs.getString(columnIndex);
        if (null != sqlJson){
            return JSONObject.parseObject(sqlJson);
        }
        return null;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/298656.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号