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

mybatis增强版,增删改查

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

mybatis增强版,增删改查

查询所有
问题:列的名称和Bean的属性名不一样,导致无法封装查询结果。
解决1()不常用:取别名:

select id, brand_name as brandName,
 company_name companyName, ordered, 
 description, status from tb_brand

解决2:使用ResultMap标签手动映射结果


        
        
        
        
        
    
    
        select * from tb_brand
    

解决3:在mybatis-config.xml核心配置文件中开启驼峰命名自动映射【推荐】


        
        
    

查询详情
#{}和KaTeX parse error: Expected 'EOF', got '#' at position 8: {}的区别? #̲{}占位符在程序运行的时候会被…{}不会,${}会直接被值替换。

添加品牌
返回自增的主键id值
XML配置:

 
... ...

注解配置

@Insert("... ...)")
@Options(useGeneratedKeys = true,keyProperty = "id")
void add(Brand brand);

多条件查询

//mapper接口
List  seleteCondition(Brand brand);
映射配置文件中
 
        select *
        from tb_brand
        
            
            
                brand_name like concat('%',#{brandName},'%')
            
            
                 company_name like concat('%',#{companyName},'%')
            
            
        ;
    
 @Test
    public void seletesingle() throws IOException {
        InputStream stream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSession sqlSession = new SqlSessionFactoryBuilder().build(stream).openSession();
        BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
        Brand brand = new Brand();
        brand.setBrandName("华为");
        brand.setCompanyName("松鼠");
        for (Brand brand1 : mapper.seleteSingle(brand)) {
            System.out.println(brand1);
        }
        sqlSession.close();

    }

修改部分

//mapper接口中
void update(Brand brand);
映射配置文件中

        update tb_brand
        
            
                brand_name = #{brandName},
            
            
              company_name=#{companyName}
            
        
where id=#{id}
    
//测试类中
@Test
    public void upDate() throws IOException {
        InputStream stream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSession sqlSession = new SqlSessionFactoryBuilder().build(stream).openSession(true);
        BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
        Brand brand = new Brand();
        brand.setBrandName("良品铺子");
        brand.setCompanyName("良品铺子有限");
        brand.setId(1);
        mapper.update(brand);
        sqlSession.close();

    }

批量删除

//mapper接口中
void delectparty(@Param("arr") int[] arr);
映射配置文件中
 
        delete  from tb_brand where id in
        
            #{id}
        

    


//测试类中
 @Test
    public void select() throws IOException {
        InputStream stream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSession sqlSession = new SqlSessionFactoryBuilder().build(stream).openSession(true);
        BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
       int[] arr={1,2};

        mapper.delectparty(arr);
        sqlSession.close();

    }

参数传递
1、当参数是基本类型、包装类类型、String类型时,参数占位符中的名称可以任意写,但是一般写成变量名。
2、当参数是javabean类型,参数占位符中的名称是bean的属性名。如果参数是map集合类型,那么参数占位符中的名称就是map集合的key。
3、如果参数有多个(大于1个)或者参数是单列集合或者是数组类型,那么需要使用@Param注解给参数取名字,参数占位符中的名称就是@Param注解的值。

mybatis的工作流程图(重点)

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

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

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