博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(四)mybatis之mybatis初了解
阅读量:6958 次
发布时间:2019-06-27

本文共 2522 字,大约阅读时间需要 8 分钟。

前言:终于到mybatis啦!


 

Mybatis

 

         前文有提到,Hibernate采用的是全表映射的方式,而这方式恰恰使得性能变得较差( )。为了解决Hibernate的不足,一个半自动映射的框架Mybaits应运而生,之所以称之为半自动,是因为它需要手工匹配提供POJO、SQL和映射关系,而全表映射的Hibernate只需要提供POJO和映射关系即可。

         在Mybatis中,需要自己编写SQL,虽然比Hibernate配置多,但是Mybatis可以配置动态SQL,这就解决了上文提到的,在Hibernate中根据表明动态修改的问题。同时也可以优化SQL,通过配置决定你的SQL映射规则,也能支持存储过程,所以对于以下复杂的和需要优化性能SQL的查询会更加方便。而且,在注意一些规则的基础上,Mybatis可以完成自动映射功能,而无需再写任何的映射规则。

①    这个xml文件是为了配置数据库以及其他的基础配置。

 

         这个就是Mybatis的基础配置文件。

② 这个xml文件,主要是给出SQL。

 

         这里使用的SQL列名和POJO的属性名保持一致,因为我们给出了SQL但是并没有给出映射规则,而Mybatis在这个时候会自动提供映射规则,所以可以省去配置映射规则的工作。

 

③ 再者,我们还需要一个接口。注意这仅仅是一个接口,无需实现类。

public interface UserMapper{    public User getUser(int id);}

 

         这里的接口是用于Mybatis映射并操作数据库用的。对应的是②中mapper标签的namespace变量。

④ 为了使用Mybati,我们还需要建立SqlSessionFactory。

public class MyBatisUtil{    private static SqlSessionFactory sqlSessionFactory = null;    public static SqlSessionFactory getSqlSessionFactory(){        InputStream inputStream = null;        if(sqlSessionFactory==null){            try{                String resource = "mybatis_config.xml";                //引入数据库配置资源                sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream(resource));                //用数据库配置的资源作为依据,创建SqlSessionFactory            }catch(Exception ex){                System.err.println(ex.getMessage());                ex.printStackTrack();            }        }        return sqlSessionFactory;    }}

 

应用Mybatis之前的,引用数据库的配置文件,以达到连接到数据库,并且可以使用Mybatis来操作数据。

⑤ 用Mybatis实现JDBC的功能操作数据的功能(可参考JDBC篇的例子: )

public class MyBatisExample{    public static void main(String[] args){        SqlSession sqlSession = null;        try{            sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();            //通过MyBatisUtil配置好的SessionFactory生产Session            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);            User user = userMapper.getUser(1);            System.err.println("userName =>"+user.getUserName());        }finally{            sqlSession.close();        }    }}

 

         这样便完成了Mybatis的代码编写工作,SQL和映射规则都在XML里面进行了分离,而Mybatis更为灵活。既可以自由书写SQL,定义映射规则。此外,Mybatis提供接口编程的映射只需要一个接口和映射文件便可以运行。

 

转载于:https://www.cnblogs.com/NYfor2018/p/9093472.html

你可能感兴趣的文章
西数企业级市场大救星:充氦硬盘
查看>>
中国人工智能学会通讯——人工智能在各医学亚专科的发展现状及趋势 1.5 人工智能在各医学亚专科应用的局限性...
查看>>
《VMware Virtual SAN权威指南》一1.4 Virtual SAN简介
查看>>
ClassFlow推出全新课堂活动轨迹功能
查看>>
高性能计算在电网技术中的应用
查看>>
亿级下ApsaraDB HBase Phoenix秒级内RT在大搜车实践
查看>>
EMC高管:戴尔Nutanix一体机与EMC超融合产品之间不存在竞争
查看>>
十分钟看懂时序数据库II——预处理
查看>>
O2O探秘:实体店背后的科学
查看>>
《构建实时机器学习系统》一3.2 Pandas 的安装
查看>>
创新驱动转型发展 江波龙科技携手IBM构建物联网云数据服务系统
查看>>
揭秘eBay四大系统 从行为数据中寻找价值
查看>>
Google 404页面暗藏漏洞,可泄漏服务器内部信息
查看>>
排除网络故障的十大真理
查看>>
辉瑞健康药物部联手易传媒 打造大数据管理平台
查看>>
CIO们从云中学到的那些经验教训
查看>>
混合云和多云管理不再难:基础架构即代码来帮忙
查看>>
大数据能否解决城市所面临的环境问题
查看>>
数据库安全需要遵循的8项最佳实践
查看>>
关于HTTP推送的一些问题
查看>>