MyBatis 3.5 + Maven 环境搭建
1、pom.xml文件添加依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
2、resources文件夹
与pom.xml文件同级目录新建文件夹:resource,并包括三个文件:
db.properties、log4j.properties、mybatis-config.xml
如下图所示:
3、db.properties文件内容
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/mydb?serverTimezone=UTC&useSSL=false
username=root
password=root
4、log4j.properties
# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.cn.mybatis.mydemo.mapper.PersonMapper=DEBUG
log4j.logger.cn.mybatis.mydemo.mapper.CardMapper=DEBUG
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
5、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">
<!-- XML 配置文件包含对 MyBatis 系统的核心设置 -->
<configuration>
<!-- 指定 MyBatis 数据库配置文件 -->
<properties resource="db.properties" />
<!-- 指定 MyBatis 所用日志的具体实现 -->
<settings>
<setting name="logImpl" value="LOG4J" />
</settings>
<environments default="mysql">
<!-- 环境配置,即连接的数据库。 -->
<environment id="mysql">
<!-- 指定事务管理类型,type="JDBC"指直接简单使用了JDBC的提交和回滚设置 -->
<transactionManager type="JDBC" />
<!-- dataSource指数据源配置,POOLED是JDBC连接对象的数据源连接池的实现。 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!-- mappers告诉了MyBatis去哪里找持久化类的映射文件 -->
<!--
<mappers>
<mapper resource="cn/mybatis/mydemo/mapper/CardMapper.xml" />
<mapper resource="cn/mybatis/mydemo/mapper/PersonMapper.xml" />
</mappers>
-->
<!-- mappers告诉了MyBatis去哪里找持久化类的映射类(注解形式) -->
<mappers>
<mapper class="cn.mybatis.mydemo6.mapper.ArticleMapper" />
<mapper class="cn.mybatis.mydemo6.mapper.OrderMapper" />
<mapper class="cn.mybatis.mydemo6.mapper.UserMapper" />
</mappers>
</configuration>
6、建立实体文件和映射文件
7、测试
public class App
{
public static void main(String[] args) throws Exception
{
// 读取mybatis-config.xml文件
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
// 初始化mybatis,创建SqlSessionFactory类的实例
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 创建Session实例
SqlSession session = sqlSessionFactory.openSession();
// 获得xml映射文件中定义的操作语句
Person p = session.selectOne("cn.mybatis.mydemo.mapper.PersonMapper.selectPersonById", 1);
System.out.println(p);
System.out.println(p.getCard().getCode());
// 获得mapper接口的代理对象
PersonMapper pm = session.getMapper(PersonMapper.class);
// 直接调用接口的方法,查询id为1的Peson数据
Person p2 = pm.selectPersonById(1);
// 打印Peson对象
System.out.println(p2);
// 打印Person对象关联的Card对象
System.out.println(p2.getCard());
// 提交事务
session.commit();
// 关闭Session
session.close();
}
}
8、源码下载
暂时没有是时间上传源码,如果阅读此文未能理解和掌握 MyBatis 3.5 + Maven 环境搭建,请加群索取源码。
你好,我按照上面的步骤
如果通过 获得xml映射文件中定义的操作语句 是可以获取结果的
但是我如果mapper接口来测试的时候,同时也参考网上的一些注意事项如下:
(1)Mapper.xml文件中的namespace与mapper接口的类路径相同。
(2)Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
(3)Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同
(4)Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同
但是 还是报了错,
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.guigu.mapper.StuMapper.getById
所以希望博主可以把源码发下我邮箱 我好对比检查下 错在哪
谢谢!