创建数据
create table Teacher(
id int not null primary key,#主键不为bull
name character(20),
grade character(20),#班级
sex enum('男','女','中性','保密') default '保密'
)engine = innodb charset utf8;
create table Student(
id int not null,
name character(20),
sex enum('男','女','中性','保密') default '保密',
`tid` int,
KEY `fktid`(`tid`),#取个名字
#约束fktid,以teacher表中的id字段为参照
#也就是在增加一个学生的时候,要看老师表里面有没有这个人,也就是id
constraint `fktid` FOREIGN KEY (`tid`) references `Teacher` (`id`)
) engine = innodb charset = utf8;
insert into Teacher (id,name,grade,sex) values (1,'张三','104班',1);
insert into Teacher (id,name,grade,sex) values (2,'李四','104班',1);
insert into Teacher (id,name,grade,sex) values (3,'小乔','104班',2);
insert into Teacher (id,name,grade,sex) values (4,'金星','104班',3);
insert into Teacher (id,name,grade,sex) values (5,'金星','105班',3);
insert into Student (id,name,sex,tid) values (1,'周星星',1,1);
insert into Student (id,name,sex,tid) values (2,'刘华华',1,3);
insert into Student (id,name,sex,tid) values (3,'张国国',3,2);
insert into Student (id,name,sex,tid) values (4,'黎明明',1,1);
insert into Student (id,name,sex,tid) values (5,'黎明明',1,5);
@Test
public void test() throws IOException {
SqlSession sqlSession = MybatisUtil.getSqlSession();
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
Student student = new Student(1,"周星星",null);
List<Student> result = mapper.findStudent(student);
for (Student stu : result) {
System.out.println(stu);
}
}
Mapper映射:
测试:
@Test
public void test() throws IOException {
SqlSession sqlSession = MybatisUtil.getSqlSession();
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
Student student = new Student(1,"周星星",null);
List<Student> result = mapper.findStudent(student);
for (Student stu : result) {
System.out.println(stu);
}
}
查询结果为:按理来说不应该可以查询出一条吗 结果一条数据也没有
解决:
字符集的问题,没有识别汉字
characterEncoding=UTF-8&autoReconnect=true