使用注解開發
1.面向介面編程
我們都知道面向物件編程,也學習過介面,但在真正開發中,很多時候我們會選擇面向介面編程,其根本原因是可以解耦
關于介面的理解: 介面應是定義(規范,約束)與實作(名實分離的原則)的分離,
2.使用注解開發
Mybatis使用注解開發的底層原理是使用了反射和動態代理
1.注解在介面上實作
@Select("select * from user")
List<User> getUsers();
2.需要在核心組態檔中系結介面
<!--系結介面-->
<mappers>
<mapper />
</mappers>
3.測驗:

綜上:注解開發 本質用反射機制實作,底層使用動態代理
3.使用注解完成CRUD
首先我們可以在工具類創建的時候實作自動提交事務!
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession(true);
}

撰寫介面,增加注解
public interface UserMapper {
@Select("select * from user")
List<User> getUsers();
//方法存在多個引數,所有的引數前面必須加上@Param注解
@Select("select * from user where id = #{id}")
User getUserById(@Param("id") int id);
@Insert("insert into user(id,name,pwd) values (#{id},#{name},#{password})")
int addUser(User user);
@Update("update user set name = #{name},pwd=#{password} where id=#{id}")
int updateUser(User user);
@Delete("delete from user where id=#{id}")
int deleteUser(int id);
}
測驗

【注意:我們必須要將介面注冊系結到我們的核心組態檔中!】
關于@Param注解
- 基本型別的引數或者String型別,需要加上
- 參考型別不需要加
- 如果只有一個基本型別引數可以忽略,但是建議加上!
- 我們在SQL中參考的引數名就是@Param注解括號里面的東西
總結:如果mapper介面里面的引數有多個且不是參考型別,要加上@Param注解
還有一個#{}是預編譯的sql,能防止sql注入
${}不能防止sql注入,不建議使用
這篇文章的原始碼在Mybatis-study工程的mybatis-05模塊下!,后面會給出碼云地址,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/282065.html
標籤:其他
