MyBatis—使用注解开发
我们的征途是星辰大海,而非人间烟尘

利用注解开发
-
mybatis最初配置信息是基于 XML ,映射语句(SQL)也是定义在 XML 中的。而到MyBatis 3提供了新的基于注解的配置。不幸的是,Java 注解的的表达力和灵活性十分有限。最强大的 MyBatis 映射并不能用注解来构建 -
sql 类型主要分成 : -
- @select ()
- @update ()
- @Insert ()
- @delete ()
-
注意:利用注解开发就不需要mapper.xml映射文件了 . -
1、我们在我们的接口中添加注解 -
@Select("select id,name,pwd password from user")
public List<User> getAllUser();
-
2、在mybatis的核心配置文件中注入 -
<!--使用class绑定接口-->
<mappers>
<mapper class="com.qifei.mapper.UserMapper"/>
</mappers>
-
3、我们去进行测试 -
@Test
public void testGetAllUser() {
SqlSession session = MybatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
List<User> users = mapper.getAllUser();
for (User user : users){
System.out.println(user);
}
session.close();
}
注解增删改
改造MybatisUtils工具类的getSession( ) 方法,重载实现。
public static SqlSession getSession(){
return getSession(true);
}
关于@Param
@Param注解用于给方法参数起一个名字。以下是总结的使用原则:
- 在方法只接受一个参数的情况下,可以不使用@Param。
- 在方法接受多个参数的情况下,建议一定要使用@Param注解给参数命名。
- 如果参数是 JavaBean , 则不能使用@Param。
- 不使用@Param注解时,参数只能有一个,并且是Javabean。
#与$的区别
-
#{} 的作用主要是替换预编译语句(PrepareStatement)中的占位符? 【推荐使用】 INSERT INTO user (name) VALUES (#{name});
INSERT INTO user (name) VALUES (?);
-
${} 的作用是直接进行字符串替换 INSERT INTO user (name) VALUES ('${name}');
INSERT INTO user (name) VALUES ('qifei');
|