javasql查询,java mysql 查询

发布时间:2023-01-09

本文目录一览:

1、如何用java语言中如何执行sql查询语句
2、java sql数据库查询语句怎么写
3、java 获取SQL查询语句返回的结果
4、java 获取SQL查询语句返回的结果?
5、java如何实现sql连接和查询的代码?

如何用java语言中如何执行sql查询语句

使用jdbc技术,首先导入连接数据库的jar包,声明加载的类名,获取连接,进行查询,如:

Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger");
Statement sta = conn.createStatement();
ResultSet rs = sta.executeQuery("select * from tablename");

java sql数据库查询语句怎么写

使用java的jdbc来连接数据库 如连接mysql(其余数据库类似),引入mysql-connector-java-5.1.24.jar包到工程中,在程序中可以这样连接mysql:

String Server = 你服务器的ip;
String User = 你的账号名;
String Password = 你的密码;
String Database = 你的数据库名;
// 驱动程序名
String driver = "com.mysql.jdbc.Driver";
// URL指向要访问的数据库名scutcs
String url = "jdbc:mysql://"+Server+"/" + Database;
// 加载驱动程序
Class.forName(driver);
// 连接数据库
Connection conn = DriverManager.getConnection(url, User, Password);
if(!conn.isClosed())
    System.out.println("Succeeded connecting to the Database!");
// statement用来执行SQL语句
Statement statement = conn.createStatement();
String sql = "select ** from ** where **";
ResultSet rs = statement.executeQuery(sql);
//假设数据库表只有两个属性值,一个属性值为String类型,另一个为Int类型
while(rs.next()) {
    System.out.println(rs.getString(1)+" " +rs.getInt(2) );
}

java 获取SQL查询语句返回的结果

在Java中,获得ResultSet的总行数的方法有以下几种。

第一种:利用ResultSet的getRow方法来获得ResultSet的总行数

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rset = stmt.executeQuery("select * from yourTableName");
rset.last();
int rowCount = rset.getRow(); //获得ResultSet的总行数

第二种:利用循环ResultSet的元素来获得ResultSet的总行数

ResultSet rset = stmt.executeQuery("select * from yourTableName");
int rowCount = 0;
while(rset.next()) {
    rowCount++;
}
// rowCount就是ResultSet的总行数。

第三种:利用sql语句中的count函数获得ResultSet的总行数

ResultSet rset = stmt.executeQuery("select count(*) totalCount from yourTableName");
int rowCount = 0;
if(rset.next()) {
    rowCount=rset.getInt("totalCount");
}
// rowCount就是ResultSet的总行数。

Java中获得ResultSet的总列数是非常简单事情,因为Java中ResultSet提供了ResultSetMetaData工具类,ResultSetMetaData是ResultSet的元数据的集合说明。

Java中获得ResultSet总列数的代码如下:

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rset = stmt.executeQuery("select * from yourtable");
ResultSetMetaData rsmd = rset.getMetaData();
// columnCount就是ResultSet的总列数。

java 获取SQL查询语句返回的结果?

step1:构造连接

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/db","root","123");

step2:构造语句

String sql = "select username,password from t_user where username=?";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, "zhangshan"); //给SQL的"?"(问号)传值。

step3:执行查询

ResultSet rs = stmt.executeQuery(); //rs就是SQL查询语句返回的结果集

step4:处理结果(java 获取SQL查询语句返回的结果)

List list = new ArrayList();
//遍历结果集,这样写就可以了,就是一个循环,有多少条记录,这里就会循环多少次,
//一次就是一条记录,想像一下就像一个表的一条记录
//在这里可以做查询出来的数据处理,可以封装成对象之类的(就是把值给它)
if(rs.next()) { //遍历结果集,这样写就可以了
    User u = new User();
    String username = rs.getString("username");
    String address = rs.getString("password ");
    u.setUsername(username);
    u.setAddress(address);
    list.add(u);
}
//上面这个例子意思是,把每一条记录封装成了一个User对象,然后这些User对象都放存入到了一个list

step4:关闭连接等


java如何实现sql连接和查询的代码?

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class DBCon {
    //数据库驱动对象
    public static final String DRIVER="oracle.jdbc.driver.OracleDriver";
    //数据库连接地址(数据库名)
    public static final String URL="jdbc:oracle:thin:@localhost:1521:orcl";
    //登陆名
    public static final String USER="FM";
    //登陆密码
    public static final String PWD="FM";
    //创建数据库连接对象
    private Connection con=null;
    //创建数据库预编译对象
    private PreparedStatement ps=null;
    //创建结果集
    private ResultSet rs=null;
    //创建数据源对象
    public static DataSource source=null;
    /**
     * 获取数据库连接
     */
    public Connection getCon(){
        try {
            Class.forName(DRIVER);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            con=DriverManager.getConnection(URL,USER,PWD);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return con;
    }
    /**
     * 关闭所有资源
     */
    public void closeAll(){
        if(rs!=null)
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        if(ps!=null)
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        if(con!=null)
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
    }
    /**
     * @param sql 数据库更新(增、删、改) 语句
     * @param pras 参数列表(可传,可不传,不传为NULL,以数组形式存在)
     * @return 返回受影响的行数
     */
    public int update(String sql,String... pras){
        int resu=0;
        con=getCon();
        try {
            ps=con.prepareStatement(sql);
            for(int i=0; i<pras.length; i++){
                ps.setString(i+1,pras[i]);
            }
            resu=ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally{
            closeAll();
        }
        return resu;
    }
    /**
     * @param sql 数据库查询语句
     * @param pras 参数列表(可传,可不传,不传为NULL,以数组形式存在)
     * @return 返回结果集
     */
    public ResultSet query(String sql,String... pras){
        con=getCon();
        try {
            ps=con.prepareStatement(sql);
            if(pras!=null)
                for(int i=0; i<pras.length; i++){
                    ps.setString(i+1, pras[i]);
                }
            rs=ps.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return rs;
    }
}