最近在学习JSP,接触到了Tomcat服务器,在学习的过程中要用到mysql数据库,结果就开始纠结了,起初一直没弄懂为什么java配置了数据库了,Tomcat还要配置数据库,后来随着看的那么多了一点点,错的多了那么一点点,才明白二者完全是两码事;java配置数据库,是用于本地编写程序连接数据库,适用于本机的单机版软件,而tomcat配置数据源才是适用于web程序的开发,下面总结下配置java本地mysql数据库和tomcat配置mysql数据源的方法:
1、java配置mysql数据库
java版本:jdk-7u45-windows-x64.exe
mysql版本:mysql-5.5.28-winx64.msi
驱动版本:mysql-connector-java-5.1.30-bin.jar
java连接数据库的方法有很多种,这个我就不多说了,任何一本入门级的java教程都会提到,我这里就说下java配置mysql数据库,以便忘记了回来找着方便:
(1)安装java程序,不解释。
(2)下载适合当前java版本的mysql安装程序,安装时直接下一步就OK了,其中需要注意的是,安装过程中一定要配置端口号,默认3306,配置用户名和密码,这用于以后访问mysql数据库;
(3)下载jdbc驱动程序(不解释,自己去看吧),下载的jdbc驱动要和mysql版本与java版本匹配,不匹配可能会连接不上,我是遇到了这种情况,所有配置都没问题了,就是连接不上,后来换了个驱动才连接上;
(4)配置环境变量:我的电脑->属性->高级系统设置-> 环境变量->CLASSPATH(系统变量中找,没有可以新建)->jdbc驱动的路径;
2、Tomacat数据源的配置:
Tomacat版本:apache-tomcat-7.0.6
mysql版本:mysql-5.5.28-winx64.msi
驱动版本:mysql-connector-java-5.1.30-bin.jar
Tomcat配置数据源的方法有很多种,这里说一种我配置成功的方法,是一种全局配置数据源的方式。
(1)将jdbc驱动程序拷贝到Tomcat安装目录下的lib文件夹中。
(2)Tomcat需要有数据源的之前需要配置java的环境变量(最基本),然后配置将Tomcat中的jdbc驱动的相关路径配置到CLASSPATH中。另外有其他相关Tomcat环境变量的配置此处不介绍,他们的配置都不影响Tomcat连接MySql数据库,在具体需要相关类库时具体导入即可。
(3)配置MySql:
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/commerce"
username="root" password="MySql"
mxaActive="100"
maxIdle="20"
maxWait="10000"
/>
<description>DB Connection</description>
<res-ref-name>jdbc/MySql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<%@ page import="javax.naming.*,java.sql.*,javax.sql.*" %>
<head>
<title>测试Tomcat数据源</title>
</head>
<body>
<%
try{
//初始化Context,使用InitialContext初始化Context
Context ctx=new InitialContext();
/*
通过JNDI查找数据源,该JNDI为java:comp/env/jdbc/dstest,分成两个部分
java:comp/env是Tomcat固定的,Tomcat提供的JNDI绑定都必须加该前缀
jdbc/dstest是定义数据源时的数据源名
*/
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/MySql");
//获取数据库连接
Connection conn=ds.getConnection();
//获取Statement
Statement stmt=conn.createStatement();
//执行查询,返回ResulteSet对象
ResultSet rs=stmt.executeQuery("select * from goods");
while(rs.next())
{
out.println(rs.getString(1)
+ "\t" + rs.getString(2) + "<br/>");
}
}
catch(Exception e)
{
e.printStackTrace();
}
%>
</body>
</html>
<%@ page import="java.sql.*" %>
<head>
<title> 小脚本测试 </title>
</head>
<body>
<%
//注册数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//获取数据库连接
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/commerce","root","MySql");
//创建Statement
Statement stmt = conn.createStatement();
//执行查询
ResultSet rs = stmt.executeQuery("select * from goods");
%>
<table bgcolor="#9999dd" border="1" width="300">
<%
//遍历结果集
while(rs.next())
{%>
<tr>
<!-- 输出结果集 -->
<td><%=rs.getString(1)%></td>
<td><%=rs.getString(2)%></td>
</tr>
<%}%>
<table>
</body>
</html>