mybatis+maven+mysql 项目简单搭建与junit空指针异常解决办法

前面maven项目新建与配置与各种可能出现的问题 可以参考 http://blog.csdn.net/frank_hsu_/article/details/79423420

这里就不赘述了。

表信息

CREATE TABLE `person_test` (
  `ID` int(10) NOT NULL AUTO_INCREMENT,
  `NAME` char(10) DEFAULT NULL,
  `GENDER` int(1) DEFAULT NULL,
  `ADDRESS` varchar(50) DEFAULT NULL,
  `BRITHDAY` date DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

项目新建完成后修改pom.xml 配置

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com</groupId>
	<artifactId>mybatis_test</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>mybatis_test Maven Webapp</name>
	<url>http://maven.apache.org</url>

	<dependencies>
		<!-- 导入java ee jar 包 -->
		<dependency>
			<groupId>javax</groupId>
			<artifactId>javaee-api</artifactId>
			<version>7.0</version>
		</dependency>

		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.2.7</version>
		</dependency>

		<!-- 导入Mysql数据库链接jar包 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.30</version>
		</dependency>
	</dependencies>

	<build>
		<finalName>mybatis_test</finalName>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

 在src/main/resources 中新建 MyBatisCfg.xml 这里的事务后期会交由spring进行管理

<?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>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/test"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="com/mybatis/mapper/PersonTestMapper.xml"/>
  </mappers>
</configuration>

在src/main/java 中新建 package : com.mybatis.mapper

编写 PersonTestMapper.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">
<!-- namespace :映射文件的命名空间  规范是映射文件包的全路径 -->
<mapper namespace="com.mybatis.mapper.PersonTestMapper">
<!-- parameterType 查询类型  resultType 返回类型一般包装成类-->
  <select id="selectPersonById" parameterType="java.lang.Integer" resultType="com.mybatis.model.Person">
  	select * from person_test where id = #{id}
  </select>
</mapper>

新建 package : com.mybatis.model 并建立实体类 Person.java

package com.mybatis.model;

import java.util.Date;

public class Person {
	
	private Integer id; 
	private String name;
	private Integer gender;
	private String address;
	private Date brithday ;
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getGender() {
		return gender;
	}
	public void setGender(Integer gender) {
		this.gender = gender;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public Date getBrithday() {
		return brithday;
	}
	public void setBrithday(Date brithday) {
		this.brithday = brithday;
	}
	
	@Override
	public String toString() {
		return "Person [id=" + id + ", name=" + name + ", gender=" + gender + ", address=" + address + ", brithday="
				+ brithday + "]";
	}
	
	
	}

在src/test/java 建包 com.mybatis.test   添加测试类mybatisTest.java

package com.mybatis.test;

import java.io.InputStream;

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 com.mybatis.model.Person;

public class mybatisTest {

	SqlSessionFactory sessionFactory;

	@Before
	public void setUp() throws Exception {
		// 初始化
		InputStream inputStream = Resources.getResourceAsStream("MyBatisCfg.xml");
		sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
	}

	@Test
	public void test() {
		// 创建SqlSession
		SqlSession sqlSession = sessionFactory.openSession();
		// 命名空间com.mybatis.mapper.PersonTestMapper+.selectPersonById 找到对应SQL,傳入參數爲1
		try {
			Person person = sqlSession.selectOne("com.mybatis.mapper.PersonTestMapper.selectPersonById", 1);
			System.out.println(person);
		} finally {
			sqlSession.close();
		}
	}

}
项目右键->Run As->JUnit Test,可以看到成功输出

Person [id=1, name=刘备, gender=1, address=蜀国, brithday=Wed Mar 21 00:00:00 CST 2018]

注意今天进行junit测试的时候出现了下面的错误(单纯进行某个某个方法出现下面的错误,如果都某个类进行测试,还不会出现)


下面给出解决方案

1.首先把junit4.4.jar的包 Remove 掉


2.然后 Add Library 选择如下


3.点击Next  最后点击选择  Junit4   最后OK 问题就解决了

(网上也有说,把Junit的包排到前面也可以解决该问题的)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值