连接先建立一些连接,并且这些连接允许共享,因此这样就节省了每次连接的时间开销。Mysql数据库为例,连接池在Tomcat中的配置与使用。
1、创建数据库Student,表student
2、配置server.xml文件。Tomcat安装目录下conf中server.xml文件。
<GlobalNamingResources>
<Resource
name="jdbc/DBPool"
type="javax.sql.DataSource"
password=""
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://localhost:3306/student"
maxActive="3"
/>
</GlobalNamingResources>
name:指定连接池的名称
type:指定连接池的类,他负责连接池的事务处理
url:指定要连接的数据库
driverClassName:指定连接数据库使用的驱动程序
username:数据库用户名
password:数据库密码
maxWait:指定最大建立连接等待时间,如果超过此时间将接到异常
maxIdle:指定连接池中连接的最大空闲数
maxActive:指定连接池最大连接数
3、配置web.xml文件。
<web-app>
<resource-ref>
<description>mysql数据库连接池配置</description>
<res-ref-name>jdbc/DBPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
</web-app>
4、配置context.xml文件
与server.xml文件所在的位置相同。
<Context>
<ResourceLink
name="jdbc/DBPool"
type="javax.sql.DataSource"
global="jdbc/DBPool"
/>
</Context>
5、测试
DataSource pool = null
Context env = null
Connection conn = null
Statement st = null
ResultSet rs = null
try{
env = (Context)new InitialContext().lookup("java:comp/env")
//检索指定的对象,返回此上下文的一个新实例
pool = (DataSource)env.lookup("jdbc/DBPool")
//获得数据库连接池
if(pool==null){out.printl("找不到指定的连接池!")}
con = pool.getConnection()
st = con.createStatement()
rs = st.executeQuery("select * from student")
}catch(Exception ex){out.printl(ne.toString())}
每一个东西都会有自己的一些个性化或者系统设置。 mybatis也一样,在config.xml中可以配置mybatis的一些基本设置, 比如是否启用缓存、数据库超时时间、字段映射、延迟加载等,很有用这些配置。 还可以定义一些插件Ø dataSource:数据源,表示一个具体的数据库连接,与一个物理存在的schema一一对应。Ø dataNode:数据节点,由主、备数据源,数据源的HA以及连接池共同组成,可以将一个dataNode理解为一个分库。
Ø table:表,包括拆分表(如tb1,tb2)和非拆分表。
Ø tableRule:路由规则,用于判断SQL语句被路由到具体哪些datanode执行。
Ø schema:cobar可以定义包含拆分表的schema(如schema1),也可以定义无拆分表的schema(如schema2)。
Ø 以上层次关系具有较强的灵活性,用户可以将表自由放置不同的datanode,也可将不同的datasource放置在同一MySQL实例上
这方面是有点不太好理解,慢慢体会!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)