步骤:
1.数据库核心配置文件mybatis-config.xml获取数据库的连接
引入db.properties
设置log4j
2.编写工具类MybatisUtils,拿到SqlSession对象方便对数据CRUD
3.编写实体类 Teacher、Student
4.编写操作实体类的接口TeacherMapper StudentMapper
5.编写sql映射文件TeacherMapper.xml StudentMapper.xml
(在resources目录下面建,要和原来的接口类在同样的目录下,方便编译到target中在一块)
(建立directory的时候间隔不要用.而是用/,不然会建成一个文件夹而不是层叠的)
6.在mybatis-config.xml中绑定对应的mapper
7.测试:
①在StudentMapper中添加一个方法,并用注解的方法进行对数据库的操作
②编写测试类进行测试
1.建立数据库文件
CREATE table `teacher` (
`id` INT(10) not null,
`name` varchar(30) DEFAULT null,
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO teacher(`id`,`name`) values('1', '张老师');
CREATE TABLE `student` (
`id` INT(10) not null,
`name` varchar(30) DEFAULT null,
`tid` int(10) DEFAULT null,
PRIMARY KEY(`id`),
KEY `fktid`(`tid`),
CONSTRAINT `fktid` FOREIGN KEY (`tid`) REFERENCES `teacher` (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
insert into `student` (`id`,`name`,`tid`) values('1','小明','1');
insert into `student` (`id`,`name`,`tid`) values('2','小红','1');
insert into `student` (`id`,`name`,`tid`) values('3','小张','1');
insert into `student` (`id`,`name`,`tid`) values('4','小李','1');
insert into `student` (`id`,`name`,`tid`) values('5','小王','1');
2.建立实体类
Teacher.java
package com.geng.pojo;
public class Teacher {
private int id;
private String name;
@Override
public String toString() {
return "Teacher{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
public Teacher(int id, String name) {
this.id = id;
this.name = name;
}
public Teacher() {
}
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;
}
}
Student.java
package com.geng.pojo;
public class Student {
private int id;
private String name;
private Teacher teacher;
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", teacher=" + teacher +
'}';
}
public Student(int id, String name, Teacher teacher) {
this.id = id;
this.name = name;
this.teacher = teacher;
}
public Student() {
}
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 Teacher getTeacher() {
return teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
}
3.编写dao接口
StudentMapper.java
package com.geng.dao;
public interface StudentMapper {
}
TeacherMapper.java
package com.geng.dao;
import com.geng.pojo.Teacher;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface TeacherMapper {
@Select("select * from mybatis.teacher")
List<Teacher> getTeacherList();
}
4.编写SQL映射文件
StudentMapper.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">
<mapper namespace="com.geng.dao.StudentMapper">
</mapper>
TeacherMapper.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">
<mapper namespace="com.geng.dao.TeacherMapper">
</mapper>
5.绑定Mapper(在mybatis-config.xml中)
<mappers>
<mapper class="com.geng.dao.TeacherMapper"/>
<mapper class="com.geng.dao.StudentMapper"/>
</mappers>