通过一个案例快速入门Mybatis框架
案例: 查询user表中所有数据 1) 创建user表,添加数据 2) 创建模块,导入坐标 3) 编写MyBatis核心配置文件-->替换连接信息,解决硬编码问题 4) 编写SQL映射文件-->统一管理sql语句,解决硬编码问题 5) 编码 i. 定义POJO类 ii. 加载核心配置文件,获取SqlSessionFactory对象 iii. 获取SqlSession对象,执行SQL语句 iv. 释放资源
–
1、创建user表,添加数据DROp table IF exists tb_user; CREATE TABLE tb_user( id int primary key auto_increment, username varchar(20), password varchar(30), gender char(1), addr varchar(20) ); insert into tb_user(id, username, password, gender, addr) values (1, 'zhangsan', '123', '男', '广州'), (2, '李四', '234', '女', '天津'), (3, '王五', '11', '男', '北京');
sql语句执行结果2.创建模块,导入坐标
pom.xml文件的配置如下
4.0.0 com.itheima mybatis-demo 1.0-SNAPSHOT JBoss repository https://repository.jboss.org/nexus/content/repositories/releases/ org.mybatis mybatis 3.4.5 mysql mysql-connector-java 5.1.46 junit junit 4.13 test org.slf4j slf4j-api 1.7.20 ch.qos.logback logback-classic 1.2.3 ch.qos.logback logback-core 1.2.3
logback文件的配置如下:
3.编写MyBatis核心配置文件–>替换连接信息,解决硬编码问题%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n ${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}.log 30 %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n 10MB
mybatis核心配置文件参考官网给出的示例 官网:https://mybatis.org/mybatis-3/zh/getting-started.html 红色框框中的内容是需要根据自己的设置更改的
我自己的配置如下:
4.编写SQL映射文件–>统一管理sql语句,解决硬编码问题
sql映射配置文件参考官网给出的示例 官网:https://mybatis.org/mybatis-3/zh/getting-started.html 红色框框中的内容是需要根据自己的设置更改的
我的sql映射文件 UserMapper.xml配置如下
5. 编码
首先创建User类包含表中的所有字段
public class User {
private Integer id;
private String username;
private String passWord;
private String gender;
private String addr;
public User() {
}
public User(Integer id, String username, String passWord, String gender, String addr) {
this.id = id;
this.username = username;
this.passWord = passWord;
this.gender = gender;
this.addr = 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 + ''' +
'}';
}
}
测试类:main方法
public static void main(String[] args) throws Exception {
//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 users = sqlSession.selectList("test.selectAll");
System.out.println(users);
//4.释放资源
sqlSession.close();
}



