`

JavaWeb快速入门七

阅读更多

连接数据库

 

还是在test2基础上做修改,

5-1 添加jar

navigator视图下将mysql数据库连接驱动jarmysql-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,passwordid为自增。

采用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);

    }

}

 

重新部署测试,检查数据库是否新增数据

0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics