insert into user(account,password) value(#{account},#{password})
insert into user(account,password) value(#{account},#{password})
update user set account=#{account},password=#{password} where id = #{id}
delete from user where id = #{id}
public interface StudentDao {
Student findUserById(int id);
List findStudents();
Student findStudentById1(int id);
}
在关联映射的时候,mybatis自动映射不生效,有2种解决方式。 第一种:使用结果集返回
例:
第二种:使用自动映射
在多张表关联查询嵌套时,仍然开启自动映射
SELECT student.id sid,student.name sname,gender,reg_time,classid,tel,address,grade.name gname,student.userid
FROM student,grade,USER
WHERe grade.id = student.classid AND
student.userid = user.id AND student.id = #{id};
SELECT student.id sid,student.name sname,gender,reg_time,classid,tel,address,grade.name gname,account
FROM student,grade,USER
WHERe grade.id = student.classid AND student.userid = user.id
2.3 关联查询
1. 封装关联对象的值,生成grade对象 嵌套查询,先查询学生表,然后根据年级的id查询年级名称
SELECT student.id sid,student.name sname,gender,reg_time,classid,tel,address,student.userid
FROM student,grade,USER
WHERe student.userid = user.id AND student.id = #{id};
select name from grade where id = {classid}
2. 查询每个年级下面有多少学生
public class Grade {
private int id;
private String name;
private List students;
//get和set方法略
}
public interface GradeDao {
List findGrades();
Grade findStudentById(int id);
Grade findStudentById1(int id);
}
数据库方式 select grade.id gid, grade.name gn ame,GROUP_CONCAt(student.name) sname from grade,student where grade.id = student.classid and grade.id = #{id}
Mybatis方式
(1)查询每个年级下的学生的姓名
select grade.id gid, grade.name gname,(student.name) sname
from grade,student
where grade.id = student.classid and grade.id = #{id}
(2)查询每个年级下的学生
select id,name
from grade
select name from student where gradeid = #{id}
2.4 注解方式
简单的注解标签的使用
注:建议简单的sql使用注解 提高效率
public interface GradeDao {
Grade findGradeById(int id);
List findGrades();
Grade findGradeById1(int id);
@Insert("insert into grade(name)value(#{name})")
void saveGrade(Grade grade);
@Delete("delete from grade where id = #{id}")
void deleteGrade(int id);
@Select("select id,name fom grade where id =#{id}")
Grade findGade(int id);
@Update("update grade set name=#{name} where id = #{id}")
void updateGeade(Grade grade);
}