📅  最后修改于: 2023-12-03 15:05:10.971000             🧑  作者: Mango
在Web应用程序的开发中,大多数情况下都需要通过数据库存储和访问数据。而在Java Web应用程序中,可以通过Servlet来实现对数据库的访问。
Java数据库连接(Java Database Connectivity,简称JDBC)是一种用于执行SQL语句的Java API。通过JDBC,应用程序可以连接到多种不同类型的关系型数据库,并可以执行插入、更新、删除和查询等各种SQL操作。JDBC是Java企业版(Java Enterprise Edition,简称JEE)的核心技术之一,也是开发Java Web应用程序的必备技能之一。
下面是一个简单的JDBC示例:
import java.sql.*;
public class JDBCTest {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/EMP";
static final String USER = "username";
static final String PASS = "password";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
Class.forName(JDBC_DRIVER);
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, name, age FROM Employees";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.print("ID: " + id);
System.out.print(", Name: " + name);
System.out.println(", Age: " + age);
}
rs.close();
stmt.close();
conn.close();
} catch(SQLException se) {
se.printStackTrace();
} catch(Exception e) {
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!");
}
}
这个示例连接到本地MySQL数据库上的EMP
数据库,并查询Employees
表中的所有记录。在实际开发中,可以根据自己的需求和数据库类型进行修改。
在Java Web应用程序中,可以通过Servlet来处理客户端的请求,执行数据库操作,并将结果返回给客户端。
下面是一个使用Java Servlet来访问数据库的示例:
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DBServlet extends HttpServlet {
private String message;
public void init() throws ServletException {
message = "Hello, World!";
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet DBServlet</title>");
out.println("</head>");
out.println("<body>");
Connection conn = null;
Statement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost/EMP", "username", "password");
stmt = conn.createStatement();
String sql = "SELECT id, name, age FROM Employees";
ResultSet rs = stmt.executeQuery(sql);
out.println("<table>");
out.println("<tr>");
out.println("<th>ID</th>");
out.println("<th>Name</th>");
out.println("<th>Age</th>");
out.println("</tr>");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
out.println("<tr>");
out.println("<td>" + id + "</td>");
out.println("<td>" + name + "</td>");
out.println("<td>" + age + "</td>");
out.println("</tr>");
}
out.println("</table>");
rs.close();
stmt.close();
conn.close();
} catch(SQLException se) {
se.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
} finally {
try {
if(stmt!=null)
stmt.close();
} catch(SQLException se2) {
}
try {
if(conn!=null)
conn.close();
} catch(SQLException se) {
se.printStackTrace();
}
}
out.println("</body>");
out.println("</html>");
}
public void destroy() {
}
}
这个示例展示了一个名为DBServlet
的Servlet类,它连接到本地MySQL数据库上的EMP
数据库,并查询Employees
表中的所有记录。在浏览器中访问这个Servlet时,它会以HTML表格的形式将查询结果返回给客户端。在实际开发中,可以根据自己的需求和数据库类型进行修改。