ThinkPHP6之模型事件的觸發條件(詳解)
阿新 • • 發佈:2020-08-09
MyBatis註解開發
介紹
常用註解
@Select(“查詢的 SQL 語句”):執行查詢操作註解
@Insert(“新增的 SQL 語句”):執行新增操作註解
@Update(“修改的 SQL 語句”):執行修改操作註解
@Delete(“刪除的SQL 語句”):執行刪除操作註解
註解實現"增刪改查"操作
- 建立介面和查詢方法
- 在核心配置檔案中配置對映關係
- 編寫測試類
StudentMapper.java
public interface StudentMapper { //查詢全部 @Select("SELECT * FROM student") public abstract List<Student> selectAll(); //新增操作 @Insert("INSERT INTO student VALUES (#{id},#{name},#{age})") public abstract Integer insert(Student stu); //修改操作 @Update("UPDATE student SET name=#{name},age=#{age} WHERE id=#{id}") public abstract Integer update(Student stu); //刪除操作 @Delete("DELETE FROM student WHERE id=#{id}") public abstract Integer delete(Integer id); }
MyBatisConfig.xml
<configuration> <!--註解實現、配置對映關係--> <mappers> <package name="com.itheima.mapper"/> <!-- 也可以配置的範圍大一點 com下所有 --> <!-- <package name="com"/> --> </mappers> </configuration>
小結
常用註解
@Select(“查詢的 SQL 語句”):執行查詢操作註解
@Insert(“查詢的 SQL 語句”):執行新增操作註解
@Update(“查詢的 SQL 語句”):執行修改操作註解
@Delete(“查詢的SQL 語句”):執行刪除操作註解
配置對映關係
MyBatis註解實現多表操作
一對一
推薦vo
public interface CardMapper { /*方式二 查詢全部 */ @Select("SELECT c.id AS cid, c.number, c.pid, p.`name`, p.age FROM card c,person p WHERE c.pid=p.id ") public abstract List<PersonCardVo> selectAllZls(); }
建立Javabean
public class PersonCardVo {
private Integer pid; //人表主鍵id
private String name; //人的姓名
private Integer age; //人的年齡
private Integer cid; //身份證號表主鍵
private String number; //身份證號
}
一對多
public interface ClassesMapper {
//查詢全部
@Select("SELECT\n"
+ "
c.id AS cid,
c.name AS cname,
s.id AS sid,
s.name AS sname,
s.age AS sage\n"
+ " FROM\n"
+ " classes AS c,student AS s\n"
+ " WHERE\n"
+ " c.id=s.cid")
public abstract List<ClassesStudentVo> selectAllZls();
}
建立vo物件
public class ClassesStudentVo {
private Integer cid; //班級的主鍵id
private String cname; //班級名稱
private Integer sid; //學生的主鍵id
private String sname; //學生姓名
private Integer sage; //學生年齡
}
使用
//4.獲取ClassesMapper介面的實現類物件
ClassesMapper mapper = sqlSession.getMapper(ClassesMapper.class);
//5.呼叫實現類物件中的方法,接收結果
List<ClassesStudentVo> list = mapper.selectAllZls();
//6.處理結果
for (ClassesStudentVo classesStudentVo : list) {
System.out.println(classesStudentVo);
}
多對多
public interface StudentMapper {
/*方式二 查詢全部*/
@Select("SELECT\n"
+ " sc.sid, s.name sname, s.age sage, c.`id` cid, c.name cname\n"
+ " FROM\n"
+ " student s, course c, stu_cr sc\n"
+ " WHERE\n"
+ " sc.sid=s.id AND sc.cid=c.id")
public abstract List<StudentCourseVo> selectAllZls();
}
vo物件
public class StudentCourseVo {
private Integer sid; //學生的主鍵id
private String sname; //學生姓名
private Integer sage; //學生年齡
private Integer cid; //課程的主鍵id
private String cname; //課程名稱
}