网站规划说明书范文,蜘蛛不抓取网站的原因,wordpress设置文章图片,正规品牌网站设计文章目录 核心配置文件内容多环境事务管理器对数据源的剖析JNDIPOOLED和UNPOOLED的区别配置具体的数据库连接池参数 propertiesproperties和mapper标签的url属性 核心配置文件内容
?xml version1.0 encodingUTF-8 ?
!DOCTYPE configura… 文章目录 核心配置文件内容多环境事务管理器对数据源的剖析JNDIPOOLED和UNPOOLED的区别配置具体的数据库连接池参数 propertiesproperties和mapper标签的url属性 核心配置文件内容
?xml version1.0 encodingUTF-8 ?
!DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd--- 这是个dtd文件是个约束约束根标签里能写什么子标签有哪些孙子标签里又能有哪些标签里面又能有哪些属性属性里面又能有那些值---configurationenvironments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver valuecom.mysql.cj.jdbc.Driver/property nameurl valuejdbc:mysql://localhost:3306/demo/property nameusername valueroot/property namepassword valueroot//dataSource/environment/environmentsmappersmapper resourceCarMapper.xml//mappers
/configuration多环境
environments/environments表示的是里面能配置多个环境 environment /environment表示其中的一个环境
而如上的核心配置文件中的那个唯一环境表示的是连接的数据库是demo可以后面再配置一个文件去连接另一个数据库。一个环境对应一个数据库而一个数据库对应一个SqlSessionFactory对象即一个环境对应一个SqlSessionFactory对象
而后面的default表示默认使用的环境 默认环境又是啥
就是当你使用mybatis创建SqlSessionFactry对象的时候没有指定的环境的话默认使用哪个环境 创建SqlSessionFactory有两种方式一种是直接用创建好的SqlSessionBuilder对象sqlSessionFactoryBuilder.build(Resources.getResourceAsStream(mybatis-config.xml));创建
还有一种build方法就是在上述build方法后面参数加一个指定的environment属性值这样就是可以指定用的environment而不是用default里面的默认环境
事务管理器
看完了坏境的“外围”配置接下来就是环境里面的“东西”了 transactionManager标签
作用配置事务管理器。指定mybatis具体使用什么方式去管理事务。type属性有两个值
第一个JDBC主要使用原生的JDBC代码来管理事务。
conn.setAutoCommit(false)
....
conn.commite();第二个MANAGEDmybatis不再负责事务的管理将事务管理交给其他的JEEJavaEE容器来管理。例如spring
大小写无所谓不区分大小写但是不能写其他值只能是二选一。jdbc和managed在mybatis中提供了一个事务管理器接口Transaction 该接口下有两个实现类jdbcTransaction和ManagedTransaction 如果type“JDBC”那么底层会实例化JdbcTransaction对象。 如果type“MANAGED”那么底层会实例化ManagedTransaction
对数据源的剖析
dataSource配置
dataSource被称为数据源。dataSource作用是什么为程序提供Connection对象但凡是给程序提供Connection对象的都叫做数据源。数据源实际上是一套规范JDK中有这套规范javax.sql.DataSource(这个数据源的规范这套接口实际上是JDK规定的我们自己也可以编写数据源只要实现javax.sql.DataSource接口就行了。实现接口当中所有的方法这样就有了自己的数据源 比如你可以写一个自己的数据库连接池数据库连接池是提供连接对象的所有数据库连接池就是一个数据源 常见的数据源组件有哪些呢常见的数据库连接池有哪些呢
阿里巴巴的德鲁伊连接池druid、c3p0、dbcp
type属性用来指定数据源的类型就是指定具体使用什么方式来获取Connection对象type属性有三个值必须是三选一UNPOOLED|POOLED|JNDI
UNPOOLED不适用数据库连接池技术。每一次请求过来之后都是创建新的Connection对象。POOLED使用mybatis自己实现的数据库连接池JNDI集成其他第三方的数据库连接池。
JNDI
JNDI是一套规范谁实现了这套规范呢大部分的web容器Tomcat、Jetty、WebLogic、WebSphere都实现了JNDI规范
JNDI是java命名目录接口Tomcat实现了这个规范
这个数据源实现是为了能在如EJB或应用服务器这类容器中使用容器可以集中或在外部配置数据源然后放置一个NDI上下文的数据源引用。并且这种数据源配置只需要两个属性。
POOLED和UNPOOLED的区别
连接池优点
每一次获取连接都从池中拿效率高因为每一次只能从池中拿所以连接对象的创建数量是可控的。
配置具体的数据库连接池参数
正常使用连接池的话池中有很多参数是需要设置的可以让连接池发挥的更好事半功倍的效果。 具体连接池当中的参数如何配置呢需要反复的更具当前业务情况进行测试 poolMaximumActiveConnections连接池当中最多的正在使用的连接对象的数量上限最多有多少个连接可以活动默认值10 poolTimeToWait每隔多少时间打印日志并且尝试获取连接对象后面value值设置时间单位毫秒 poolMaximumCheckoutTime强行让某个连接空闲超时时间设置。后面value值设置时间单位毫秒 poolMaximumIdleConnections设置最多的空闲数量
properties
是一个可以在根标签中可以加入的子标签
在properties中可以配置很多属性 把一些必须的属性值放在里面设置后面调用它的属性名就行方便后续的更改 也可以把必须的属性值单独拉到根路径下去配置再利用这个标签将值都get到
properties和mapper标签的url属性
和之前学的差不多就是要多加一个file///