java配置mysql数据库 和 Tomcat 配置mysql数据源(亲测)

时间:2021-12-19 00:35:57

       最近在学习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:

          I、在Tomcat安装路径下的conf文件夹下的server.xml文件中配置如下代码,代码置于<Host></Host>中</Host>上面部分:
                 <Resource name="jdbc/commerce" auth="Container"    
              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"
               />

         II、在具体项目的web.xml文件中配置如下代码,代码置于<web-app></web-app>中</web-app>上面部分:
         <resource-ref>
         <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>

测试代码:
1、
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@ 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>
2、
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@ 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>