为啥要用Struts连Access,呵呵,这个是因为我有个性能很低的笔记本,运行eclipse后基本上就什么都干不了了,没办发啊 ,98年的本,所以为了调程序就只能用Strtus连Access数据库了,个人认为还是Access数据库方便啊,什么都不用配,上来直接连,即快又省事,推荐小程序用Access,如果接口作的好的话,什么都不用改,数据库底层是不用变的,只需要改下数据源连接或者是改下配置文件就行了。下面是具体的配置文件
<data-source key="javaTestJdbc" >
<set-property property="password" value="" />
<set-property property="minCount" value="1" />
<set-property property="maxCount" value="10" />
<set-property property="user" value="" />
<set-property property="driverClass" value="sun.jdbc.odbc.JdbcOdbcDriver" />
<set-property property="description" value="jdvcTest" />
<set-property property="url" value="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)}; DBQ=C://project//TestJDBC//notice.mdb" />
<set-property property="readOnly" value="false" />
<set-property property="autoCommit" value="true" />
<set-property property="loginTimeout" value="100" />
</data-source>
要注意一点,这里的readOnly属性值一定要设置成false否则没法插入记录。
还有Struts本身的配置就是个连接池,性能先不说,使用起来还是很方便的,下面给出一段示例代码:
ServletContext context = servlet.getServletContext();//获得Struts中的配置文件属性
DataSource dataSource = (DataSource) context.getAttribute("javaTestJdbc");
Connection con;
try {
con = dataSource.getConnection();
String sql = "insert into notice(title,content) values(?,?)";
PreparedStatement pre = con.prepareStatement(sql);
pre.setString(1, "mc");
pre.setString(2, "mc");
int a = pre.executeUpdate();
if (a > 0) {
System.out.println("插入成功!");
} else {
System.out.println("插入失败!");
}
pre.close();
con.close();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
我这个只是简单引用,没有作其他处理。默认的连接是1~10,那么当用con = dataSource.getConnection(); 语句可以从数据池中获得一个连接,用完之后一定要关闭,不用担心多线程问题,一共有10个连接可以轮转,如果都不关闭的话系统将一直等待,直到有一个用户释放连接,利用Struts里的datasource的配置可以很简单的实现数据库连接池,试用与小型系统。
另外附上Struts与SQL2000和Oracle9i的连接,这个最好要用第三方包,速度快。代码如下:
<struts-config>
<data-sources>
<!-- sql 2000 -->
<!--
<data-source key="javaTestJdbc" >
<set-property property="password" value="MaChao1035" />
<set-property property="minCount" value="1" />
<set-property property="maxCount" value="10" />
<set-property property="user" value="sa" />
<set-property property="driverClass" value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
<set-property property="description" value="jdvcTest" />
<set-property property="url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=noticemanager" />
<set-property property="readOnly" value="true" />
<set-property property="autoCommit" value="true" />
<set-property property="loginTimeout" value="100" />
</data-source>
-->
<!-- orcale -->
<!-- <data-source key="javaTestJdbc" >
<set-property property="password" value="bbs" />
<set-property property="minCount" value="1" />
<set-property property="maxCount" value="10" />
<set-property property="user" value="BBS" />
<set-property property="driverClass" value="oracle.jdbc.driver.OracleDriver" />
<set-property property="description" value="jdvcTest" />
<set-property property="url" value="jdbc:oracle:thin:@localhost:1521:TESTJDBC" />
<set-property property="readOnly" value="true" />
<set-property property="autoCommit" value="true" />
<set-property property="loginTimeout" value="100" />
</data-source>
-->
<!-- Access -->
<data-source key="javaTestJdbc" >
<set-property property="password" value="" />
<set-property property="minCount" value="1" />
<set-property property="maxCount" value="10" />
<set-property property="user" value="" />
<set-property property="driverClass" value="sun.jdbc.odbc.JdbcOdbcDriver" />
<set-property property="description" value="jdvcTest" />
<set-property property="url" value="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)}; DBQ=C://project//TestJDBC//notice.mdb" />
<set-property property="readOnly" value="false" />
<set-property property="autoCommit" value="true" />
<set-property property="loginTimeout" value="100" />
</data-source>
</data-sources>
其他的连接都差不多,主要是driverClass,url,username,password,大家可以自己试,不难的.