会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132776个问题
JAVA 全系列/第四阶段:网页编程和设计/Javascript 语言(旧) 11206楼
Python 全系列/第五阶段:数据库编程/MySQL数据库的使用 11207楼
JAVA 全系列/第五阶段:JavaWeb开发/Web实战案例 11208楼
JAVA 全系列/第七阶段:生产环境部署与协同开发/Linux 11209楼
JAVA 全系列/(旧的隐藏)第二十一阶段:百战商城项目(Spring Cloud最新架构)/百战商城项目 11211楼
JAVA 全系列/第八阶段:SpringBoot与MybatisPlus/Spring Boot(旧) 11212楼
Python 全系列/第一阶段:Python入门/控制语句 11213楼

有一个有点奇怪的问题,我已经加add方法了,为什么我这边调用仍然不让我调用add方法,自动校正一直让我重新加一个private void add,  我前面写的那个

public void add(E element){

不知道为什么没有生效,完整code我附下面

image.png

package com.bjsxt;

public class BinaryTreeSort<E extends Integer> {
    class Node<E extends Integer>{
        private E item;
        private Node left;
        private Node right;
        Node(E item){
            this.item = item;
        }


        public void addNode(Node node){
            if(node.item.intValue() < this.item.intValue()){
                if(this.left == null){
                    this.left = node;
                }else{
                    this.left.addNode(node);
                }else{
                    if(this.right == null){
                        this.right = node;
                    }else{
                        this.right.addNode(node);
                    }
                }

            }
        }
        public void inorderTranversal(){
            if(this.left != null)this.left.inorderTranversal();
            System.out.println(this.item);
            if(this.right != null)this.right.inorderTranversal();
    }

    private Node root;

    public void add(E element){
        Node<E> node = new Node<>(element);
        if(this.root == null)
            this.root = node;
        else
            this.root.addNode(node);
    }
    public void sort(){
        if(this.root == null)return;
        this.root.inorderTranversal();
    }

    public static void main(String[] args) {
        BinaryTreeSort<Integer> sort = new BinaryTreeSort<>();
        sort.add();
    }

}


JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 11214楼
Python 全系列/第七阶段:网页编程基础/小米官网项目 11215楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 11217楼


1651156283(1).png

package com;

import com.mysql.jdbc.PreparedStatement;

import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class DynamicConditionQuertTest {
    /**
     * 动态条件查询Users
     */
    public List<Users> queryUser(Users users){
        List<Users> list = new ArrayList<>();

        Connection connection = null;
        PreparedStatement ps = null;
        ResultSet rs = null ;
        try {
            //创建链接
            connection = jdbcUtill.getConnection();
            //拼接查询sql语句
            String sql = this.generateSql(users);
            System.out.println(sql);
            //创建PreparedStatement对象
            ps = (PreparedStatement) connection.prepareStatement(sql);
            //执行sql
            rs = ps.executeQuery();
            while (rs.next()){
                Users users1 = new Users();
                users1.setUserid(rs.getInt("userid"));
                users1.setUserage(rs.getInt("userage"));
                users1.setUsername(rs.getString("username"));
                list.add(users1);
            }

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            jdbcUtill.closeResource(rs,ps,connection);
        }
        return list;
    }

    /**
     * 生成动态条件查询sql
     * @param
     */
    public String generateSql(Users users){
        StringBuffer sb = new StringBuffer("select * from users where 1=1");

        if (users.getUserid()>0){
            sb.append("and userid = ").append(users.getUserid());
        }
        if(users.getUsername()!=null&&users.getUsername().length()>0){
            sb.append("and username = '").append(users.getUsername()).append("'");

        }
        if (users.getUserage()>0){
            sb.append("and userage =").append(users.getUserage());
        }
        return sb.toString();

    }

    public static void main(String[] args) {
        DynamicConditionQuertTest dcq = new DynamicConditionQuertTest();
        Users users1 = new Users();
        users1.setUsername("xiaoming");
        users1.setUserage(23);
        List<Users> list = dcq.queryUser(users1);

        for (Users users2 :list){
            System.out.println(users2.getUserid()+" "+users2.getUsername()+" "+users2.getUserage());
        }

    }
}


异常报错

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'username = 'xiaoming'and userage =23' at line 1


我没加限定条件

 users1.setUsername("xiaoming");
        users1.setUserage(23);

是没报错的,加了反而报错不知道为什么,老师看一下

JAVA 全系列/第三阶段:数据库编程/JDBC技术 11218楼
JAVA 全系列/第七阶段:生产环境部署与协同开发/Linux 11219楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 11220楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637