连接数据库
还是在test2基础上做修改,
5-1 添加jar包
在navigator视图下将mysql数据库连接驱动jar包mysql-connector-java-5.1.17-bin.jar复制到WEB-INF目录下的lib目录下。只要采用的mysql数据库的JavaWeb应用都要添加这个jar包。这个包并不包含在mysql安装包里,要单独下载。
下载方法介绍如下:
Google à ‘mysql connector’ (第一个就是) à 找到JDBC driver for mysql(connector /J) | Download这个就可以。下载完成后解压就可找到这个jar包。其中里面还包含一个docs文件夹在这里有详细介绍如何使用的。不过全是英文。
5-2 创建数据库
创建名称为mytest的数据库,在其下面创建user表;user表字段有id,name,password。id为自增。
采用mysql自带的客户端命令窗口创建数据库
Sql:
create database
mytest; -- 创建数据库
use database
mytest; --使用mytest
CREATE TABLE
user (
`id` INTEGER UNSIGNED NOT NULL
AUTO_INCREMENT,
`name` VARCHAR(45),
`password` VARCHAR(45),
PRIMARY KEY (`id`)
) –创建表
修改RegisterServlet.java将输入的名字和密码保存到数据库;修改后的RegisterServlet.java内容如下:
package servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RegisterServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
/*
* 这里选择将所有以get方式提交的全部交给doPost方法处理; get方式提交是将所有的要传递的参数附加在地址栏后传过来,
* 这样在参数少的情况或者没有参数的情况会考虑这种方式, 因为附加在地址栏的字符不安全,二字符不能超过一定的大小
* 在网页中大部分时候都要传递大量的数据,尤其有上传文件就不能选择get方式提交
*/
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
String registerName = request.getParameter("name");
String registerPassword = request.getParameter("password");
Connection
conn = null;
PreparedStatement ps = null;
try {
// 1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.建立连接
String url = "jdbc:mysql://localhost:3306/mytest";
String user = "root";
String password = "root";
conn = DriverManager.getConnection(url,
user, password);
// 3.创建语句 ;这里的问号是占位符
String sql = "insert into
user(name,password) values(?,?)";
ps =
conn.prepareStatement(sql);
ps.setString(1,
registerName);// 将第一个?用name的值替换
ps.setString(2,
registerPassword);
// 4.执行语句
ps.executeUpdate();
// 5.释放资源
conn.close();
} catch (SQLException e)
{
e.printStackTrace();
} catch
(ClassNotFoundException e) {
e.printStackTrace();
}
// 将页面中form表单提交过来的参数保存到request对象中,采用map的形式保存的
request.setAttribute("registerName", registerName);// 在页面中通过registerName取得name的值
request.setAttribute("registerPassword", registerPassword);
request.getRequestDispatcher("/register_success.jsp").forward(request,
response);
}
}
重新部署测试,检查数据库是否新增数据
分享到:
评论