1个回答
展开全部
1.在网上很多的文章都介绍在Tomcat/conf文件下的context.xml文件中添加如下的代码:
Resource
//这是为你的连接池起一个名字,后边在代码中会用到
name="jdbc/mysqlds"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdel="30"
maxWait="10000"
//这个是你的mysql数据库的用户名和密码
username="root"
password="*******"
driverClassName="com.mysql.jdbc.Driver"
//conn这个是你mysql中的数据库名
url="jdbc:mysql://localhost:3306/conn"
/
其实不用在conf下修改context.xml文件。
直接在自己的项目下的Webcontent/META-INF文件夹下新建一个context.xml文件将上面的代码拷贝到这个xml文件中就可以了。
(这里要注意的一点就是要将这个context.xml放在Webcontent/META-INF文件夹下,而不是放在Webcontent/WEB-INF文件下)
2. 将下面代码拷贝到项目文件/Webcontent/WEB-INF文件夹下的web.xml下。注意要放在/web-app之前。
resource-ref
// DB Connections 这是随意起的名字,没有影响
descriptionDB Connections/description
//jdbc/mysqlds这个就是你在context.xml中设置的连接池名字
res-ref-namejdbc/mysqlds/res-ref-name
res-typejavax.sql.DataSource/res-type
res-authContainer/res-auth
/resource-ref
3.将mysql-connector-java-5.1.6-bin.jar驱动程序拷贝到项目文件/Webcontent/WEB-INF/lib文件夹下面,同时也要放在Tomcat/lib文件夹下面。
这样就完成了通过连接池的方式连接数据库了。
可以通过以下代码就行测试:
新建一个servlet文件
Conntslt.java
package com.dbconn;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
public class ConnPslt extends HttpServlet {
private static final long serialVersionUID = 1L;
public ConnPslt() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String title=request.getParameter("title");
String content=request.getParameter("content");
System.out.println(title);
DataSource ds = null;
try {
Context context=new InitialContext();
ds=(DataSource) context.lookup("java:/comp/env/jdbc/mysqlds");
} catch (NamingException e) {
System.out.println(e);
}
try {
Connection comm=ds.getConnection();
String sql="insert into webblog (title,content)values(?,?)";
PreparedStatement pstmt=comm.prepareStatement(sql);
pstmt.setString(1, title);
pstmt.setString(2, content);
int rs=pstmt.executeUpdate();
System.out.println(rs);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
再建一个jsp文件
index.jsp
%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%
!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN ;
html
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
titleInsert title here/title
/head
body
form name="form1" method="post" action="/DBconn/ConnPslt"
table width="320" border="1" align="center"
tr
td colspan="2" align="center"留言板/td
/tr
tr
td width="84"标题/td
td width="220"label
input type="text" name="title" width="200"
/label/td
/tr
tr
td height="73"内容/td
tdlabel
textarea name="content" cols="30" rows="10"/textarea
/label/td
/tr
tr
td colspan="2" align="center"label
input type="submit" name="Submit" value="提交"
/label/td
/tr
/table
/form
/body
/html
在控制台输出的结果如果是1,则添加成功,如果是0则说明数据库连接失败,要自己找找问题,
Resource
//这是为你的连接池起一个名字,后边在代码中会用到
name="jdbc/mysqlds"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdel="30"
maxWait="10000"
//这个是你的mysql数据库的用户名和密码
username="root"
password="*******"
driverClassName="com.mysql.jdbc.Driver"
//conn这个是你mysql中的数据库名
url="jdbc:mysql://localhost:3306/conn"
/
其实不用在conf下修改context.xml文件。
直接在自己的项目下的Webcontent/META-INF文件夹下新建一个context.xml文件将上面的代码拷贝到这个xml文件中就可以了。
(这里要注意的一点就是要将这个context.xml放在Webcontent/META-INF文件夹下,而不是放在Webcontent/WEB-INF文件下)
2. 将下面代码拷贝到项目文件/Webcontent/WEB-INF文件夹下的web.xml下。注意要放在/web-app之前。
resource-ref
// DB Connections 这是随意起的名字,没有影响
descriptionDB Connections/description
//jdbc/mysqlds这个就是你在context.xml中设置的连接池名字
res-ref-namejdbc/mysqlds/res-ref-name
res-typejavax.sql.DataSource/res-type
res-authContainer/res-auth
/resource-ref
3.将mysql-connector-java-5.1.6-bin.jar驱动程序拷贝到项目文件/Webcontent/WEB-INF/lib文件夹下面,同时也要放在Tomcat/lib文件夹下面。
这样就完成了通过连接池的方式连接数据库了。
可以通过以下代码就行测试:
新建一个servlet文件
Conntslt.java
package com.dbconn;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
public class ConnPslt extends HttpServlet {
private static final long serialVersionUID = 1L;
public ConnPslt() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String title=request.getParameter("title");
String content=request.getParameter("content");
System.out.println(title);
DataSource ds = null;
try {
Context context=new InitialContext();
ds=(DataSource) context.lookup("java:/comp/env/jdbc/mysqlds");
} catch (NamingException e) {
System.out.println(e);
}
try {
Connection comm=ds.getConnection();
String sql="insert into webblog (title,content)values(?,?)";
PreparedStatement pstmt=comm.prepareStatement(sql);
pstmt.setString(1, title);
pstmt.setString(2, content);
int rs=pstmt.executeUpdate();
System.out.println(rs);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
再建一个jsp文件
index.jsp
%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%
!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN ;
html
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
titleInsert title here/title
/head
body
form name="form1" method="post" action="/DBconn/ConnPslt"
table width="320" border="1" align="center"
tr
td colspan="2" align="center"留言板/td
/tr
tr
td width="84"标题/td
td width="220"label
input type="text" name="title" width="200"
/label/td
/tr
tr
td height="73"内容/td
tdlabel
textarea name="content" cols="30" rows="10"/textarea
/label/td
/tr
tr
td colspan="2" align="center"label
input type="submit" name="Submit" value="提交"
/label/td
/tr
/table
/form
/body
/html
在控制台输出的结果如果是1,则添加成功,如果是0则说明数据库连接失败,要自己找找问题,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询