发表于: 2017-08-22 23:29:46
5 1182
咸鱼了一周,惭愧。。
今天了解了Mybatis的基本用法,学习了配置文件的编写方法。
MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
实现基本的数据库操作功能的流程如下:
- 1.编写xml文件,配置运行环境。
- 2.通过IO流载入xml文件,创建SqlSessionFactory对象(会话工厂)。
- 3.由会话工厂,创建SqlSession对象(会话)。
- 4.通过SqlSession对象,操作数据库。注意最后需要关闭SqlSession对象和IO流。
一、xml配置文件
Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。
1.MybatisConfig.xml
即Mybatis的全局配置文件,主要用于配置Mybatis的运行环境(事务管理器、数据源等)。
下面通过一个简单的示例(代码链接),来简要说明这个配置文件。
- 1.头文件(1~2行):第1行是xml声明,声明该xml文件的字符集为UTF-8;第2行是DTD文件类型声明(外部DTD),用于约束该xml文件的结构。引用的DTD约束的格式为<!DOCTYPE 根元素 SYSTEM "DTD文件路径">(本地文件),或<!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD文件URL">(公共文件),这里是约束configuaration元素的结构为链接中的DTD文件所约束的那样。
- 2.properties元素(5行):这里是用于引入外部properties文件。其实还可以在properties元素中定义一些属性,但不建议这么做,最好还是把所有属性放在外部文件中。
- 3.environments元素(7~20行):用于配置要创建的SqlSessionFactory实例的环境。每个数据库对应一个SqlSessionFactory实例,每个SqlSessionFactory实例只能选择一种环境(environments元素中可以定义多个environment元素)。
- ·第7行:默认的环境id。
- ·第8行:定义一个environment元素,并设定环境id。
- ·第10行:事务管理器的配置,可选"JDBC"或"MANAGED"。【注:Spring+Mybatis不需要配置事务管理器,因为Spring会用自带管理器覆盖这些配置】
- ·"JDBC":直接使用了JDBC的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作用域。
- ·"MANAGED":不提交或回滚一个连接,而是让容器来管理事务的整个生命周期,默认情况下它会关闭连接。
- ·第12~18行:数据源的配置。第12行是配置数据源类型,内置了"UNPOOLED","POOLED"和"JNDI";第13~18行是设定数据源。
- ·"UNPOOLED":不使用数据库连接池。只有driver,url,username,password,defaultTransactionIsolationLevel五个属性,其中最后一个属性是指默认的连接事务隔离级别。
- ·"POOLED":使用数据库连接池。除了"UNPOOLED"中的5个属性之外,还多了一些连接池属性,比如poolMaximumActiveConnections(最大活动连接数)、poolMaximumIdleConnections(最大空闲连接数)等。
- ·"JNDI":为了能在如EJB或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个JNDI上下文的引用。只需"initial_context"和"data_source"两个属性。
- ·另外,也可以将type设置为一个数据源类,使用任何第三方数据源。
- 4.mappers元素(22~24行):用于设定映射文件路径。可以通过classpath相对路径、文件系统绝对路径设定映射文件,还可以通过类名、包名设定映射接口。
明天先学习映射文件的写法,再编写Mybatis数据操作类并测试。
评论