快速掌握javaweb查询,轻松显示数据库内容 (javaweb查询显示数据库)

快速掌握JavaWeb查询,轻松显示数据库内容

随着互联网的快速发展,JavaWeb的应用越来越广泛。其中,数据库查询是JavaWeb开发中的重要部分之一。如何快速掌握JavaWeb查询,并通过网站轻松显示数据库内容,成为JavaWeb初学者必须掌握的技能。

JavaWeb查询可以分为静态查询和动态查询。静态查询即是在Java程序中预先写好SQL语句,然后在程序执行时直接执行SQL语句并返回结果。动态查询即是在页面上通过用户输入的条件,动态生成SQL语句,并执行返回结果。以下分别介绍这两种查询方式。

一、静态查询

静态查询主要是通过JDBC技术访问数据库。需要在程序中建立数据库连接,JavaWeb程序往往采用如下方式连接数据库:

“`java

Class.forName(“com.mysql.jdbc.Driver”);

Connection connection = DriverManager.getConnection(“jdbc:mysql://localhost:3306/dbname”,”username”, “password”);

“`

其中,“jdbc:mysql://localhost:3306/dbname”表示数据库连接地址,“username”表示数据库用户名,“password”表示数据库密码。建立好连接之后,就可以利用Java提供的JDBC API执行SQL查询了。常见的JDBC查询方式有如下几种:

1. Statement

Statement可以执行静态SQL查询。示例代码如下:

“`java

Statement stmt = connection.createStatement();

ResultSet rs = stmt.executeQuery(“select * from table”);

while (rs.next()) {

int id = rs.getInt(1);

String name = rs.getString(2);

// … 其他字段

}

“`

2. PreparedStatement

PreparedStatement可以优化SQL查询,提升查询性能。示例代码如下:

“`java

String sql = “select * from table where id = ?”;

PreparedStatement pstmt = connection.prepareStatement(sql);

pstmt.setInt(1, 1);

ResultSet rs = pstmt.executeQuery();

while (rs.next()) {

int id = rs.getInt(1);

String name = rs.getString(2);

// … 其他字段

}

“`

3. CallableStatement

CallableStatement可以调用存储过程查询数据。示例代码如下:

“`java

String sql = “{call usp_get_data(?)}”;

CallableStatement cstmt = connection.prepareCall(sql);

cstmt.setInt(1, 1);

ResultSet rs = cstmt.executeQuery();

while (rs.next()) {

int id = rs.getInt(1);

String name = rs.getString(2);

// … 其他字段

}

“`

二、动态查询

动态查询适合于在页面上根据用户的选择生成相应的SQL语句。JavaWeb中,常使用的动态查询方式有两种,即利用JavaServer Pages(P)和JavaServer Faces(F):

1. P

P是一种用于创建动态Web页面的技术,P页面中可以直接嵌入Java代码,能够生成相应的HTML页面。在P页面中使用JDBC查询数据库,示例代码如下:

“`jsp

<%

Class.forName(“com.mysql.jdbc.Driver”);

Connection connection = DriverManager.getConnection(“jdbc:mysql://localhost:3306/dbname”,”username”, “password”);

PreparedStatement pstmt = null;

ResultSet rs = null;

String id = request.getParameter(“id”);

String name = request.getParameter(“name”);

String sql = “select * from table where 1=1”;

if (id != null && !id.trim().isEmpty()) {

sql += ” and id = ?”;

}

if (name != null && !name.trim().isEmpty()) {

sql += ” and name = ?”;

}

pstmt = connection.prepareStatement(sql);

int index = 1;

if (id != null && !id.trim().isEmpty()) {

pstmt.setInt(index++, Integer.parseInt(id));

}

if (name != null && !name.trim().isEmpty()) {

pstmt.setString(index++, name);

}

rs = pstmt.executeQuery();

while (rs.next()) {

int id = rs.getInt(1);

String name = rs.getString(2);

// … 其他字段

}

%>

“`

2. F

F是JavaServer Faces的缩写,是一个用于创建Web应用程序的框架。F可以通过标签库将页面与Java代码结合起来。在F页面中使用JDBC查询数据库,示例代码如下:

“`xhtml

ID

#{item.id}

名称

#{item.name}

“`

“`java

@Named

@RequestScoped

public class Bean {

private String id;

private String name;

private List list;

public void doQuery() {

Class.forName(“com.mysql.jdbc.Driver”);

Connection connection = DriverManager.getConnection(“jdbc:mysql://localhost:3306/dbname”,”username”, “password”);

PreparedStatement pstmt = null;

ResultSet rs = null;

String sql = “select * from table where 1=1”;

if (id != null && !id.trim().isEmpty()) {

sql += ” and id = ?”;

}

if (name != null && !name.trim().isEmpty()) {

sql += ” and name = ?”;

}

pstmt = connection.prepareStatement(sql);

int index = 1;

if (id != null && !id.trim().isEmpty()) {

pstmt.setInt(index++, Integer.parseInt(id));

}

if (name != null && !name.trim().isEmpty()) {

pstmt.setString(index++, name);

}

rs = pstmt.executeQuery();

List list = new ArrayList();

while (rs.next()) {

Data data = new Data();

data.setId(rs.getString(1));

data.setName(rs.getString(2));

// … 其他字段

list.add(data);

}

this.list = list;

}

// … getter and setter

}

“`

相关问题拓展阅读:

java web前端如何按条件查询数据库大量数据

1.参数传到后台,通过hibernate的hql语句写一个普通的模糊查询就可以了,hql基本无法优化,只能加索引。

2.用jdbc或者mybatis。

3.配置文件应该是jdbc.properties吧?一般不需要,因为jdbc.properties里一般只写driver 、url、username和password,顶多还有或缺一衡槐些连接池相关衫拦辩的配置。

javaweb怎么将数据从数据库查出来并返回前台?

你用jdbc查出数陵亮据来之后,尺闹宽把数据作为对象放在response对象里面。

然后在P里面就可弯并以用${对象名}来获取数值了。

你是想做到P页面不加入这种小脚本吧,那可以采用EL表达式,或者一些框架的输出方式,通常用EL就可以了,因为EL就是用来运算和表灶运达的。后台获取数据以后,这个数据可以是一个简单类型,也可以是一个对象,如果是同一个请求下的,也就是request对象没有变,那么可以用这个存储,否则要用session存储,存储数据的对象是P内置的对象,有page,request,session,application等,每个对象都能存储数据,但是作用于不同,page针对当前页面,request针对一个请隐姿梁求,session针对一个会话,application针对整个应用程序。 通常session就可以了。 比如后台获取一个String的name值,那么你可以session.setAttribute(“name”,name); 那么P直接可以EL这册御样写:${sessionScope.name} 获取这个值,这里的name是后台封装的键的名,不是后面变量name的名。

javaweb查询显示数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于javaweb查询显示数据库,快速掌握javaweb查询,轻松显示数据库内容,java web前端如何按条件查询数据库大量数据,javaweb怎么将数据从数据库查出来并返回前台?的信息别忘了在本站进行查找喔。


数据运维技术 » 快速掌握javaweb查询,轻松显示数据库内容 (javaweb查询显示数据库)