Mybatis核心配置文件详解

浅浅的花香味﹌ 2023-09-25 19:30 93阅读 0赞
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <!--java.util.Properties类。是一个Map集合。key和value都是String类型-->
  7. <!--在properties标签中可以配置很多属性-->
  8. <!--<properties>-->
  9. <!--这是其中的一个属性-->
  10. <!--<property name="属性名" value="属性值"/>-->
  11. <!--<property name="jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
  12. <property name="jdbc.url" value="jdbc:mysql://localhost:3306/powernode"/>
  13. <property name="jdbc.username" value="root"/>
  14. <property name="jdbc.password" value="root"/>-->
  15. <!--</properties>-->
  16. <!--resource,一定是从类路径下开始查找资源-->
  17. <properties resource="jdbc.properties" />
  18. <!--从绝对路径当中加载资源。绝对路径怎么写?file:///路径-->
  19. <!--<properties url="file:///d:/jdbc.properties" />-->
  20. <!--default表示默认使用的环境。-->
  21. <!--默认环境什么意思?当你使用mybatis创建SqlSessionFactory对象的时候,没有指定环境的话,默认使用哪个环境。-->
  22. <environments default="powernodeDB">
  23. <!--其中的一个环境。连接的数据库是powernode-->
  24. <!--一般一个数据库会对应一个SqlSessionFactory对象。-->
  25. <!--一个环境environment会对应一个SqlSessionFactory对象-->
  26. <environment id="powernodeDB">
  27. <!--
  28. transactionManager标签:
  29. 1.作用:配置事务管理器。指定mybatis具体使用什么方式去管理事务。
  30. 2.type属性有两个值:
  31. 第一个:JDBC: 使用原生的JDBC代码来管理事务。
  32. conn.setAutoCommit(false);
  33. ....
  34. conn.commit();
  35. 第二个:MANAGED:mybatis不再负责事务的管理,将事务管理交给其它的JEE(JavaEE)容器来管理。例如:spring
  36. 3. 大小写无所谓。不缺分大小写。但是不能写其他值。只能是二选一:
  37. jdbc、managed
  38. 4. 在mybatis中提供了一个事务管理器接口:Transaction
  39. 该接口下有两个实现类:
  40. JdbcTransaction
  41. ManagedTransaction
  42. 如果type="JDBC",那么底层会实例化JdbcTransaction对象。
  43. 如果type="MANAGED",那么底层会实例化ManagedTransaction
  44. -->
  45. <transactionManager type="JDBC"/>
  46. <!--
  47. dataSource配置:
  48. 1.dataSource被称为数据源。
  49. 2.dataSource作用是什么?为程序提供Connection对象。(但凡是给程序提供Connection对象的,都叫做数据源。)
  50. 3.数据源实际上是一套规范。JDK中有这套规范:javax.sql.DataSource(这个数据源的规范,这套接口实际上是JDK规定的。)
  51. 4.我们自己也可以编写数据源组件,只要实现javax.sql.DataSource接口就行了。实现接口当中所有的方法。这样就有了自己的数据源。
  52. 比如你可以写一个属于自己的数据库连接池(数据库连接池是提供连接对象的,所以数据库连接池就是一个数据源)。
  53. 5.常见的数据源组件有哪些呢【常见的数据库连接池有哪些呢】?
  54. 阿里巴巴的德鲁伊连接池:druid
  55. c3p0
  56. dbcp
  57. ....
  58. 6. type属性用来指定数据源的类型,就是指定具体使用什么方式来获取Connection对象:
  59. type属性有三个值:必须是三选一。
  60. type="[UNPOOLED|POOLED|JNDI]"
  61. UNPOOLED:不使用数据库连接池技术。每一次请求过来之后,都是创建新的Connection对象。
  62. POOLED:使用mybatis自己实现的数据库连接池。
  63. JNDI:集成其它第三方的数据库连接池。
  64. JNDI是一套规范。谁实现了这套规范呢?大部分的web容器都实现了JNDI规范:
  65. 例如:Tomcat、Jetty、WebLogic、WebSphere,这些服务器(容器)都实现了JNDI规范。
  66. JNDI是:java命名目录接口。Tomcat服务器实现了这个规范。
  67. -->
  68. <dataSource type="POOLED">
  69. <property name="driver" value="${jdbc.driver}"/>
  70. <property name="url" value="${jdbc.url}"/>
  71. <property name="username" value="${jdbc.username}"/>
  72. <property name="password" value="${jdbc.password}"/>
  73. <!--提醒:正常使用连接池的话,池中有很多参数是需要设置的。设置好参数,可以让连接池发挥的更好。事半功倍的效果。-->
  74. <!--具体连接池当中的参数如何配置呢?需要反复的根据当前业务情况进行测试。-->
  75. <!--poolMaximumActiveConnections:连接池当中最多的正在使用的连接对象的数量上限。最多有多少个连接可以活动。默认值10-->
  76. <property name="poolMaximumActiveConnections" value="10"/>
  77. <!--每隔2秒打印日志,并且尝试获取连接对象-->
  78. <property name="poolTimeToWait" value="2000"/>
  79. <!--强行让某个连接空闲,超时时间的设置-->
  80. <property name="poolMaximumCheckoutTime" value="10000"/>
  81. <!--最多的空闲数量-->
  82. <property name="poolMaximumIdleConnections" value="5"/>
  83. </dataSource>
  84. </environment>
  85. <!--这是mybatis的另一个环境,也就是连接的数据库是另一个数据库mybatis-->
  86. <environment id="mybatisDB">
  87. <transactionManager type="JDBC"/>
  88. <dataSource type="POOLED">
  89. <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
  90. <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
  91. <property name="username" value="root"/>
  92. <property name="password" value="root"/>
  93. </dataSource>
  94. </environment>
  95. </environments>
  96. <mappers>
  97. <mapper resource="CarMapper.xml"/>
  98. </mappers>
  99. </configuration>

发表评论

表情:
评论列表 (有 0 条评论,93人围观)

还没有评论,来说两句吧...

相关阅读