会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132498个问题
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解 28486楼
Python 全系列/第一阶段:Python入门/序列 28489楼

容器中有两个同名hello对象,如果用list.remove("hello"),为何默认删除索引是0的这个,如果要删除后面的hello只能根据索引删除吗?


package string;


import java.util.List;
import java.util.ArrayList;
import java.util.Scanner;

public class TestArrayList {
    public static void main(String[] args) {
        //创建集合对象,接口new实现类
        List list = new ArrayList();
        //1.添加add(Object obj)
        list.add("hello");
        list.add(123);//自动装箱

        //2.集合中元素的个数size()
        System.out.println(list.size());
        System.out.println("集合是否为空"+list.isEmpty());
        //3.addAll(collection c)集合中元素添加到其他集合中
        List list2=new ArrayList();
        list2.add("hello");
        list2.add(123);
        list.addAll(list2);
        System.out.println(list);
        System.out.println("集合中元素个数"+list.size());
        //4.删除
        System.out.println("根据对象去删除");
        list.remove("hello");
        System.out.println(list);
        list.remove(new Integer(123));//索引
        System.out.println(list);
        list.remove(0);//根据索引去删除
        System.out.println(list);
        list.add("world");
        System.out.println(list);
    }
}


JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 28492楼


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技术 28494楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 28495楼
人工智能/第四阶段:人工智能基础-高等数学知识强化/一元函数微分学 28498楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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