java servlet 数据库_Java Servlet调用数据库复习

这篇博客详细介绍了如何使用Java编程语言连接并操作MySQL数据库,包括注册JDBC驱动、建立数据库连接、执行SQL查询和关闭资源。同时强调了在Servlet环境中放置JDBC驱动的位置,提醒开发者不要将jar包放入web项目下,而应将其放在Tomcat的lib目录下,以避免ClassNotFound异常。
摘要由CSDN通过智能技术生成

首先要导入jar包。

8352af631d0f6819c6713c28e26c2dbc.png

剩下的基本就是模版式的代码了:

public class main {

// JDBC 驱动名及数据库 URL

static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";

static final String DB_URL = "jdbc:mysql://localhost:3306/test";//端口号,数据库名

// 数据库的用户名与密码,需要根据自己的设置

static final String USER = "root";

static final String PASS = "";

public static void main(String args[]){

Connection conn = null;

Statement stmt = null;

try{

// 注册 JDBC 驱动

Class.forName("com.mysql.jdbc.Driver");

// 打开链接

System.out.println("连接数据库...");

conn = (Connection) DriverManager.getConnection(DB_URL,USER,PASS);

// 执行查询

System.out.println(" 实例化Statement对...");

stmt = (Statement) conn.createStatement();

String sql;

sql = "INSERT INTO students VALUES(\"li\",\"1234\")";//向数据库中插入数据

stmt.executeUpdate(sql);

sql = "SELECT unmber, name FROM students";

ResultSet rs = stmt.executeQuery(sql);

// 展开结果集数据库

while(rs.next()){

// 通过字段检索

String name = rs.getString("name");

String id = rs.getString("unmber");

// 输出数据

System.out.print("ID: " + id);

System.out.print(", 名称: " + name);

System.out.print("\n");

}

// 完成后关闭

rs.close();

stmt.close();

conn.close();

}catch(SQLException se){

// 处理 JDBC 错误

se.printStackTrace();

}catch(Exception e){

// 处理 Class.forName 错误

e.printStackTrace();

}finally{

// 关闭资源

try{

if(stmt!=null) stmt.close();

}catch(SQLException se2){

}// 什么都不做

try{

if(conn!=null) conn.close();

}catch(SQLException se){

se.printStackTrace();

}

}

System.out.println("Goodbye!");

}

}

2cb8dd27a3ef6180ab9ad399b1a1c264.png

Servlet通过java调用数据库

基本上与java直接调用一模一样。

但是有一点很重要!!!!!!!!!!!

千万不要把jar包导入到web项目下,会报ClassNotFound异常。

把jar包删了,放到tomcat的lib下就行。

public class Hello extends HttpServlet {

private static final long serialVersionUID = 1L;

// JDBC 驱动名及数据库 URL

static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";

static final String DB_URL = "jdbc:mysql://localhost:3306/test";

// 数据库的用户名与密码,需要根据自己的设置

static final String USER = "root";

static final String PASS = "";

/**

* @see HttpServlet#HttpServlet()

*/

public Hello() {

super();

// TODO Auto-generated constructor stub

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

Connection conn = null;

Statement stmt = null;

// 设置响应内容类型

response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();

String title = "Servlet Mysql";

String docType = "\n";

out.println(docType +

"\n" +

"

" + title + "\n" +

"

\n" +

"

" + title + "

\n");

try{

// 注册 JDBC 驱动器

Class.forName("com.mysql.jdbc.Driver");

// 打开一个连接

conn = (Connection) DriverManager.getConnection(DB_URL,USER,PASS);

// 执行 SQL 查询

stmt = (Statement) conn.createStatement();

String sql;

sql = "SELECT unmber, name FROM students";

ResultSet rs = stmt.executeQuery(sql);

// 展开结果集数据库

while(rs.next()){

// 通过字段检索

String name = rs.getString("name");

String id = rs.getString("unmber");

// 输出数据

out.println("ID: " + id);

out.println(",名称: " + name);

out.println("
");

}

out.println("");

// 完成后关闭

rs.close();

stmt.close();

conn.close();

} catch(SQLException se) {

// 处理 JDBC 错误

se.printStackTrace();

} catch(Exception e) {

// 处理 Class.forName 错误

e.printStackTrace();

}finally{

// 最后是用于关闭资源的块

try{

if(stmt!=null)

stmt.close();

}catch(SQLException se2){

}

try{

if(conn!=null)

conn.close();

}catch(SQLException se){

se.printStackTrace();

}

}

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

}

}

3314865e2145741ad795fac597fe43b6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值