El_cuervo 2017-10-22 14:02 采纳率: 0%
浏览 6961

关于JAVA中使用mybatis连接数据库使用查询功能时报错PersistenceException

这是mybatis-config.xml文件中的代码

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
  <configuration>


  <typeAliases>
    <typeAlias alias="Customer" type="com.briup.estore.bean.Customer" />

  </typeAliases>


    <environments default="development">
        <environment id="development">
        <transactionManager type="JDBC" />
        <dataSource type="POOLED">
            <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
            <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:XE"/>
            <property name="username" value="briup"/>
            <property name="password" value="briup"/>

        </dataSource>
        </environment>
    </environments>
    <mappers>

         <mapper resource="com/briup/estore/dao/CustomerMapper.xml"/>
        <!-- <mapper class="com.briup.estore.dao.ICustomerDao"></mapper>
         -->


    </mappers>
  </configuration> 

这是CustomerMapper.xml中的代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.briup.estore.dao.ICustomerDao">

    <insert id="saveCustomer" parameterType="Customer">
        <selectKey keyProperty="id" resultType="long" order="BEFORE">
            SELECT MY_SEQ.NEXTVAL 
            FROM DUAL
        </selectKey> 
        INSERT INTO TBL_CUSTOMER
        VALUES(#{id},#{name},#{password})
    </insert>
    <select id="findByName" parameterType="String" resultType="Customer">
        <!-- SELECT ID,NAME,PASSWORD,ZIP,ADDRESS,TELEPHONE,EMAIL
        FROM TBL_CUSTOMER
        WHERE
        NAME=#{name} -->
        select * from tbl_customer
        where name=#{name}
    </select>
</mapper>

这是测试类

 public static void main(String[] args) throws IOException {
        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
        SqlSession sqlSession = sqlSessionFactory.openSession();

        ICustomerDao mapper = sqlSession.getMapper(ICustomerDao.class);
        Customer name = mapper.findByName("tom");
        String telephone = name.getTelephone();
        System.out.println(telephone);

    }

这是报出的异常

 Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.NullPointerException
### The error may exist in com/briup/estore/dao/CustomerMapper.xml
### The error may involve com.briup.estore.dao.ICustomerDao.findByName
### The error occurred while executing a query
### Cause: java.lang.NullPointerException
    at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:122)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:113)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:73)
    at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:69)
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:53)
    at com.sun.proxy.$Proxy0.findByName(Unknown Source)
    at com.briup.estore.service.impl.Test.main(Test.java:23)
Caused by: java.lang.NullPointerException
    at java.lang.String.<init>(Unknown Source)
    at oracle.sql.CharacterSet.AL32UTF8ToString(CharacterSet.java:1518)
    at oracle.jdbc.driver.DBConversion.CharBytesToString(DBConversion.java:610)
    at oracle.jdbc.driver.DBConversion.CharBytesToString(DBConversion.java:555)
    at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOauth(T4CTTIoauthenticate.java:822)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:362)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java:201)
    at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java:196)
    at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.getConnection(UnpooledDataSource.java:93)
    at org.apache.ibatis.datasource.pooled.PooledDataSource.popConnection(PooledDataSource.java:385)
    at org.apache.ibatis.datasource.pooled.PooledDataSource.getConnection(PooledDataSource.java:89)
    at org.apache.ibatis.transaction.jdbc.JdbcTransaction.openConnection(JdbcTransaction.java:140)
    at org.apache.ibatis.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:62)
    at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:315)
    at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:75)
    at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:61)
    at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:303)
    at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:154)
    at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:102)
    at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:82)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:120)
    ... 6 more

求解这是什么原因导致的

抱歉放错mapper了

  • 写回答

2条回答 默认 最新

  • Oh_my_godness 2017-10-23 01:28
    关注

    数据库连接的问题,看看你的oracle的jar包有没有

    评论

报告相同问题?

悬赏问题

  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 vue2登录调用后端接口如何实现