目录
mybatis介绍
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/132b68017495b067fbcfa0e80bb6536f.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a42d36d5472c883286e40a241c97a774.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/614e6286b6b058eeffda970def08bc43.png)
1 创建tb_user表,添加 数据
我们在idea中打开数据库,创建一个自己想用的tb_user表
create database mybatis;
use mybatis;
drop table if exists tb_user;
create table tb_user(
id int primary key auto_increment,
username varchar(20),
password varchar(20),
gender char(1),
addr varchar(30)
);
insert into tb_user values (1,'张三','123','男','北京'),(2,'李四','456','男','上海'),(3,'王五','789','女','广州');
select * from tb_user;
2 创建模块 ,导入所需坐标
点击“+”选择newModule选择maven项目然后命名
导入所需坐标
打开maven项目下的pom.xml文件导入坐标
导入所需的mysql,mybatis,(junit,slf4j日志 根据自己需要添加;若要使用slf4j日志,需要把logback.xml文件复制到文件夹下
logback.xml配置文件内容如下
<?xml version="1.0" encoding="UTF-8"?> 【%level】 %blue(%d{HH:mm:ss.SSS}) %cyan(【%thread】) %boldGreen(%logger{15}) - %msg %n<logger name="com.itheima" level="DEBUG" additivity="false">
<appender-ref ref="Console"/>
</logger>
<root level="DEBUG">
<appender-ref ref="Console"/>
</root>
)
mybatis依赖可以在官网添加
注意添加时会有爆红现象,这时要点击屏幕右上角的maven刷新图标进行下载,需要等待10多秒左右直到右边maven菜单下Dependencies出现依赖文件
<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.49</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!--添加slf4j日志api-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.6</version>
</dependency>
<!--添加logback-classic依赖-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!--添加logback-core依赖-->
<dependency>
3 在main-resources中编写MyBatis核心配置文件 --> 替换与数据库的连接信息
下面时mybatis官网的建议配置操作:
从 XML 中构建 SqlSessionFactory
每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。
从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文件进行配置。 但也可以使用任意的输入流(InputStream)实例,比如用文件路径字符串或 file:// URL 构造的输入流。MyBatis 包含一个名叫 Resources 的工具类,它包含一些实用方法,使得从类路径或其它位置加载资源文件更加容易。
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
XML 配置文件中包含了对 MyBatis 系统的核心设置,包括获取数据库连接实例的数据源(DataSource)以及决定事务作用域和控制方式的事务管理器(TransactionManager)。后面会再探讨 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>
当然,还有很多可以在 XML 文件中配置的选项,上面的示例仅罗列了最关键的部分。 注意 XML 头部的声明,它用来验证 XML 文档的正确性。environment 元素体中包含了事务管理和连接池的配置。mappers 元素则包含了一组映射器(mapper),这些映射器的 XML 映射文件包含了 SQL 代码和映射定义信息。
根据官网建议,我们新建一个mybatis-config.xml文件,把官网XML配置文件复制到里面,并修改数据库连接信息如下
4 创建并编写sql映射文件UserMapper.xml
我们在java.com.cainiao.pojo新建一个User类(package com.cainiao.pojo;
public class User {
private Integer id;
private String username;
private String password;
private String gender;
private String addr;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", gender='" + gender + '\'' +
", addr='" + addr + '\'' +
'}';
}
}
)
同时新建一个UserMapper.xml文件,并把官网内容复制到文件里面,修改sql语句
然后我们修改mybatis-config.xml文件,把加载映射文件改为UserMapper文件
5 加载核心配置文件,获取sqlSessionFactory对象
我们新建一个MyBatisDemo类,把官网代码复制到里面
package com.cainiao;
import com.cainiao.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 获取sqlSessionFactory对象,用它来执行sql
SqlSession sqlSession = sqlSessionFactory.openSession();
// 3 执行sql
List<User> users = sqlSession.selectList("test.selectAll");
System.out.println(users);
// 4 释放资源
sqlSession.close();
}
}
结果如下