mybatis数据库
什么是MyBatis
MyBatis是一个开源的持久层框架,它对JDBC进行了封装,简化了SQL的开发。MyBatis允许用户将SQL语句与Java对象进行绑定映射,参数与结果集处理都可以使用Java编写,提高了代码的可维护性和阅读性。
MyBatis的优点
MyBatis有很多优点,比如:
- 简单易用: MyBatis的学习曲线较低,上手相对简单。
- 灵活性: MyBatis允许用户直接编写SQL语句,可以对SQL进行更细致的控制,对于复杂的业务需求具备更强的灵活性和扩展性。
- 易于维护:MyBatis将SQL语句与Java代码隔离开,维护起来更加方便。在SQL表达式调整或者更改数据库字段的情况下,Java程序员不需要修改程序代码,仅仅修改SQL语句就可以了。
- 高效性:MyBatis与Hibernate等ORM工具相比,其实现逻辑更加轻量级。MyBatis是一个简洁的工具,直接编写sql语句,性能上具备优势。
- 可扩展性: MyBatis框架具有高度的可扩展性,用户可以通过自定义函数、自定义类型、自定义插件等几种方式来扩展。
MyBatis的体系结构
MyBatis可以分为三个层次:API、核心配置和SQL映射文件。
API:主要包括SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper等核心类,提供了对数据库CRUD操作的接口。
核心配置:包括全局配置文件和映射文件两个部分。全局配置文件主要包括dataSource、TransactionManager、plugins、typeAliases等配置,映射文件主要包含了具体的sql语句以及映射关系。
SQL映射文件:用于存放SQL语句以及映射关系的文件,映射关系将Java对象与数据库中的记录进行了映射。
MyBatis的配置
MyBatis的配置主要包括以下几个部分:
- 数据源配置:驱动类型、数据库名称、连接地址、账号和密码。
- 全局属性配置:默认自动提交、缓存类型、日志实现等。
- 类型别名配置:Java类型与JDBC类型的对应关系。
- Mapper映射器配置:包含了mapper.xml文件的位置、使用的缓存方式等。
- 自定义插件配置:通过自定义插件可以对MyBatis在执行SQL的过程中进行拦截,可以实现自定义的功能。
MyBatis的使用
MyBatis的使用分为以下几个步骤:
- 配置数据源和全局属性,创建SqlSessionFactory对象。
- 创建SqlSession对象,通过SqlSessionFactory.openSession()方法创建。
- 通过SqlSession执行SQL语句,并获取结果。
- 关闭SqlSession对象。
示例代码如下:
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();try { UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = userMapper.selectByPrimaryKey(1L); System.out.println(user.toString());} finally { sqlSession.close();}