这是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了