准备数据
create table user (
id int primary key auto_increment,
username varchar(20) not null,
birthday date,
sex char(1) default ‘男’,
address varchar(50)
);
insert into user values (null, ‘孙悟空’,’1980-10-24’,’男’,’花果山水帘洞’);
insert into user values (null, ‘白骨精’,’1992-11-12’,’女’,’白虎岭白骨洞’);
insert into user values (null, ‘猪八戒’,’1983-05-20’,’男’,’福临山云栈洞’);
insert into user values (null, ‘蜘蛛精’,’1995-03-22’,’女’,’盤丝洞’);
select * from user;
创建maven工程,导入坐标
<!--mybatis核心包--><br /> <dependency><br /> <groupId>org.mybatis</groupId><br /> <artifactId>mybatis</artifactId><br /> <version>3.5.0</version><br /> </dependency><br /> <!--logback日志包--><br /> <dependency><br /> <groupId>org.slf4j</groupId><br /> <artifactId>slf4j-api</artifactId><br /> <version>1.7.26</version><br /> </dependency><br /> <dependency><br /> <groupId>ch.qos.logback</groupId><br /> <artifactId>logback-core</artifactId><br /> <version>1.2.3</version><br /> </dependency><br /> <dependency><br /> <groupId>ch.qos.logback</groupId><br /> <artifactId>logback-classic</artifactId><br /> <version>1.2.3</version><br /> </dependency><br /> <!--mysql驱动--><br /> <dependency><br /> <groupId>mysql</groupId><br /> <artifactId>mysql-connector-java</artifactId><br /> <version>5.1.18</version><br /> </dependency><br /> <br /> <dependency><br /> <groupId>junit</groupId><br /> <artifactId>junit</artifactId><br /> <version>4.12</version><br /> <scope>test</scope><br /> </dependency>
在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”>
在resources下创建映射文件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”>
在resources下 导入logback.xml文件
<?xml version=”1.0” encoding=”UTF-8”?>
<!-- File是输出的方向通向文件的 --><br /> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><br /> <encoder><br /> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern><br /> <charset>utf-8</charset><br /> </encoder><br /> <!--日志输出路径--><br /> <file>C:/code/itheima-data.log</file><br /> <!--指定日志文件拆分和压缩规则--><br /> <rollingPolicy<br /> class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><br /> <!--通过指定压缩文件名称,来确定分割文件方式--><br /> <fileNamePattern>C:/code/itheima-data2-%d{yyyy-MMdd}.log%i.gz</fileNamePattern><br /> <!--文件拆分大小--><br /> <maxFileSize>1MB</maxFileSize><br /> </rollingPolicy><br /> </appender>
<!--
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF<br /> , 默认debug<br /> <root>可以包含零个或多个<appender-ref>元素,标识这个输出位置将会被本日志级别控制。<br /> --><br /> <root level="ALL"><br /> <appender-ref ref="CONSOLE"/><br /> <appender-ref ref="FILE" /><br /> </root><br /></configuration>
新建UserMapper接口:
public interface UserMapper {
/*
查询所有的用户
/
List
}
创建实体类User:
package com.itheima.sh.pojo;
import java.sql.Date;
public class User {
private Integer id;
private String username;
private Date birthday;
private String sex;
private String address;
public User() {<br /> }
public User(Integer id, String username, Date birthday, String sex, String address) {<br /> this.id = id;<br /> this.username = username;<br /> this.birthday = birthday;<br /> this.sex = sex;<br /> this.address = address;<br /> }
public Integer getId() {<br /> return id;<br /> }
public void setId(Integer id) {<br /> this.id = id;<br /> }
public String getUsername() {<br /> return username;<br /> }
public void setUsername(String username) {<br /> this.username = username;<br /> }
public Date getBirthday() {<br /> return birthday;<br /> }
public void setBirthday(Date birthday) {<br /> this.birthday = birthday;<br /> }
public String getSex() {<br /> return sex;<br /> }
public void setSex(String sex) {<br /> this.sex = sex;<br /> }
public String getAddress() {<br /> return address;<br /> }
public void setAddress(String address) {<br /> this.address = address;<br /> }
@Override<br /> public String toString() {<br /> return "User{" +<br /> "id=" + id +<br /> ", username='" + username + '\'' +<br /> ", birthday=" + birthday +<br /> ", sex='" + sex + '\'' +<br /> ", address='" + address + '\'' +<br /> '}';<br /> }<br />}<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/26700116/1655815040201-5ec25c68-e99b-4812-845e-cf12c033dcc6.png#clientId=u35202389-781e-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=283&id=u7799178b&margin=%5Bobject%20Object%5D&name=image.png&originHeight=283&originWidth=804&originalType=binary&ratio=1&rotation=0&showTitle=false&size=36704&status=done&style=none&taskId=uaf30dfbe-d35a-46f0-9571-2f0c85d423b&title=&width=804)<br />public class MyBatisTest01 {<br /> //从MySQL中查询所有的用户<br /> @Test<br /> public void test02() throws Exception{<br /> //1.从xml文件中构建SqlSessionFactory<br /> //定义核心配置文件路径<br /> String resource = "mybatis-config.xml";<br /> //加载核心配置文件获取输入流<br /> InputStream inputStream = Resources.getResourceAsStream(resource);<br /> SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//2.从SqlSessionFactory中获取session<br /> SqlSession session = sqlSessionFactory.openSession();
//3.使用session获取接口的动态代理对象<br /> UserMapper mapper = session.getMapper(UserMapper.class);<br /> //4.使用接口对象调用接口中的方法<br /> List<User> userList = mapper.findAllUsers();<br /> //5.遍历集合<br /> for (User user : userList) {<br /> System.out.println(user);<br /> }<br /> //关闭会话<br /> session.close();<br /> }<br />}