Ajuda com sql

Gente por favor alguem me ajuda pelo amor de deus, que birosca que esta errado no codigo abaixo, estou fazendo um filtro simples de um relatorio, mas insiste em dar erro de sintaxe, sei la mais oq fazer, ao executar o sql no xamp ta certinho a consulta.

public class RelatFiltro {
	
	ConexaoMySql con = new ConexaoMySql();
	
	public void RelatFiltro(String codigoVenda) {
		try {
			con.conectar();
			con.executarSQL("SELECT * from tbl_vendas where pk_id_vendas '"+codigoVenda+"';");
			JRResultSetDataSource jrRS = new JRResultSetDataSource(con.getResultSet());
			JasperPrint jasperPrint = JasperFillManager.fillReport("C:/Projetos Java/BiaHotDog/src/ArquivosJasper/report1.jasper", new HashMap(), jrRS);
			JasperViewer.viewReport(jasperPrint);
		} catch (Exception erro) {
			JOptionPane.showMessageDialog(null, "deu erro ="+erro);
		}
	}

O erro:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '''' at line 1
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
	at com.mysql.jdbc.Util.getInstance(Util.java:408)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3933)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3869)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2675)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2439)
	at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1365)
	at conexoes.ConexaoMySql.executarSQL(ConexaoMySql.java:79)
	at relatorios.RelatFiltro.RelatFiltro(RelatFiltro.java:28)
	at relatorios.ImprimeRelatFiltro.jButton1ActionPerformed(ImprimeRelatFiltro.java:68)
	at relatorios.ImprimeRelatFiltro.access$000(ImprimeRelatFiltro.java:12)
	at relatorios.ImprimeRelatFiltro$1.actionPerformed(ImprimeRelatFiltro.java:38)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6533)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6298)
	at java.awt.Container.processEvent(Container.java:2236)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Container.dispatchEventImpl(Container.java:2294)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
	at java.awt.Container.dispatchEventImpl(Container.java:2280)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Parece que faltou um = no seu sql:

"SELECT * from tbl_vendas where pk_id_vendas = '"+codigoVenda+"';"
                                             ^
1 curtida

Então eu fiz assim também, ai da este erro, isso que não estou entendendo.

A tua coluna tem realmente este nome? Parece mais nome da chave primária e não da coluna.

pmlm, sim na verdade é uma chave primaria mesmo, no caso sendo chave primaria não funciona? O estranho que tentei pela coluna data, esta sim é uma coluna e da o mesmo erro, mas vou tentar de outra maneira.

Não estou a questionar se a coluna é chave primária.
Estou a questionar se esse é mesmo o nome da coluna pois nao é normal ter colunas com nome pk_*

1 curtida

pmlm, A sim, é o nome mesmo, eu na verdade acho que estou com algum erro, porque mesmo no irreport não funciona o parâmetro, e estou passando corretamente.

SELECT * from tbl_vendas where ven_data_venda between $P!{dt1} and $P!{dt2}
SELECT * from tbl_vendas where pk_id_vendas = $P!{venda}

Mesmo assim da como documento não contem paginas.

O mesmo acontece ao filtrar pelo id da venda