目录
2.在pom.xml文件中加入mybatis依赖、mysql驱动、junit单元测试坐标、添加slf4j日志api、添加logback-classic依赖、添加logback-core依赖
3.在sre/main下创建resources文件夹,创建mybatis-config.xml,该文件主要用来配置数据库连接信息。代码可从官网中复制粘贴即可
4.在resources下创建logback.xml日志文件
5.在resources下创建xxxMapper.xml文件。(此处以UserMapper.xml为例) 该文件为映射的sql语句
6.在src/main/java下创建com.itheima.poji.User的java类
7.创建测试函数。在src/main/java下创建com.itheima.MyBatisDemo的java类
官方帮助文档:入门_MyBatis中文网
快速入门:
准备工作:mysql数据库 本篇文章数据库为mybatis,student表
1.创建一个Maven项目
2.在pom.xml文件<dependency>中加入mybatis依赖、mysql驱动、junit单元测试坐标、添加slf4j日志api、添加logback-classic依赖、添加logback-core依赖
<dependencies>
<!--mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--junit单元测试坐标-->
<dependency>
<groupId>junit </groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--添加slf4j日志api-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.20</version>
</dependency>
<!--添加logback-classic依赖-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!--添加logback-core依赖-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
3.在sre/main下创建resources文件夹,创建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>
<environments default="development">
<environment id="development">
<transactionManager type="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>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
<property name="driver" value="${driver}"/> 将${drive}修改为注册驱动 即<property name="driver" value="com.mysql.jdbc.Drive"/>
同理,其他的value值分别改为数据库链接,账号密码。
<mappers> 用来加载sql映射文件。如我们在第五步创建的sql映射文件为UserMapper.xml 那么此时就可修改为: 与下面的映射文件相对应
<mappers>
<!--加载sql映射文件-->
<mapper resource="UserMapper.xml"/>
</mappers>
4.在resources下创建logback.xml日志文件
<configuration>
<!--
CONSOLE :表示当前的日志信息是可以输出到控制台的。
-->
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%level] %blue(%d{HH:mm:ss.SSS}) %cyan([%thread]) %boldGreen(%logger{15}) - %msg %n</pattern>
</encoder>
</appender>
<logger name="com.itheima" level="DEBUG" additivity="false">
<appender-ref ref="Console"/>
</logger>
<!--
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
, 默认debug
<root>可以包含零个或多个<appender-ref>元素,标识这个输出位置将会被本日志级别控制。
-->
<root level="DEBUG">
<appender-ref ref="Console"/>
</root>
</configuration>
5.在resources下创建xxxMapper.xml文件。(此处以UserMapper.xml为例) 该文件为映射的sql语句
官方内容为
<?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="test">
<select id="selectAll" resultType="com.itheima.pojo.User">
select * from Blog where id = #{id}
</select>
</mapper>
其中namespace为名称空间,我们此时将namespace改为test (namespace是自己可以修改的)
在<mapper>中书写sql语句
id为该sql语句的唯一标识
resultType为返回的值为什么类型,因为我们需要返回的是一个数据库查询结果,所以此处的值应该与常见的javabena类名字对应,我们在第六步创建的为User.java 因此我们此处应为com.itheima.poji.User
到此,resources配置文件完成
6.在src/main/java下创建com.itheima.poji.User的java类
书写一个对应数据库的完整javabena类,get.set.tostring方法。例如:
package com.itheima.pojo;
public class User {
private int id;
private String name;
private String email;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", email='" + email + '\'' +
", age=" + age +
'}';
}
}
7.创建测试函数。在src/main/java下创建com.itheima.MyBatisDemo的java类
参考官方文档
package com.itheima;
import com.itheima.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 java.io.IOException;
import java.io.InputStream;
import java.util.List;
//Mybatis快速入门代码
public class MyBatisDemo {
public static void main(String[] args) throws IOException {
//1.加载mybatis的核心配置文件,获取SqlSessionFactory
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//2.获取SqlSession对象,用它来执行sql
SqlSession sqlSession = sqlSessionFactory.openSession();
//3.执行sql语句
List<User> users = sqlSession.selectList("com.itheima.mapper.UserMapper.selectAll");
System.out.println(users);
//4.释放资源
sqlSession.close();
}
}
在第二步:String resource = "mybatis-config.xml"; 值为我们设置的mybatis配置文件的名字
在第三步:执行sql语句中List<User> users = sqlSession.selectList("test.selectAll");
此时括号内的值应该是我们在配置UserMapper.xml时namespace.id
我们在配置UserMapper.xml时namespace的值为test,id值为selectAll。
因此括号内的值为test.selectAll
运行即可连接数据库获得数据
8.1常见错误:不支持发行版本5
解决方法:我的jdk版本为11.因此全部选为11
全部设置为安装的jdk即可