Java 如何选择和查看具有特定值的数据库?

Java 如何选择和查看具有特定值的数据库?,java,sql,select,Java,Sql,Select,因此,我试图搜索并打印PHPMyAdmin数据库中的值。但结果显示了包含该值的变量的所有行。就像我尝试搜索值为2的变量int bulan时一样。这还显示了一个值为12、22或23的行 这是我的密码 System.out.print("Masukkan bulan yang ingin ditampilkan [mm]: "); var.mnip=input.nextLine(); try{

因此,我试图搜索并打印PHPMyAdmin数据库中的值。但结果显示了包含该值的变量的所有行。就像我尝试搜索值为2的变量
int bulan
时一样。这还显示了一个值为12、22或23的行

这是我的密码

System.out.print("Masukkan bulan yang ingin ditampilkan [mm]: ");
                var.mnip=input.nextLine();
                try{
                String sql="SELECT * FROM lembur " + "where bulan like('%" + var.mnip + "%')";
                st= (PreparedStatement) conn.prepareStatement(sql);
                rs = st.executeQuery(sql);
                while (rs.next()) {
                        System.out.println ("");
                        System.out.println ("Nomer Input       :"+rs.getString("number"));
                        System.out.println ("Nama              :"+rs.getString("nama"));
                        System.out.println ("NIP               :"+rs.getString("nip"));
                        System.out.println ("Divisi            :"+rs.getString("divisi"));
                        System.out.println ("Waktu Lembur      :");
                        System.out.println ("dd/mm/yyyy");
                        System.out.println ("\tTanggal :"+rs.getString("tanggal"));
                        System.out.println ("\tBulan   :"+rs.getString("bulan"));
                        System.out.println ("\tTahun   :"+rs.getString("tahun"));
                        System.out.println ("Keterangan Lembur :"+rs.getString("ket_lembur"));
                        System.out.println ("Lama Lembur       :"+rs.getString("divisi"));
                        System.out.println ("");
                        System.out.println ("======================================");
                        System.out.println ("");
                  }
                }
                catch(SQLException e){
                System.out.println("Data Ada Kesalahan" + e.toString());
                    }

Like运算符给出值为2的所有匹配,这就是为什么在输出中得到12、22或23,您应该使用
equal to operator
进行精确匹配


如果要使用
int
输入获取值

SELECT * FROM lembur where bulan = 2
如果要搜索以“2”开头的
字符串
变量

SELECT * FROM lembur where bulan like '2%'
使用以下命令:

String sql=“SELECT*FROM lembur”+,其中bulan=('var.mnip')”

当您使用“like”时,查询将给出一个结果,其中输出将包含值而不是确切的值,因此您的代码将被指定为“bulan”,其中包含“2”,而不是值为“2”的“bulan”


如果它不起作用,请告诉我:)

这就是
喜欢的(%…)
的功能。如果你想找到一个等于2的值,那么你应该使用
=
。你的where子句是“where-bulan-like(“%””+var.mnip+“%”)。如果您想要一个精确的查询,请将其更改为where bulan=var.mnip。感谢您的回复,我尝试这样编辑它:`String sql=“SELECT*FROM lembur”+“where bulan=var.mnip”;`但是结果是这样的:Data Ada Kesalahan com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:where子句中的未知列'var.mnip'这不是,我第一次尝试了这个。
SELECT * FROM lembur where bulan like '2%'