How to pass java string variable in sql query. I did the whole JDBC connection.
My sql database query
sql = "Select * from production AS cust INNER JOIN location AS comp ON cust.location_id = comp.location_id where comp.name = locationnames AND crop_id =1";
He does not work. However, if I do the following code, its working
sql = "Select * from production AS cust INNER JOIN location AS comp ON cust.location_id = comp.location_id where comp.name = "\taplejung"\ AND crop_id =1";
Now tell me how to pass the variable name to the sql query in order to accomplish this. Jst tell me how to pass locationnames variables to comp.name.
My full java function looks like this: locationCombo denotes the item selected in combobox. CropCombo also means the same ...
public void displayYearwise() throws SQLException, ClassNotFoundException{ //jComboBox4.setSelectedItem("Crops"); //DefaultCategoryDataset dataset = new DefaultCategoryDataset(); XYSeriesCollection dataset = new XYSeriesCollection(); XYSeries series = new XYSeries("production"); XYSeries series1 = new XYSeries("scat"); String JDBC_DRIVER="com.mysql.jdbc.Driver"; String DB_URL="jdbc:mysql://localhost/data2"; Connection conn; Statement stmt; String USER = "root"; String PASS = ""; Object cropname = CropCombo.getSelectedItem(); String cropnames = cropname.toString(); Object locationname = locationCombo.getSelectedItem(); // String locationnames = locationname.toString(); String locationnames = "taplejung"; String pd="paddy "; System.out.println(cropnames.length()+" "+pd.length()); System.out.println(cropsList); String sql=null; if(cropnames.equals("paddy")) { //System.out.println(); sql="Select * from production AS cust INNER JOIN location AS comp ON cust.location_id = comp.location_id WHERE comp.name = "+locationnames+" AND crop_id =1"; } else{ sql="SELECT * FROM `production` WHERE crop_id = 4 AND location_id = 10"; } try{ Class.forName(JDBC_DRIVER); conn=DriverManager.getConnection(DB_URL,USER,PASS); System.out.println("Creating statement..."); stmt = conn.createStatement(); System.out.println(sql); ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ //String student = rs.getString("studentname"); String yeartext = rs.getString("year_of_production"); //double value = Double.parseDouble(text); String productiontext = rs.getString("production_amount"); Double yield = rs.getDouble("yield_amount"); double production = Double.parseDouble(productiontext); double year = Double.parseDouble(yeartext); series.add(year,production) ; series1.add(year,yield) ; //dataset.addSeries(series); } dataset.addSeries(series); dataset.addSeries(series1); chartArea.removeAll(); JFreeChart chart = ChartFactory.createScatterPlot("Scatter Plot","Year","Paddy Production", dataset); // JFreeChart chart = ChartFactory.createScatterPlot("Scatter Plot","Year","Paddy Production", dataset, PlotOrientation.HORIZONTAL, rootPaneCheckingEnabled, rootPaneCheckingEnabled, rootPaneCheckingEnabled); // CategoryPlot p = chart.getCategoryPlot(); //XYPlot xyplot = (XYPlot)jfreechart.getPlot(); //http://stackoverflow.com/questions/12417732/jfreechart-with-scroller ChartPanel chartPanel = new ChartPanel(chart, false); chartArea.setLayout(new BorderLayout()); chartArea.add(chartPanel, BorderLayout.EAST); chartArea.add(chartPanel); SwingUtilities.updateComponentTreeUI(this); // p.setRangeGridlinePaint(blue); chartArea.updateUI(); System.out.println("Database created successfully..."); } catch(SQLException se) { //Handle errors for JDBC System.out.println("Connect failed ! "); se.printStackTrace(); // JOptionPane.showMessageDialog(MajorUI.this, err.getMessage()); } }
java sql
enjal
source share