目录
1.@Select的使用
2.@Insert的使用
3.@Update的使用
4.@Delete的使用:
在我们的开发当中,MyBatis有两者开发方式
1.xml实现
2.注解
两者的优缺点:
| 优点 | 缺点 | |
| XML | 1、降低耦合,使容易扩展。 2、sql之间的关系一目了然。 3、xml配置文件比注解功能齐全。 | 配置文件配置工作量相对注解要大。 |
| 注解 | 1、代码简洁。 2、提高开发效率。 | 1.复杂sql不好用,搜集sql不方便,管理不方便,修改需重新编译。 2.项目大时,难以维护 |
那么对于这两种开发方式应该选择哪种呢?
一心同学更愿意xml开发。
原因如下:
- 首先官方也是推荐使用 xml
- 注解方式拼接动态 sql 功能有限
- 在实际开发当中,项目都会较大,为了可维护性,xml开发是最好的。
在本章中,将讲解用注解方式来实现普通的增删改查,只是讲解其简单的使用。
注意:既然使用了注解方式开发,那么也就意味着不需要Mapper.xml文件了,但需要在配置文件中指定使用注解的接口:
-
@select ()
-
@update ()
-
@Insert ()
-
@delete ()
准备:
将其设置为自动提交方式,这样我们就不需要进行手动提交了(commit)
sqlSessionFactory.openSession(true);
工具类:
package com.yixin.utils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//获取SqlSession连接
public static SqlSession getSession(boolean b){
return sqlSessionFactory.openSession(b);
}
public static SqlSession getSession(){
return getSession(true);//设置事务自动提交
}
}
1.@Select的使用
(1)查找所有博客
接口:
@Select("select * from blog")
public List selectBlogAll();
测试:
@Test
public void test(){
SqlSession sqlSession= MybatisUtils.getSession();
BlogMapper mapper= sqlSession.getMapper(BlogMapper.class);
List blogList=mapper.selectBlogAll();
for (Blog blog : blogList) {
System.out.println(blog);
}
sqlSession.close();
}
(2)通过指定id查找博客
接口:
@Select("select * from blog where id=#{id}")
public Blog getBlogById(int id);
测试:
@Test
public void testById(){
SqlSession sqlSession= MybatisUtils.getSession();
BlogMapper mapper= sqlSession.getMapper(BlogMapper.class);
Blog blog=mapper.getBlogById(3);
System.out.println(blog);
sqlSession.close();
}
2.@Insert的使用
接口:
@Insert("insert into blog(id,name,pwd) values (#{id},#{name},#{pwd})")
public int addBlog(Blog blog);
测试:
@Test
public void testInsert(){
SqlSession sqlSession= MybatisUtils.getSession();
BlogMapper mapper= sqlSession.getMapper(BlogMapper.class);
Blog blog=new Blog();
blog.setId(3);
blog.setPwd("123");
blog.setName("lisi");
int i=mapper.addBlog(blog);
System.out.println(i);
sqlSession.close();
}
3.@Update的使用
接口:
@Update("update blog set name=#{name},pwd=#{pwd} where id=#{id}")
public int updateBlog(Blog blog);
测试:
@Test
public void testUpdate(){
SqlSession sqlSession= MybatisUtils.getSession();
BlogMapper mapper= sqlSession.getMapper(BlogMapper.class);
Blog blog=new Blog();
blog.setId(3);
blog.setPwd("123");
blog.setName("李四");
int i=mapper.updateBlog(blog);
System.out.println(i);
sqlSession.close();
}
4.@Delete的使用:
接口:
@Delete("delete from blog where id=#{id}")
public int deleteBlog(int id);
测试:
@Test
public void testDelete(){
SqlSession sqlSession= MybatisUtils.getSession();
BlogMapper mapper= sqlSession.getMapper(BlogMapper.class);
int i=mapper.deleteBlog(3);
System.out.println(i);
sqlSession.close();
}
以上就是一心同学对MyBatis的增删改查注解进行的简单讲解,因为在实际开发中,大多都是采用XML进行开发,如果想要更加深入的了解注解开发,可以去网上看一下具体的实现方式。



