1~

Minter Coder's Blog

7-Jsp & Servlet Database

2021-01-15

Arkadaşlar merhabalar bu dersimizde servlet ile veritabanı bağlantısını işleyeceğiz.Tabi bu konudan önce jdbc konusunda bilgi sahibi olmanız gerekiyor.

Öncelikle veritabanımızı oluşturalım ben users adlı bir database oluşturdum ve user adlı tablo oluşturdum tablomun da içeriğini size aşağıda gösterecem.

Evet şimdi veritabanı ile bağlantı kısmında yapmamız gereken birkaç şey var onları aşağıda anlattıkdan sonra örneğimizin kodlarını ve fotoğrafını atıcam;

Öncelikle veritabanıyla bağlantı yapabilmek için mysql connector.jar indirmeniz gerekiyor

1-> https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.22

Daha sonra indirdiğiniz jar dosyasını WebContent - WEB-INF altında lib dosyasına atın ve sağ tıklayıp build path -> add build path tıklayın.

Ve buradan sonra artık bi nevi mvc(model view controller) yapısına azıcık giriş yapıyoruz model nedir view nedir controller nedir Model bizim veritabanında oluşturduğumuz user bir modeldir , view bizim jsp dosyasını kullanarak gösteriyi yaptığımız yer , controllerde işin backendinde veritabanıyla filan işleri yapan kısım.

User classımız.Database.java da ise bizim veritabanıyla olan bağlanıtmızı bulup ekrana yazdıran sınıf fakat ben orada bir controller ve viewi aynı yerde kullandım veritabanı ile bağlantıyı ve gösterim yerini.Genelde veritabanı .jsp uzantılı dosyada yapılır.Yavaş yavaş ilerliyoruz..En sonda basit bir blog sitesi yapacaz zaten orada belli olacaktır.

Database.java ve User.java dosyalarını aşağı kısma atıyorum Database.javayı çalıştırıp sonucu ekranda görünce böyle oluyor.

 

Database.java

package com.kerem;
 
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import com.kerem.entity.User;
 
@WebServlet("/Database")
public class Database extends HttpServlet {
private static final long serialVersionUID = 1L;
 
private static final String jdbcDriver = "com.mysql.cj.jdbc.Driver";
private static final String db_url = "jdbc:mysql://localhost/users";
private static final String user = "VERITABANI KULLANICISI";
private static final String password = "VERITABANI KULLANICI SIFRESI";
 
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter writer = response.getWriter();
writer.println("<html><head><title>Database</title></head><body>");
List<User> listOfUsers = users();
writer.println("<table border='1'>");
if(listOfUsers != null) {
writer.println("<tr><th>Username</th><th>Password</th></tr>");
for(int i = 0;i<listOfUsers.size();i++) {
writer.println("<tr><td>"+listOfUsers.get(i).getUsername()+"</td>");
writer.println("<td>"+listOfUsers.get(i).getPassword()+"</td></tr>");
}
}else {
writer.println("Kullanici yok");
}
writer.println("</table></html>");
}
 
private List<User> users(){
List<User> listOfUsers = null;
User tempUser = null;
Connection conn = null;
PreparedStatement statement = null;
ResultSet rSet = null;
try {
listOfUsers = new ArrayList<>();
Class.forName(jdbcDriver);
conn = DriverManager.getConnection(db_url,user,password);
String sql = "select * from user";
statement = conn.prepareStatement(sql);
rSet = statement.executeQuery();
while(rSet.next()) {
tempUser = new User(rSet.getString("username"),rSet.getString("password"));
listOfUsers.add(tempUser);
}
}catch(Exception e) {
e.printStackTrace();
}finally{
try {
if(statement != null)
statement.close();
if(conn != null)
conn.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
return listOfUsers;
}
 
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
 
}

 User.java

package com.kerem.entity;
 
public class User {
 
private String username;
private String password;
 
public User(String username, String password) {
this.username = username;
this.password = password;
}
 
public User() {
}
 
public String getUsername() {
return username;
}
 
public void setUsername(String username) {
this.username = username;
}
 
public String getPassword() {
return password;
}
 
public void setPassword(String password) {
this.password = password;
}
}

Arkadaşlar önceki dersleri okuyup geldiyseniz yukarıdaki bu ders için kodları açıklamam sadece dersi çok daha uzatacak gerçekten.Umarım anlaşılabilmiştir görüşürüz :)