-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
202 lines (196 loc) · 23.1 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
<!DOCTYPE html><html lang="zh-CN"><head><meta name="generator" content="Hexo 3.9.0"><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"><meta content="yes" name="apple-mobile-web-app-capable"><meta content="black-translucent" name="apple-mobile-web-app-status-bar-style"><meta content="telephone=no" name="format-detection"><meta name="description" content="欢迎来到晋的博客,本博客用来收录平时学习笔记,欢迎访问"><title>dbcp,c3p0,druid简单实例(包含配置介绍) | ZJ_BLOG</title><link rel="stylesheet" type="text/css" href="/css/style.css?v=0.0.1"><link rel="stylesheet" type="text/css" href="//cdn.bootcss.com/normalize/7.0.0/normalize.min.css"><link rel="stylesheet" type="text/css" href="//cdn.bootcss.com/pure/1.0.0/pure-min.css"><link rel="stylesheet" type="text/css" href="//cdn.bootcss.com/pure/1.0.0/grids-responsive-min.css"><link rel="stylesheet" href="//cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css"><script type="text/javascript" src="//cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script><link rel="Shortcut Icon" type="image/x-icon" href="/favicon.ico"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="apple-touch-icon-precomposed" href="/apple-touch-icon.png"><script type="text/javascript" src="http://p18j2ow6f.bkt.clouddn.com/static/css/instantclick.min.js"></script><script>InstantClick.init();
InstantClick.on('change', function (isInitialLoad) {
if (isInitialLoad === false) {
if (typeof MathJax !== 'undefined') // support MathJax
MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
if (typeof prettyPrint !== 'undefined') // support google code prettify
prettyPrint();
if (typeof _hmt !== 'undefined') // support 百度统计
_hmt.push(['_trackPageview', location.pathname + location.search]);
if (typeof ga !== 'undefined') // support google analytics
ga('send', 'pageview', location.pathname + location.search);
}
});
</script><link rel="alternate" type="application/atom+xml" href="/atom.xml"></head><body><div class="body_container"><div id="header"><div class="site-name"><h1 class="hidden">dbcp,c3p0,druid简单实例(包含配置介绍)</h1><a id="logo" href="/.">ZJ_BLOG</a><p class="description">Silence的博客</p></div><div id="nav-menu"><a class="current" href="/."><i class="fa fa-home"> 首页</i></a><a href="/archives/"><i class="fa fa-archive"> 归档</i></a></div></div><div class="pure-g" id="layout"><div class="pure-u-1 pure-u-md-3-4"><div class="content_container"><div class="post"><h1 class="post-title">dbcp,c3p0,druid简单实例(包含配置介绍)</h1><div class="post-meta">Feb 13, 2017<span> | </span><span class="category"><a href="/categories/数据库连接池/">数据库连接池</a></span></div><div class="post-content"><h1 id="三种连接池的配置-dbcp、c3p0、druid"><a href="#三种连接池的配置-dbcp、c3p0、druid" class="headerlink" title="三种连接池的配置:dbcp、c3p0、druid"></a><strong>三种连接池的配置:dbcp、c3p0、druid</strong></h1><a id="more"></a>
<h1 id="dbcp"><a href="#dbcp" class="headerlink" title="dbcp"></a>dbcp</h1><h2 id="1-硬编码方式"><a href="#1-硬编码方式" class="headerlink" title="1.硬编码方式"></a>1.硬编码方式</h2><pre><code> @Test
public void testDBCPCode() {
//BasicDataSource实现接口DataSource DBCP连接池核心类
BasicDataSource dataSouce = new BasicDataSource();
dataSouce.setDriverClassName("com.mysql.jdbc.Driver"); //驱动
dataSouce.setUrl("jdbc:mysql://127.0.0.1:3306/test"); //数据库连接字符串
dataSouce.setUsername("root"); //数据库用户名
dataSouce.setPassword("anyao112233"); //数据库密码
dataSouce.setInitialSize(5); //设置初始化连接数
dataSouce.setMaxTotal(5); //设置最大连接数
dataSouce.setMaxWaitMillis(10000); //设置申请连接最大等待时间
dataSouce.setRemoveAbandonedTimeout(60); //设置空闲连接时长 超过就回收没用的连接
Connection connection = null;
try {
connection = dataSouce.getConnection();
// connection.prepareStatement("update student set f_name = 'fuk' where f_id = 10").executeUpdate();
System.out.println(connection.getClass() + "\n" + connection.getMetaData() + "\n");
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
</code></pre><h2 id="2-配置方式"><a href="#2-配置方式" class="headerlink" title="2.配置方式"></a>2.配置方式</h2><p> <em>文件jdbc.properties</em></p>
<pre><code>#驱动
driverClassName=com.mysql.jdbc.Driver
#数据库连接地址
url=jdbc:mysql://127.0.0.1:3306/test?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8
#用户名
username=root
#密码
password=anyao112233
#初始化连接
initialSize=10
#连接池的最大数据库连接数。设为0表示无限制
maxTotal=50
##最小空闲连接
minIdle=10
#最大空闲数,数据库连接的最大空闲数。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制
#空闲连接:意思就是连接了数据库而最大的没有向数据库发送请求的连接
maxIdle=50
#超过时间限制,回收没有用(废弃)的连接(默认为 300秒) 以秒为单位
removeAbandonedTimeout=60
#超过removeAbandonedTimeout时间后,是否进行没用连接(废弃)的回收(默认为false,调整为true)
removeAbandoned=true
#最大建立连接等待时间 超过此时间将异常 设为-1表示无限制 以毫秒为单位
maxWaitMillis=60000
#在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. 如果设置为非正数,则不运行空闲连接回收器线程(每60秒运行一次空闲连接回收器)
timeBetweenEvictionRunsMillis=60000
#连接在池中保持空闲而不被空闲连接回收器线程(如果有)回收的最小时间值,单位毫秒(池中的连接空闲30s后被回收,默认值就是30分钟)
minEvictableIdleTimeMillis=300000
@Test
public void testDBCPXML() throws Exception {
Connection connection = null;
try {
Properties prop = new Properties();
InputStream inStream = this.getClass().getClassLoader()
.getResourceAsStream("jdbc.properties");
prop.load(inStream);
System.out.println(prop);
// 根据prop配置,直接创建数据源对象(BasicDataSourceFactory工厂)
DataSource dataSouce = BasicDataSourceFactory.createDataSource(prop);
// 获取连接
connection = dataSouce.getConnection();
// connection.prepareStatement("delete from student where f_id=1").executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
</code></pre><hr>
<h1 id="C3P0"><a href="#C3P0" class="headerlink" title=" C3P0"></a><strong> C3P0</strong></h1><h2 id="1-硬编码方式-1"><a href="#1-硬编码方式-1" class="headerlink" title="1.硬编码方式"></a>1.硬编码方式</h2><pre><code>@Test
public void testC3P0Code() throws Exception {
// 创建连接池核心工具类
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setUser("root");
dataSource.setPassword("anyao112233");
dataSource.setInitialPoolSize(3);//连接池初始化时创建的连接数
dataSource.setMaxPoolSize(6);//连接池中拥有的最大连接数
dataSource.setMaxIdleTime(1000);
Connection connection = null;
try {
connection = dataSource.getConnection();
connection.prepareStatement("delete from student where f_name like '%name%'").executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
</code></pre><h2 id="2-配置方式-1"><a href="#2-配置方式-1" class="headerlink" title="2.配置方式"></a>2.配置方式</h2><pre><code><c3p0-config>
<default-config>
<property name="user">root</property>
<property name="password">anyao112233</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
</default-config>
<named-config name="myApp">
<property name="user">root</property>
<property name="password">anyao112233</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
</named-config>
</c3p0-config>
@Test
public void testC3P0XML() throws Exception {
// 创建c3p0连接池核心工具类
// 自动加载src下c3p0的配置文件【c3p0-config.xml】
//如果要使用default-config无需传参数,
//如果要使用named-config里面配置初始化数据源,则只要使用一个带参数的ComboPooledDataSource构造器就可以了
DataSource dataSource = new ComboPooledDataSource("myApp");
Connection connection = null;
try {
connection = dataSource.getConnection();
connection.prepareStatement("delete from student where f_id = 20").executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
</code></pre><hr>
<h1 id="DRUID"><a href="#DRUID" class="headerlink" title=" DRUID"></a><strong> DRUID</strong></h1><h2 id="1-硬编码方式-2"><a href="#1-硬编码方式-2" class="headerlink" title="1.硬编码方式"></a>1.硬编码方式</h2><h2 id="2-配置方式-2"><a href="#2-配置方式-2" class="headerlink" title="2.配置方式"></a>2.配置方式</h2></div><script type="text/javascript" src="/js/share.js?v=0.0.1" async></script><a class="article-share-link" data-url="http://zj2626.github.io/2017/02/13/2017_three_pools/" data-id="ckm3iqts3008nfcuj2r5bmtus" data-qrcode="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMYAAADGCAAAAACs8KCBAAACMklEQVR42u3aQW7DMAxE0dz/0u42BRr7D8kGkPS9KlI38nOBgSjy9cLX9Xa9f8Lvv7/z/pOxS4YMGcsyrturxiCrfHr0T+vef4MMGTJOYNxHIX9oHrWdWJchQ4YMEoJ8efJwfC0ZMmTI4IF7v4Ej4PR1yJAhQwYpYtO/4mFKiuexWlyGDBkLMnh5+f2f/6W/IUOGjKUYV3iR1iOJ0c4z/PGdMmTI2JrBA45vHNONIAc/tB9kyJCxNaM27kC2j+RYbWq8TIYMGSczOIYft6XHeSSyZciQsTcjLVb5MmljErUqP/1WhgwZBzD4Vo/fw4vVNL6DWlyGDBnbMfoPWqsu08gulq8yZMhYkMGP1dL44590tpW/OrEyZMjYlFEb/Ko9Ii9i0zEOGTJknMCoBR9ZmAxtcOpD41OGDBmbMtIw7R+W1V5BXIXLkCFjI0anfZjemY5oDJwjypAhYwtGLRD7QVxrSwy8RRkyZCzI4BmcDo3xwjU9F3xoZMqQIWNTxlRZy4cq0obBwPyIDBkyFmfUWoxBNTzUEnh4TTJkyDiGMTWuSqI5LWXRsIUMGTIOY/SP76caD2gtGTJkbMq4wmuq0E1bDvH/QYYMGRsx0pirjbESdlqypptUGTJkrM7ohGwtdsmBWhy4MmTIOICRBh8fjOBB3Ip+GTJkyMAxyjGdUA5O72TIkCGjFLVpkwBRZciQcQCDFLG1Zmf6iHw4TIYMGecw+oMRHJluFqcGO2TIkLEs4wes77wqCJZ5lQAAAABJRU5ErkJggg==">分享</a><div class="tags"><a href="/tags/C3P0/">C3P0</a><a href="/tags/DBCP/">DBCP</a><a href="/tags/DRUID/">DRUID</a></div><div class="post-nav"><a class="pre" href="/2017/02/14/2017_c3p0/">c3p0参数解释(转载)</a><a class="next" href="/2017/02/12/2017_ljc/">数据库连接池作用(转载)</a></div><div id="container"></div><link rel="stylesheet" href="/css/default.css?v=0.0.1"><script src="/js/gitment.browser.js?v=0.0.1"></script><script>var gitment = new Gitment({
owner: 'zj2626',
repo: 'zj2626.github.io',
oauth: {
client_id: '22769c7edffa5f05d10d',
client_secret: '7bac8fc03397cb64c178fbdfe3a01d2abb459704',
},
})
gitment.render('container')
</script></div></div></div><div class="pure-u-1 pure-u-md-1-4"><div id="sidebar"><div class="widget"><div class="search-form"><input id="local-search-input" placeholder="Search" type="text" name="q" results="0"><div id="local-search-result"></div></div></div><div class="widget"><div class="widget-title"><i class="fa fa-folder-o"> 分类</i></div><ul class="category-list"><li class="category-list-item"><a class="category-list-link" href="/categories/BUG解决/">BUG解决</a><span class="category-list-count">2</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/DOM操作/">DOM操作</a><span class="category-list-count">6</span><ul class="category-list-child"><li class="category-list-item"><a class="category-list-link" href="/categories/DOM操作/XML/">XML</a><span class="category-list-count">6</span></li></ul></li><li class="category-list-item"><a class="category-list-link" href="/categories/Git/">Git</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/JDBC/">JDBC</a><span class="category-list-count">8</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/Linux/">Linux</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/java虚拟机/">java虚拟机</a><span class="category-list-count">9</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/java语言基础/">java语言基础</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/python/">python</a><span class="category-list-count">2</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/多线程/">多线程</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/数据库/">数据库</a><span class="category-list-count">4</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/数据库连接池/">数据库连接池</a><span class="category-list-count">3</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/数据结构和算法/">数据结构和算法</a><span class="category-list-count">16</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/机器学习/">机器学习</a><span class="category-list-count">2</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/框架相关/">框架相关</a><span class="category-list-count">6</span><ul class="category-list-child"><li class="category-list-item"><a class="category-list-link" href="/categories/框架相关/前端技术/">前端技术</a><span class="category-list-count">2</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/框架相关/权限管理/">权限管理</a><span class="category-list-count">1</span></li></ul></li><li class="category-list-item"><a class="category-list-link" href="/categories/正则/">正则</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/爬虫/">爬虫</a><span class="category-list-count">4</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/程序安装与配置/">程序安装与配置</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/计算机网络/">计算机网络</a><span class="category-list-count">1</span></li></ul></div><div class="widget"><div class="widget-title"><i class="fa fa-star-o"> 标签</i></div><div class="tagcloud"><a href="/tags/C3P0/" style="font-size: 15px;">C3P0</a> <a href="/tags/深入了解java虚拟机/" style="font-size: 15px;">深入了解java虚拟机</a> <a href="/tags/Hexo优化/" style="font-size: 15px;">Hexo优化</a> <a href="/tags/HTML/" style="font-size: 15px;">HTML</a> <a href="/tags/iframe/" style="font-size: 15px;">iframe</a> <a href="/tags/Maven/" style="font-size: 15px;">Maven</a> <a href="/tags/C语言/" style="font-size: 15px;">C语言</a> <a href="/tags/jenkins/" style="font-size: 15px;">jenkins</a> <a href="/tags/Git/" style="font-size: 15px;">Git</a> <a href="/tags/maven/" style="font-size: 15px;">maven</a> <a href="/tags/junit/" style="font-size: 15px;">junit</a> <a href="/tags/定义/" style="font-size: 15px;">定义</a> <a href="/tags/python/" style="font-size: 15px;">python</a> <a href="/tags/转码/" style="font-size: 15px;">转码</a> <a href="/tags/正则表达式/" style="font-size: 15px;">正则表达式</a> <a href="/tags/Dom4j/" style="font-size: 15px;">Dom4j</a> <a href="/tags/爬虫/" style="font-size: 15px;">爬虫</a> <a href="/tags/常用命令/" style="font-size: 15px;">常用命令</a> <a href="/tags/shell/" style="font-size: 15px;">shell</a> <a href="/tags/XPath/" style="font-size: 15px;">XPath</a> <a href="/tags/Mongodb/" style="font-size: 15px;">Mongodb</a> <a href="/tags/java/" style="font-size: 15px;">java</a> <a href="/tags/mysql/" style="font-size: 15px;">mysql</a> <a href="/tags/存储过程/" style="font-size: 15px;">存储过程</a> <a href="/tags/DBCP/" style="font-size: 15px;">DBCP</a> <a href="/tags/DRUID/" style="font-size: 15px;">DRUID</a> <a href="/tags/工具类/" style="font-size: 15px;">工具类</a> <a href="/tags/Vue/" style="font-size: 15px;">Vue</a> <a href="/tags/jaxp/" style="font-size: 15px;">jaxp</a> <a href="/tags/CRUD/" style="font-size: 15px;">CRUD</a> <a href="/tags/JDBC/" style="font-size: 15px;">JDBC</a> <a href="/tags/Blob/" style="font-size: 15px;">Blob</a> <a href="/tags/sax/" style="font-size: 15px;">sax</a> <a href="/tags/事务/" style="font-size: 15px;">事务</a> <a href="/tags/机器学习/" style="font-size: 15px;">机器学习</a> <a href="/tags/注解/" style="font-size: 15px;">注解</a> <a href="/tags/元数据/" style="font-size: 15px;">元数据</a> <a href="/tags/Hibernate/" style="font-size: 15px;">Hibernate</a> <a href="/tags/Mybatis/" style="font-size: 15px;">Mybatis</a> <a href="/tags/ThreadLocal/" style="font-size: 15px;">ThreadLocal</a> <a href="/tags/逻辑回归/" style="font-size: 15px;">逻辑回归</a> <a href="/tags/Shiro/" style="font-size: 15px;">Shiro</a></div></div><div class="widget"><div class="widget-title"><i class="fa fa-file-o"> 最近文章</i></div><ul class="post-list"><li class="post-list-item"><a class="post-list-link" href="/2020/01/15/2018031301/">使用多种算法对泰坦尼克号乘客获救原因进行分析</a></li><li class="post-list-item"><a class="post-list-link" href="/2020/01/15/2018031202/">关于使用sklearn进行数据预处理-归一化/标准化/正则化(转)</a></li><li class="post-list-item"><a class="post-list-link" href="/2020/01/15/2018031201/">scikit-learn数据预处理fit_transform()与transform()的区别(转)</a></li><li class="post-list-item"><a class="post-list-link" href="/2020/01/15/2018030701/">构建逻辑回归模型实例</a></li><li class="post-list-item"><a class="post-list-link" href="/2020/01/15/20171225_regular/">正则表达式</a></li><li class="post-list-item"><a class="post-list-link" href="/2020/01/15/20171222_crawler4/">Python 爬虫实战(4)</a></li><li class="post-list-item"><a class="post-list-link" href="/2020/01/15/20171219_python_error/">TypeError, a bytes-like object is required, not 'str'</a></li><li class="post-list-item"><a class="post-list-link" href="/2020/01/15/20171219_crawler3/">Python 爬虫实战(3)</a></li><li class="post-list-item"><a class="post-list-link" href="/2020/01/15/20171219_crawler2/">Python 爬虫实战(2)</a></li><li class="post-list-item"><a class="post-list-link" href="/2020/01/15/20171214_crawler/">Python 爬虫实战(1)</a></li></ul></div><div class="widget"><div class="widget-title"><i class="fa fa-external-link"> 友情链接</i></div><ul></ul><a href="https://github.com/zj2626/" title="github" target="_blank">github</a></div></div></div><div class="pure-u-1 pure-u-md-3-4"><div id="footer">Copyright © 2021 <a href="/." rel="nofollow">ZJ_BLOG.</a> Powered by<a rel="nofollow" target="_blank" href="https://hexo.io"> Hexo.</a><a rel="nofollow" target="_blank" href="https://github.com/tufu9441/maupassant-hexo"> Theme</a> by<a rel="nofollow" target="_blank" href="https://github.com/pagecho"> Cho.</a></div></div></div><a class="show" id="rocket" href="#top"></a><script type="text/javascript" src="/js/totop.js?v=0.0.1" async></script><script type="text/javascript" src="//cdn.bootcss.com/fancybox/3.2.5/jquery.fancybox.min.js" async></script><script type="text/javascript" src="/js/fancybox.js?v=0.0.1" async></script><link rel="stylesheet" type="text/css" href="//cdn.bootcss.com/fancybox/3.2.5/jquery.fancybox.min.css"><script type="text/javascript" src="/js/search.js?v=0.0.1"></script><script>var search_path = 'search.xml';
if (search_path.length == 0) {
search_path = 'search.xml';
}
var path = '/' + search_path;
searchFunc(path, 'local-search-input', 'local-search-result');
</script><script>var _hmt = _hmt || [];
(function () {
var hm = document.createElement("script");
hm.src = '//hm.baidu.com/hm.js?' + 'c9a692191e9aca9e30daa3f6326cc789';
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script><script type="text/javascript" src="/js/codeblock-resizer.js?v=0.0.1"></script><script type="text/javascript" src="/js/smartresize.js?v=0.0.1"></script></div></body></html>