"D:\java\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:D:\java\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=54212:D:\java\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath "D:\java\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar;D:\java\IntelliJ IDEA 2019.2.4\plugins\junit\lib\junit-rt.jar;D:\java\IntelliJ IDEA 2019.2.4\plugins\junit\lib\junit5-rt.jar;D:\java\ljj-di4\target\test-classes;D:\java\ljj-di4\target\classes;D:\MavenRepository\org\mybatis\mybatis\3.5.2\mybatis-3.5.2.jar;D:\MavenRepository\mysql\mysql-connector-java\8.0.11\mysql-connector-java-8.0.11.jar;D:\MavenRepository\com\google\protobuf\protobuf-java\2.6.0\protobuf-java-2.6.0.jar;D:\MavenRepository\junit\junit\4.12\junit-4.12.jar;D:\MavenRepository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar" com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 -junit4 Test1,testGetMemberByUnameAndSex
java.lang.ExceptionInInitializerError
at Test1.testGetMemberByUnameAndSex(Test1.java:80)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: org.apache.ibatis.exceptions.PersistenceException:
### Error building SqlSession.
### The error may exist in SQL Mapper Configuration
### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.NullPointerException
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:52)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:36)
at com.itheima.untils.MyBatisUtils.<clinit>(MyBatisUtils.java:20)
... 23 more
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.NullPointerException
at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:121)
at org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(XMLConfigBuilder.java:98)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:50)
... 25 more
Caused by: java.lang.NullPointerException
at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:105)
... 27 more
Process finished with exit code -1
??? @Test
public void testGetMemberByUnameAndSex(){
SqlSession session= MyBatisUtils.getSession();
MemberDaoMapper memberDaoMapper=session.getMapper(MemberDaoMapper.class);
List<Member>
memberList=memberDaoMapper.getMemberByUnameAdnSex("李四",0);
for(Member member:memberList){
System.out.println(member);
}
session.close();
}???<?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.itheima.mapper.MemberDaoMapper">
<!-- 插入会员(主键自增,不指定member_id) -->
<insert id="insert" parameterType="com.itheima.pojo.Member"
keyProperty="member_id" useGeneratedKeys="true">
insert into ms_member(uname, password, email, sex, mobile)
values (#{uname}, #{password}, #{email}, #{sex}, #{mobile})
</insert>
<!-- 批量插入(无需指定member_id) -->
<insert id="insert1">
insert into ms_member(uname, password, email, sex, mobile)
values ('李白', '123456', 'aabb@qq.com', 0, '2434234'),
('程咬金', '123456', 'yyrry@qq.com', 0, '234324')
</insert>
<!-- 根据ID查询会员 -->
<select id="getMemberById" resultType="com.itheima.pojo.Member">
select member_id, uname, password, email, sex, mobile
from ms_member
where member_id = #{member_id}
</select>
<!-- 查询所有会员 -->
<select id="findAll" resultType="com.itheima.pojo.Member">
select * from ms_member
</select>
<!-- 按用户名和性别查询(方法1:参数顺序传递) -->
<select id="getMemberByUnameAndSex" resultType="com.itheima.pojo.Member">
select * from ms_member where uname = #{0} and sex = #{1}
</select>
<!-- 按用户名和性别查询(方法2:@Param注解命名参数) -->
<select id="getMemberByUnameAndSex1" resultType="com.itheima.pojo.Member">
select * from ms_member where uname = #{uname} and sex = #{sex}
</select>
<!-- 按用户名和性别查询(方法3:Map参数) -->
<select id="getMemberByUnameAndSex2" resultType="com.itheima.pojo.Member">
select * from ms_member where uname = #{uname} and sex = #{sex}
</select>
<!-- 按用户名和手机号查询(动态SQL) -->
<select id="findMemberByUnameAndMobile" resultType="com.itheima.pojo.Member"
parameterType="com.itheima.pojo.Member">
select * from ms_member where 1=1
<if test="uname != null and uname != ''">
and uname like concat('%', #{uname}, '%')
</if>
<if test="mobile != null and mobile != ''">
and mobile like concat('%', #{mobile}, '%')
</if>
</select>
<!-- 删除会员 -->
<delete id="deleteById" parameterType="Integer">
delete from ms_member where member_id = #{member_id}
</delete>
<!-- 更新会员 -->
<update id="updateById" parameterType="com.itheima.pojo.Member">
update ms_member
set uname = #{uname}, password = #{password}, email = #{email},
sex = #{sex}, mobile = #{mobile}
where member_id = #{member_id}
</update>
</mapper>????<?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.itheima.mapper.MemberDaoMapper">
<!-- insert元素(修正后) -->
<insert id="insert" parameterType="com.itheima.pojo.Member"
keyProperty="member_id" useGeneratedKeys="true">
insert into ms_member(uname, password, email, sex, mobile)
values (#{uname}, #{password}, #{email}, #{sex}, #{mobile})
</insert>
<!-- 批量插入示例 -->
<insert id="insert1">
insert into ms_member(uname, password, email, sex, mobile)
values ('李白', '123456', 'aabb@qq.com', 0, '2434234'),
('程咬金', '123456', 'yyrry@qq.com', 0, '234324')
</insert>
<!-- 根据ID查询会员 -->
<select id="getMemberById" resultType="com.itheima.pojo.Member">
select member_id, uname, password, email, sex, mobile
from ms_member
where member_id = #{member_id}
</select>
<!-- 查询所有会员 -->
<select id="findAll" resultType="com.itheima.pojo.Member">
select * from ms_member
</select>
<!-- 按用户名和性别查询(修正方法名和SQL) -->
<select id="getMemberByUnameAndSex" resultType="com.itheima.pojo.Member">
select * from ms_member where uname = #{uname} and sex = #{sex}
</select>
<select id="getMemberByUnameAndSex1" resultType="com.itheima.pojo.Member">
select * from ms_member where uname = #{uname} and sex = #{sex}
</select>
<select id="getMemberByUnameAndSex2" resultType="com.itheima.pojo.Member">
select * from ms_member where uname = #{uname} and sex = #{sex}
</select>
<!-- 按用户名和手机号查询(已修正mobile条件) -->
<select id="findMemberByUnameAndMobile" resultType="com.itheima.pojo.Member"
parameterType="com.itheima.pojo.Member">
select * from ms_member where 1=1
<if test="uname != null and uname != ''">
and uname like concat('%', #{uname}, '%')
</if>
<if test="mobile != null and mobile != ''">
and mobile like concat('%', #{mobile}, '%')
</if>
</select>
<!-- delete元素 -->
<delete id="deleteById" parameterType="Integer">
delete from ms_member where member_id = #{member_id}
</delete>
<!-- update元素 -->
<update id="updateById" parameterType="com.itheima.pojo.Member">
update ms_member
set uname = #{uname}, password = #{password}, email = #{email},
sex = #{sex}, mobile = #{mobile}
where member_id = #{member_id}
</update>
</mapper>
最新发布