- 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
Terlama
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru