mybatis快速入门-注解版

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

注解

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

mybatis.xml配置文件

xml 复制代码
<mappers>
       	<!-- 引入dao层接口所在文字,只需要到包的位置,不需要指定文件-->
        <package name="dao/mapper"/>
    </mappers>

查询

dao层接口

java 复制代码
public interface BookModelDao {
    //Annotation
    //@Select():查询
    //@Insert():添加
    //@Update():修改
    //@Delete():删除
    //直接在抽象方法上注解约束,并写sql语句,调用抽象方法时,直接执行sql语句
    @Select("select * from book")
    List<BookModel>  findBookByAnnotation();
}

测试

java 复制代码
//在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();
    }

添加

dao层接口

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

测试

java 复制代码
//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 ? "添加成功" : "添加失败");
    }

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

相关推荐
paopaokaka_luck2 分钟前
[371]基于springboot的高校实习管理系统
java·spring boot·后端
以后不吃煲仔饭14 分钟前
Java基础夯实——2.7 线程上下文切换
java·开发语言
进阶的架构师15 分钟前
2024年Java面试题及答案整理(1000+面试题附答案解析)
java·开发语言
The_Ticker20 分钟前
CFD平台如何接入实时行情源
java·大数据·数据库·人工智能·算法·区块链·软件工程
大数据编程之光43 分钟前
Flink Standalone集群模式安装部署全攻略
java·大数据·开发语言·面试·flink
爪哇学长1 小时前
双指针算法详解:原理、应用场景及代码示例
java·数据结构·算法
ExiFengs1 小时前
实际项目Java1.8流处理, Optional常见用法
java·开发语言·spring
paj1234567891 小时前
JDK1.8新增特性
java·开发语言
繁依Fanyi1 小时前
简易安卓句分器实现
java·服务器·开发语言·算法·eclipse
慧都小妮子1 小时前
Spire.PDF for .NET【页面设置】演示:打开 PDF 时自动显示书签或缩略图
java·pdf·.net