600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 实现升序降序排列问题

实现升序降序排列问题

时间:2020-08-02 20:30:28

相关推荐

实现升序降序排列问题

package com.bjpowernode.jdbc;import java.sql.*;import java.util.Scanner;/*** 需求:用户在控制台上输入desc则降序,输入asc则升序* 思考:为了完成上述需求是使用Statement还是使用preparedStatement呢?* 这里就不能使用preparedStatement,因为它只适合传值,不能进行字符串的拼接,为此这里只能使用Statement。* 此时如果使用PreparedStatement,通过传值来实现就会出现如下情况:* String sql = "select ename,sal from emp order by sal ?";* ps = conn.prepareStatement(sql);* 这时对这条sql语句进行传值,一定是传入一个字符串的操作* ps.setString(1,"asc");* 传值后的sql语句就变成了如下的情况*select ename,sal from emp order by sal "asc";双引号是自动添加的。这是错误的sql语句。*select ename,sal from emp order by sal asc;这是正确的sql语句。* 为此为了实现排序的需求只能使用Statement。*/public class 实现升序降序排列问题 {public static void main(String[] args) {Scanner s = new Scanner(System.in);System.out.print("请输入desc或asc【desc表示降序,asc表示升序:】");String orderKey = s.next();Connection conn = null;Statement stmt = null;ResultSet rs = null;try {//1.注册驱动Class.forName("com.mysql.jdbc.Driver");//2.获取连接conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","******");//3.获取预编译的数据库操作对象stmt = conn.createStatement();//4.执行SQL语句String sql = "select ename,sal from emp order by sal " + orderKey;//这里需要注意sal后面千万别少了一个空格" "。rs = stmt.executeQuery(sql);//5.处理查询结果集while (rs.next()){//String ename = rs.getString("ename");//String sal = rs.getString("sal");System.out.println(rs.getString("ename") + "," + rs.getString("sal"));}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {if (rs != null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (stmt != null) {try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。