亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MyBatis使用注解開發(fā)實(shí)現(xiàn)過(guò)程詳解

 更新時(shí)間:2020年03月19日 15:03:02   作者:黃大姐の老公  
這篇文章主要介紹了MyBatis使用注解開發(fā)實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

使用注解開發(fā)

1、面向接口編程

面向接口編程的根本原因:解耦,可擴(kuò)展,提高復(fù)用,分層開發(fā)中、上層不用管具體的實(shí)現(xiàn),大家都遵守共同的標(biāo)準(zhǔn),使得開發(fā)變得容易,規(guī)范性好

2、使用注解開發(fā)

注解在接口上實(shí)現(xiàn)

@Select(value = "select * from user")
List<User> getUsers();

需要在核心配置文件中綁定接口

<!--綁定接口-->
<mappers>
  <mapper class="rui.dao.UserMapper"/>
</mappers>

測(cè)試

public class UserMapperTest {
  @Test
  public void test(){
    SqlSession sqlSession = MyBatisUtils.getSqlSession();
    //底層主要應(yīng)用反射
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    List<User> users = mapper.getUsers();
    for (User user : users) {
      System.out.println(user);
    }
    sqlSession.close();
  }
}

本質(zhì):反射機(jī)制實(shí)現(xiàn)

底層:動(dòng)態(tài)代理

3、CRUD

我們可以在工具類創(chuàng)建的時(shí)候?qū)崿F(xiàn)自動(dòng)提交事務(wù)

public static SqlSession getSqlSession(){
  return sqlSessionFactory.openSession(true);
}

編寫接口,增加注解

public interface UserMapper {
  @Select(value = "select * from user")
  List<User> getUsers();

  //方法存在多個(gè)參數(shù),所有的參數(shù)前面必須加上@Param注解
  @Select("select * from user where id = #{id} or name = #{name}")
  User getUserByID(@Param("id")int id,@Param("name")String name);

  @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 = #{uid}")
  int deleteUser(@Param("uid") int id);
}

測(cè)試類

【注意:我們必須要將接口注冊(cè)綁定到我們的核心配置文件中】

關(guān)于@Param()注解

  • 基本類型的參數(shù)或者String類型,需要加上
  • 引用類型不需要加
  • 如果只有一個(gè)基本類型的化,可以忽略,但是建議都加上
  • 我們?cè)赟QL中引用的就是我們這里的@Param()中設(shè)定的屬性名

#{} ${}區(qū)別

  • {}是預(yù)編譯處理,${}是字符串替換
  • mybatis在處理#{}時(shí),會(huì)將sql中的#{}替換為?號(hào),調(diào)用PreparedStatement的set方法來(lái)賦值;mybatis在處理${}時(shí),就是把${}替換成變量的值
  • 使用#{}可以有效的防止SQL注入,提高系統(tǒng)安全性

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論