• mybatis快速入门-注解版


    • mybatis 使用注解,简化 xml 配置,汲及到动态 sql 或是多表查询,还是使用 xml 映射文件配置编写。(企业工作中,几乎全是 xml 配置,xml 的 sql 使用注解方式少,而类引用注解方式)。

    注解

    • @Select():查询
    • @Insert():添加
    • @Update():修改
    • @Delete():删除

    mybatis.xml配置文件

    <mappers>
           	
            <package name="dao/mapper"/>
        mappers>
    
    • 1
    • 2
    • 3
    • 4

    查询

    dao层接口

    public interface BookModelDao {
        //Annotation
        //@Select():查询
        //@Insert():添加
        //@Update():修改
        //@Delete():删除
        //直接在抽象方法上注解约束,并写sql语句,调用抽象方法时,直接执行sql语句
        @Select("select * from book")
        List<BookModel>  findBookByAnnotation();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    测试

    //在main中调用
    	findBookByAnnotation();
    //方法
        public static void findBookByAnnotation() throws Exception{
    
            //引入mybatis.xml配置文件
            InputStream is = Resources.getResourceAsStream("mybatis.xml");
            //创建会话工厂
            SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is);
            //创建sql会话
            SqlSession sqlSession = ssf.openSession();
            //获取dao层sql语句所在的类
            BookModelDao mapper = sqlSession.getMapper(BookModelDao.class);
            //调用抽象方法,执行sql语句,获取返回值
            List<BookModel> list = mapper.findBookByAnnotation();
            for (BookModel book : list){
                System.out.println(book);
            }
            sqlSession.close();
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    添加

    dao层接口

    	//#{} 传入参数,名称可随意,与数据库字段名相同增加可读性
        @Insert("insert into book(name,price,num) values(#{name},#{price},#{num})")
        int insertBookByAnnotation(BookModel bookModel);
    
    • 1
    • 2
    • 3

    测试

    //main中调用
    	//创建实例
    	BookModel bookModel = new BookModel("海底世界", 32, 1);
        insertBookByAnnotation(bookModel);
    
    //方法
    public static void insertBookByAnnotation(BookModel bookModel) throws Exception{
            /*
             //引入mybatis.xml配置文件
            InputStream is = Resources.getResourceAsStream("mybatis.xml");
            //创建会话工厂
            SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is);
            //创建sql会话
            SqlSession sqlSession = ssf.openSession()
             */
            //JDBCUtil自定义封装方法:直接获取sql会话
            SqlSession sqlSession = JDBCUtil.getSqlSession();
            //接口绑定
            BookModelDao mapper = sqlSession.getMapper(BookModelDao.class);
            //调用添加方法,执行成功sql会返回执行的语句行数
            int row = mapper.insertBookByAnnotation(bookModel);
            //添加,删除,修改,都要commit,提交到数据库,查询可以省略
            //如果不提交,相当于执行在缓存池中,并不会更改数据库中的数据
            sqlSession.commit();
            System.out.println(row > 0 ? "添加成功" : "添加失败");
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    mybatis快速入门基础篇
    https://blog.csdn.net/weixin_44201223/article/details/137816871
    mybatis快速入门进阶篇
    https://blog.csdn.net/weixin_44201223/article/details/137865786
    mybatis快速入门高级篇
    https://blog.csdn.net/weixin_44201223/article/details/137912538

  • 相关阅读:
    Revit插件的【快速视图样板】视图设置保存
    React之路由的基本操作
    63. 不同路径 II java解决
    Servlet 学习笔记(一)
    LAMP和LNMP架构详解
    用 Hugging Face 推理端点部署 LLM
    华云桌面云:满足多种用户场景 畅享数字化办公新体验
    C#面对对象(用Dictionary字典实现银行取钱系统)
    MySQL——常见问题
    搭建公众号微商城+小程序微商城 企业商城系统一条龙 拖拽可视化装修模板
  • 原文地址:https://blog.csdn.net/weixin_44201223/article/details/137957384