jdbc+executeQuery实现数据库查询

jdbc+executeQuery实现数据库查询

yigehowo 2017-07-23 21:43:14  17483  收藏 1
分类专栏: Java
版权
一、使用Statement

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class testQuery {
   //通过status进行查询
public static void testQuery(String status){
//声明连接对象,语句对象,以便可以在finally中关闭
Connection conn=null;
Statement stmt=null;
try{
//加载驱动类,不同数据库软件驱动类不同
Class.forName("com.mysql.jdbc.Driver");
//使用DriverManager获得连接对象,其中url每个数据库不同
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=utf8",
"root","1234");
//使用连接对象,获得语句对象Statement
stmt=conn.createStatement();
String sql="select * from user where status="+status;
//执行查询,返回结果集
ResultSet rs=stmt.executeQuery(sql);
//使用next方法,迭代结果集,使用getXXX方法,获得每条记录的字段值
while(rs.next()){
System.out.println(rs.getString(1)+" "+rs.getString(2)+" "+rs.getString(3)+" "+
rs.getString(4)+" "+rs.getString(5));
}
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}finally{
//将语句对象,连接对象,进行关闭
if(stmt!=null){
try{
stmt.close();
}catch(SQLException e){
e.printStackTrace();
}
}
if(conn!=null){
try{
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
}

public static void main(String[] args){
testQuery("0");
}
}

二、使用PreparedStatement

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


public class testQuery {
    //通过status进行查询
public static void testQuery(String pwd,String status){
//声明连接对象,语句对象,以便可以在finally中关闭
Connection conn=null;
PreparedStatement pstmt=null;
try{
//加载驱动类,不同数据库软件驱动类不同
Class.forName("com.mysql.jdbc.Driver");
//使用DriverManager获得连接对象,其中url每个数据库不同
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=utf8",
"root","1234");
//使用预编译语句PreparedStatement
String sql="select * from user where pwd=? and status=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, pwd);
pstmt.setString(2, status);
//执行查询,返回结果集
ResultSet rs=pstmt.executeQuery();
//使用next方法,迭代结果集,使用getXXX方法,获得每条记录的字段值
while(rs.next()){
System.out.println(rs.getString(1)+" "+rs.getString(2)+" "+rs.getString(3)+" "+
rs.getString(4)+" "+rs.getString(5));
}
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}finally{
//将语句对象,连接对象,进行关闭
if(pstmt!=null){
try{
pstmt.close();
}catch(SQLException e){
e.printStackTrace();
}
}
if(conn!=null){
try{
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
}

public static void main(String[] args){
testQuery("2","0");
}
}

心得:

1、PreparedStatement中setString后面跟的序数是问号的序数,而不是在数据库中列名的序数;

2、注意区别:ResultSet rs=pstmt.executeQuery()和ResultSet rs=stmt.executeQuery(sql);
————————————————
版权声明:本文为CSDN博主「yigehowo」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yigehowo/article/details/75948669

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值