Tomcat6 下 MySQL 5.1 数据源配制

王朝学院·作者佚名  2010-02-04
窄屏简体版  字體: 小  |  中  |  大  |  超大  

数据源配制中有一些参数,不太明白,不明白的咱不说.在这说两种我用过的.

首先在apache-tomcat-6.0.16\lib 路径下的 mysql JDBC 5.1 驱动不能少.

第一种是在TomCat 里配制apache-tomcat-6.0.16\conf\context.xml 如下:

Xml代码

<?xml version='1.0' encoding='utf-8'?>

<Context>

<Resource name="jdbc/myTest" auth="Container"

type="javax.sql.DataSource" username="root" password=""

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://192.168.0.68:3306/points" />

<WatchedResource>WEB-INF/web.xml</WatchedResource>

</Context>

<?xml version='1.0' encoding='utf-8'?>

<Context>

<Resource name="jdbc/myTest" auth="Container"

type="javax.sql.DataSource" username="root" password=""

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://192.168.0.68:3306/points" />

<WatchedResource>WEB-INF/web.xml</WatchedResource>

</Context>

name 是数据源名称.格式是:"jdbc/数据源名称"

username,password 不用说了.这里password 密码为空.

url 和 JDBC 驱动配相同.

http://bizhi.knowsky.com/

第二种是在项目里面配.WebRoot/META-INF/context.xml 中配:

Xml代码

<?xml version="1.0" encoding="UTF-8"?>

<Context>

<Resource name="jdbc/test" auth="Container"

type="javax.sql.DataSource" username="root" password=""

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://192.168.0.68:3306/points" />

</Context>

<?xml version="1.0" encoding="UTF-8"?>

<Context>

<Resource name="jdbc/test" auth="Container"

type="javax.sql.DataSource" username="root" password=""

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://192.168.0.68:3306/points" />

</Context>和在 Tomcat 里面几乎一样. context.xml 要注意是在 META-INF 下新建 是自己新建的.

数据源的使用:

Java代码

list = new ArrayList();

Connection conn = null;

DataSource ds = null;

PreparedStatement pst = null;

ResultSet rst = null;

String sqlStr = "insert into `user`(`userNo`,`userName`) values (?,?)";

try {

InitialContext ctx = new InitialContext();

ds = (DataSource) ctx.lookup("java:comp/env/jdbc/test");

conn = ds.getConnection();

pst = conn.prepareStatement(sqlStr);

pst.clearBatch();

for (int i = 0; i < 4; i++) {

pst.setString(1, "good " + i);

pst.setString(2, "isw " + i);

// 使用batch,将多个sql操作作为一个单元传输给数据库,

// Hibernate 中 jdbc.batch_size 网上推荐 30

pst.addBatch();

}

pst.executeBatch();

rst = pst.executeQuery("select * from user");

// Fetch Size 是设定JDBC的prepareStatement读取数据的时候每次从数据库中取出的记录条数,

// Hibernate 中 jdbc.fetch_size 网上推荐 50

rst.setFetchSize(50);

while (rst.next()) {

System.out.println(rst.getString(3));

list.add(rst.getString(3));

}

} catch (Exception e) {

e.printStackTrace();

return ERROR;

} finally {

try {

rst.close();

pst.close();

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

list = new ArrayList();

Connection conn = null;

DataSource ds = null;

PreparedStatement pst = null;

ResultSet rst = null;

String sqlStr = "insert into `user`(`userNo`,`userName`) values (?,?)";

try {

InitialContext ctx = new InitialContext();

ds = (DataSource) ctx.lookup("java:comp/env/jdbc/test");

conn = ds.getConnection();

pst = conn.prepareStatement(sqlStr);

pst.clearBatch();

for (int i = 0; i < 4; i++) {

pst.setString(1, "good " + i);

pst.setString(2, "isw " + i);

// 使用batch,将多个sql操作作为一个单元传输给数据库,

// Hibernate 中 jdbc.batch_size 网上推荐 30

pst.addBatch();

}

pst.executeBatch();

rst = pst.executeQuery("select * from user");

// Fetch Size 是设定JDBC的prepareStatement读取数据的时候每次从数据库中取出的记录条数,

// Hibernate 中 jdbc.fetch_size 网上推荐 50

rst.setFetchSize(50);

while (rst.next()) {

System.out.println(rst.getString(3));

list.add(rst.getString(3));

}

} catch (Exception e) {

e.printStackTrace();

return ERROR;

} finally {

try {

rst.close();

pst.close();

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

} 上面说一下,大家都说Hibernate 执行数据库操作要比手动JDBC 效率要高,这是因为它对查询进行了一些优化,Fetch Size,Batch 也许只是冰山一角.说到这里就提了一下它们的用法.

关于 Fectch Size,Batch 下面的博客给出较详细的说明.

http://xuganggogo.javaeye.com/blog/440516

数据源在Hibernate 中的使用 hibernate.cfg.xml

Xml代码

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE hibernate-configuration PUBLIC

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools. -->

<hibernate-configuration>

<session-factory>

<!-- 下面是数据源的配制 -->

<property name="connection.datasource">

java:comp/env/jdbc/test

</property>

<!-- 数据库方言 -->

<property name="dialect">

org.hibernate.dialect.MySQLDialect

</property>

<property name="jdbc.batch_size">25</property>

<property name="jdbc.fetch_size">50</property>

<mapping resource="com/isw2/entity/UserBean.hbm.xml" />

</session-factory>

</hibernate-configuration>

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE hibernate-configuration PUBLIC

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools. -->

<hibernate-configuration>

<session-factory>

<!-- 下面是数据源的配制 -->

<property name="connection.datasource">

java:comp/env/jdbc/test

</property>

<!-- 数据库方言 -->

<property name="dialect">

org.hibernate.dialect.MySQLDialect

</property>

<property name="jdbc.batch_size">25</property>

<property name="jdbc.fetch_size">50</property>

<mapping resource="com/isw2/entity/UserBean.hbm.xml" />

</session-factory>

</hibernate-configuration>

人生之所以的许许多多的半途而废及心有不甘,不过因为我们没有坚持自己的理想罢了,只要我们不放弃,理想终会实现.

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航