栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis-注解实现CRUD

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBatis-注解实现CRUD

目录

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开发。

原因如下:

  1. 首先官方也是推荐使用 xml
  2. 注解方式拼接动态 sql 功能有限
  3. 在实际开发当中,项目都会较大,为了可维护性,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进行开发,如果想要更加深入的了解注解开发,可以去网上看一下具体的实现方式。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/631673.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号