美文网首页
Java-动态参数连接mysql

Java-动态参数连接mysql

作者: 九七学姐 | 来源:发表于2017-07-27 12:32 被阅读40次

    总结表述能力太有限,还是大篇幅描述一下自己的小程序吧。主要是java中一些对mysql的操作,比如创建表,查询表,以及随机查询表中的几条记录。可参考MySQL Java tutorial,本篇文章详细介绍一下如何随机查询表中的几条记录。手册中给出的只有url一个参数,我的要求是表名,以及几条记录都作为参数,由用户自定义的,所以,就要涉及到mysql语句的拼接问题了。想来想去也只能用字符串拼接了,还是直接贴代码,代码中注释。欢迎有需要的小伙伴参考,也欢迎各路大神指教。

    import java.io.IOException;
    import java.sql.*;
    
    /**
     * Created by xh on 17-7-26.
     * 随机读取数据库中的size条记录,注意,tableName及记录的条数作为参数传入,所以需要用到字符串拼接,StringBuffer()
     * append()方法,另外需要转换成字符串的时候使用.toString()即可
     */
    public class ReadSqlrecorderRandom {
        public static void main(String[] args) throws IOException {
            getRecordsRandom("jdbc:mysql://数据库","表",记录的数量);
        }
        public static ResultSet getRecordsRandom(String url, String tableName,int size) throws IOException {
            Connection con = null;
            PreparedStatement pst = null;
            ResultSet rs = null;
            String user = "root";
            String password = "passwd";
            try {
    
                con = DriverManager.getConnection(url, user, password);
                StringBuffer sql=new StringBuffer("SELECT * FROM  ");
                if(tableName !=null){
                   sql.append(tableName);
                   sql.append(" order by rand() LIMIT ");
                   sql.append(size);
                }
    
                //pst = con.prepareStatement("SELECT * FROM" +tableName+ "order by rand() LIMIT" +size+ "");
                pst = con.prepareStatement(sql.toString());
                rs = pst.executeQuery();
    
                while (rs.next()) {
    
                    System.out.print(rs.getInt(1));
                    System.out.print(": ");
                    System.out.println(rs.getString(2));
                }
    
            } catch (SQLException ex) {
                ex.printStackTrace();
                //Logger lgr = Logger.getLogger(RetrieveAll.class.getName());
                // lgr.log(Level.SEVERE, ex.getMessage(), ex);
    
            } finally {
    
                try {
    
                    if (rs != null) {
                        rs.close();
                    }
    
                    if (pst != null) {
                        pst.close();
                    }
    
                    if (con != null) {
                        con.close();
                    }
    
                } catch (SQLException ex) {
                    ex.printStackTrace();
                    //Logger lgr = Logger.getLogger(getRecordsRandom().class.getName());
                    //lgr.log(Level.WARNING, ex.getMessage(), ex);
                }
            }
            return  rs;
        }
    }
    
    

    相关文章

      网友评论

          本文标题:Java-动态参数连接mysql

          本文链接:https://www.haomeiwen.com/subject/qvrzkxtx.html