如果maven的本地仓库(.m2)没有配置文件,可以从IDEA的安装目录下拷贝
settings配置文件的位置:
位置:D:\Program Files\JetBrains\IntelliJ IDEA 2018.2.5\plugins\maven\lib\maven3\conf
添加如下镜像内容:
<mirrors>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
</mirrors>
在拷贝到.m2目录中
<!--属性配置(也可以说是java版本的设置)-->
<properties>
<java.version>1.8</java.version>
</properties>
<!-- 编译插件中可以设置Java的编译级别(根据上面java.version中版本号) -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
<!--Idea默认找不到对应的xml配置路径
原因: 默认在资源目录下才能加载,如果将mapper.xml转移到了java目录下,就必须在pom中进行配置,作为资源文件的设定目录
方法: 在pom文件的build标签中,加入resource标签如下代码 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml
<!-- 用于存放java依赖包 -->
<dependencies>
<!--mysql的依赖包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<!--mybatis的依赖包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
</dependencies>
mybatis配置文件
<?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>
<settings>
<!--当返回行的所有列都是空时,MyBatis默认返回null-->
<setting name="returnInstanceForEmptyRow" value="true"/>
<!--显示sql语句-->
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<!--设置别名-->
<typeAliases>
<typeAlias alias="User" type="com.gxa.(项目名称).pojo.User"/>
<!--<package name="com.gxa.ehome.pojo" />-->
</typeAliases>
<environments default="development">
<environment id="development">
<!--使用了 JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作用域-->
<transactionManager type="JDBC"/>
<!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
<!-- POOLED 表示支持JDBC数据源连接池 -->
<!-- UNPOOLED 表示不支持数据源连接池 -->
<!-- JNDI 表示支持外部数据源连接池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/(数据库名称)?useSSL=false&characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 映射文件方式1,一个一个的配置
<mapper resource="com.gxa.(项目名称).mapper.UserMapper" /> -->
<!-- 映射文件方式2,自动扫描包内的Mapper接口与配置文件 -->
<package name="com.gxa.(项目名称).mapper"/>
</mappers>
</configuration>
pojo类,创建一个类名与数据库相同,属性名和数据库字段名相同的pojo对象。
数据库映射XML文件(UserMapper.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.gxa.v.mapper.UserMapper">
<select id="selectById" resultType="User" parameterType="int">
select * from users where id=#{id};
</select>
<select id="selectAll" resultType="User">
select * from users
</select>
<insert id="insertUser" parameterType="User">
insert into users(username) values(#{username});
</insert>
</mapper>
创建测试用例
import com.gxa.ehome.mapper.UserMapper;
import com.gxa.ehome.pojo.User;
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 TestUser {
SqlSession sqlSession = null;
UserMapper mapper = null;
@Before
public void init() throws IOException {
//加载mybatis的配置资源
InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
//利用工厂模式映射相对应的接口实现类
//默认情况
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(inputStream);
sqlSession = factory.openSession();
mapper = sqlSession.getMapper(UserMapper.class);
}
@Test
public void testSelectAll() throws IOException {
List<User> users = mapper.selectAll();
System.out.println(users);
//事务是开启状态, 如有增删改操作记得提交事务
}
@After
public void testSelectById(){
SqlSession.close();
}
}
如果xml中的mysql语句报黄色警告,修改方言即可
settings->dialect-> 两项改为mysql