- Beranda
- Programmer Forum
Error org.springframework.jdbc.BadSqlGrammarException:
...
TS
kodingers
Error org.springframework.jdbc.BadSqlGrammarException:
Java Spring MVC :
Saya mencoba memasukkan data ke database di PHPMyAdmin dari modal.
Setelah saya coba klik save, ada error ini :
Saya sudah mencoba mencari solusi tapi masih belum ketemu juga ketemu solusinya, Bagaimana solusi error ini ?
TabelDao.java
tabel-servlet.xml
web.xml
Saya mencoba memasukkan data ke database di PHPMyAdmin dari modal.
Setelah saya coba klik save, ada error ini :
Code:
Type Exception Report
Message Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [INSERT INTO Tabel Master Barang (Kode Barang, Nama Barang, Harga Jual, Harga Beli , Satuan, Kategori) values('0','null','0','0','null','null')]; nested exception is java.sql.SQLSyntaxErrorException: 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 'Master Barang (Kode Barang, Nama Barang, Harga Jual, Harga Beli , Satuan, Katego' at line 1
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [INSERT INTO Tabel Master Barang (Kode Barang, Nama Barang, Harga Jual, Harga Beli , Satuan, Kategori) values('0','null','0','0','null','null')]; nested exception is java.sql.SQLSyntaxErrorException: 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 'Master Barang (Kode Barang, Nama Barang, Harga Jual, Harga Beli , Satuan, Katego' at line 1
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause
org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [INSERT INTO Tabel Master Barang (Kode Barang, Nama Barang, Harga Jual, Harga Beli , Satuan, Kategori) values('0','null','0','0','null','null')]; nested exception is java.sql.SQLSyntaxErrorException: 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 'Master Barang (Kode Barang, Nama Barang, Harga Jual, Harga Beli , Satuan, Katego' at line 1
org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
org.springframework.jdbc.core.JdbcTemplate.translateException(JdbcTemplate.java:1414)
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:388)
org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:523)
com.tabel.dao.TabelDao.save(TabelDao.java:20)
com.tabel.controller.TabelController.save(TabelController.java:24)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause
java.sql.SQLSyntaxErrorException: 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 'Master Barang (Kode Barang, Nama Barang, Harga Jual, Harga Beli , Satuan, Katego' at line 1
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)
com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
com.mysql.cj.jdbc.StatementImpl.executeUpdateInternal(StatementImpl.java:1393)
com.mysql.cj.jdbc.StatementImpl.executeLargeUpdate(StatementImpl.java:2353)
com.mysql.cj.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1303)
org.springframework.jdbc.core.JdbcTemplate$1UpdateStatementCallback.doInStatement(JdbcTemplate.java:511)
org.springframework.jdbc.core.JdbcTemplate$1UpdateStatementCallback.doInStatement(JdbcTemplate.java:508)
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:376)
org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:523)
com.tabel.dao.TabelDao.save(TabelDao.java:20)
com.tabel.controller.TabelController.save(TabelController.java:24)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Saya sudah mencoba mencari solusi tapi masih belum ketemu juga ketemu solusinya, Bagaimana solusi error ini ?
Code:
TabelBarang.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/CSS/Style.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<title>Insert title here</title>
</head>
<body>
<div id="button">
<button type="button" class="btn btn-secondary" data-toggle="modal" data-target="#addModal">Add</button>
<button type="button" class="btn btn-secondary">Edit</button>
<button type="button" class="btn btn-secondary">Delete</button>
</div>
<div class="modal fade" id="addModal" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Add Data</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<form method="post" action="${pageContext.request.contextPath}/save" >
<div class="form-group">
<label for="Kode Barang">Kode Barang</label>
<input type="text" class="form-control" id=KodeBarang>
</div>
<div class="form-group">
<label for="Nama Barang">Nama Barang</label>
<input type="text" class="form-control" id=NamaBarang>
</div>
<div class="form-group">
<label for="Harga Beli">Harga Beli</label>
<input type="text" class="form-control" id=HargaBeli>
</div>
<div>
<label for="Harga Jual">Harga Jual</label>
<input type="text" class="form-control" id=HargaJual>
</div>
<div>
<label for="Satuan">Satuan</label>
<input type="text" class="form-control" id=Satuan>
</div>
<div>
<label for="Kategori">Kategori</label>
<input type="text" class="form-control" id=Kategori>
</div>
<br>
<!-- <div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"> Kategori
<span class="caret"></span></button>
<ul class="dropdown-menu" role="menu" >
<li>Makanan</li>
<li>Minuman</li>
</ul>
</div> -->
<div class="modal-footer">
<input type="submit" value="Save">
</div>
</form>
</div>
</div>
</div>
</div>
<div>
<table class="table table-border">
<thead>
<tr>
<td>Kode Barang</td>
<td>Nama Barang</td>
<td>Harga Jual</td>
<td>Harga Beli</td>
<td>Satuan</td>
<td>Kategori</td>
<td id="checkbox"><input type="checkbox"> </td>
</tr>
</table>
<p align="center"> Tidak ada data untuk ditampilkan</p>
</div>
</body>
</html>
Code:
TabelController.java
package com.tabel.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.tabel.dao.TabelDao;
import com.tabel.model.TabelModel;
@Controller
public class TabelController {
@Autowired
TabelDao td;
@RequestMapping(value="/",method=RequestMethod.GET)
public String show( TabelModel tm){
return "TabelBarang";
}
@RequestMapping(value="/save",method=RequestMethod.POST)
public String save(@ModelAttribute("tm") TabelModel tm){
td.save(tm);
return "redirect:/";
}
}
TabelDao.java
Code:
package com.tabel.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import com.tabel.model.TabelModel;
public class TabelDao {
JdbcTemplate template;
public void setTemplate(JdbcTemplate template) {
this.template = template;
}
public int save (TabelModel tm){
String sql = "INSERT INTO Tabel Master Barang (Kode Barang, Nama Barang, Harga Jual, Harga Beli , Satuan, Kategori) values('"+tm.getKodeBarang()+"','"+tm.getNamaBarang()+"','"+tm.getHargaJual()+"','"+tm.getHargaBeli()+"','"+tm.getSatuan()+"','"+tm.getKategori()+"')";
return template.update(sql);
}
}
tabel-servlet.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<beans >
<context:component-scan base-package="com.tabel.controller"></context:component-scan>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/databasebarang"></property>
<property name="username" value="root"></property>
<property name="password" value=""></property>
</bean>
<bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="ds"></property>
</bean>
<bean id="dao" class="com.tabel.dao.TabelDao">
<property name="template" ref="jt"></property>
</bean>
<mvc:default-servlet-handler/>
<mvc:annotation-driven />
<mvc:resources mapping="/resources/**" location="/resources/" />
</beans>
Code:
package com.tabel.model;
public class TabelModel {
private int KodeBarang;
private String NamaBarang;
private int HargaJual;
private int HargaBeli;
private String Satuan;
private String Kategori;
public int getKodeBarang(){
return KodeBarang;
}
public void setKodeBarang(int KodeBarang){
this.KodeBarang=KodeBarang;
}
public String getNamaBarang(){
return NamaBarang;
}
public void setNamaBarang(String NamaBarang){
this.NamaBarang=NamaBarang;
}
public int getHargaJual(){
return HargaJual;
}
public void setHargaJual(int HargaJual){
this.HargaJual=HargaJual;
}
public int getHargaBeli(){
return HargaBeli;
}
public void setHargaBeli(int HargaBeli){
this.HargaBeli=HargaBeli;
}
public String getSatuan(){
return Satuan;
}
public void setSatuan(String Satuan){
this.Satuan=Satuan;
}
public String getKategori(){
return Kategori;
}
public void setKategori(String Kategori){
this.Kategori=Kategori;
}
}
web.xml
Code:
?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<display-name>Tabel</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>tabel</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/tabel-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>tabel</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
nona212 memberi reputasi
1
377
4
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Mari bergabung, dapatkan informasi dan teman baru!
Programmer Forum
20.2KThread•4.3KAnggota
Tampilkan semua post
neko
#1
inert into tabel
tabel itu kan bahasa indonesia, bukan inggris
tabel itu kan bahasa indonesia, bukan inggris
0
Tutup