2 写配置文件org.mybatis mybatis 3.4.6 org.postgresql postgresql 42.2.17 compile
mybatis-config.xml 内容
== 注意:
1. mappers -mapper 里面resource里面的属性路径是用 / ,不是逗号
2. 写数据库url时,如果用&报错,则用 & 转义一下==
== 注意命名规范 ==
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; } }



