快速掌握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
}
“`
相关问题拓展阅读:
1.参数传到后台,通过hibernate的hql语句写一个普通的模糊查询就可以了,hql基本无法优化,只能加索引。
2.用jdbc或者mybatis。
3.配置文件应该是jdbc.properties吧?一般不需要,因为jdbc.properties里一般只写driver 、url、username和password,顶多还有或缺一衡槐些连接池相关衫拦辩的配置。
你用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怎么将数据从数据库查出来并返回前台?的信息别忘了在本站进行查找喔。
香港服务器选创新互联,2H2G首月10元开通。
创新互联(www.cdcxhl.com)互联网服务提供商,拥有超过10年的服务器租用、服务器托管、云服务器、虚拟主机、网站系统开发经验。专业提供云主机、虚拟主机、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。
网页标题:快速掌握javaweb查询,轻松显示数据库内容(javaweb查询显示数据库)
本文来源:http://www.csdahua.cn/qtweb/news9/512459.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网