1. 程式人生 > 實用技巧 >ThinkPHP6之模型事件的觸發條件(詳解)

ThinkPHP6之模型事件的觸發條件(詳解)

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;    //課程名稱
}