- mybatis 使用注解,简化 xml 配置,汲及到动态 sql 或是多表查询,还是使用 xml 映射文件配置编写。(企业工作中,几乎全是 xml 配置,xml 的 sql 使用注解方式少,而类引用注解方式)。
注解
- @Select():查询
- @Insert():添加
- @Update():修改
- @Delete():删除
mybatisxml_6">mybatis.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