Merhaba Java’da veritabanı ile alıştırma yapıyordum. Kodum bu:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Random;
public class SQliteFun{
static String url;
static void createTable(String namedb) throws SQLException{
url = "jdbc:sqlite:C:\\Users\\talha\\Desktop\\learningSQlite\\"+namedb+".db";
String sql = "CREATE TABLE IF NOT EXISTS ogrenciler (\n"
+ "ad TEXT,\n"
+ "soyad TEXT, \n"
+ "numara INTEGER UNIQUE\n"
+ ");";
Connection conn = DriverManager.getConnection(url);
Statement st = conn.createStatement();
st.execute(sql);
}
static void insertData(String name, String lastname, int num) throws SQLException {
Connection conn = DriverManager.getConnection(url);
String sql_add = "INSERT INTO ogrenciler(ad,soyad,numara) VALUES('"+name+"','"+lastname+"','"+num+"')";
Statement st = conn.createStatement();
st.executeUpdate(sql_add);
}
static void insertData(String name, String lastname) throws SQLException {
String sql = "select * from ogrenciler";
Connection conn = DriverManager.getConnection(url);
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
Random r = new Random();
int num = r.nextInt(999)+100;
String sql_add = "INSERT INTO ogrenciler(ad,soyad,numara) VALUES('"+name+"','"+lastname+"','"+num+"')";
while(rs.next()) {
if(num == rs.getInt("numara")) {
num = r.nextInt(999)+100;
}
else {
st.executeUpdate(sql_add);
}
}
}
static void pullData() throws SQLException {
String sql = "select * from ogrenciler";
Connection conn = DriverManager.getConnection(url);
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
while(rs.next()) {
System.out.println("Ad: "+rs.getString("ad")+" "+"Soyad: "+rs.getString("soyad")+" "+"Numara: "+rs.getInt("numara"));
}
}
static void nameStartWith(String a) throws SQLException {
String sql = "select * from ogrenciler";
Connection conn = DriverManager.getConnection(url);
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
while(rs.next()) {
String k = rs.getString("ad");
if (k.startsWith(a)) {
System.out.println("Ad: "+k+" "+"Soyad: "+rs.getString("soyad")+" "+"Numara: "+rs.getInt("numara"));
}
else if(!k.equals(a)) {
System.out.println(a+" ile başlayan bir isim bulunamadı.");
}
else {
continue;
}
}
}
static void lastnameStartWith(String a) throws SQLException {
String sql = "select * from ogrenciler";
Connection conn = DriverManager.getConnection(url);
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
while(rs.next()) {
String k = rs.getString("soyad");
if (k.startsWith(a)) {
System.out.println("Ad: "+rs.getString("ad")+" "+"Soyad: "+k+" "+"Numara: "+rs.getInt("numara"));
}
else {
continue;
}
}
}
static void numStartWith(int a) throws SQLException {
String sql = "select * from ogrenciler";
Connection conn = DriverManager.getConnection(url);
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
while(rs.next()) {
int k = rs.getInt("numara");
if (Integer.toString(k).startsWith(Integer.toString(a))) {
System.out.println("Ad: "+rs.getString("ad")+" "+"Soyad: "+rs.getString("soyad")+" "+"Numara: "+k);
}
else {
continue;
}
}
}
public static void main(String[]args) throws SQLException {
createTable("ogrenci");
insertData("Aydın","Yılmaz");
pullData();
System.out.println("");
System.out.println("-----------------------------------------");
nameStartWith("Z");
System.out.println("-----------------------------------------");
lastnameStartWith("P");
System.out.println("-----------------------------------------");
numStartWith(3);
}
}
nameStartWith() fonksiyonunda mesela aranan isim bulunamaz ise a ile başlayan isim bulunamadı.
diyor. Lakin şöyle bir sorun var veritabanında ne kadar veri varsa o kadar bunu yazdırıyor. Bunu nasıl engellerim.
nameStartWith():
static void nameStartWith(String a) throws SQLException {
String sql = "select * from ogrenciler";
Connection conn = DriverManager.getConnection(url);
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
while(rs.next()) {
String k = rs.getString("ad");
if (k.startsWith(a)) {
System.out.println("Ad: "+k+" "+"Soyad: "+rs.getString("soyad")+" "+"Numara: "+rs.getInt("numara"));
}
else if(!k.equals(a)) {
System.out.println(a+" ile başlayan bir isim bulunamadı.");
}
else {
continue;
}
}
}
Output:
Z ile başlayan bir isim bulunamadı.
Z ile başlayan bir isim bulunamadı.
Z ile başlayan bir isim bulunamadı.
Z ile başlayan bir isim bulunamadı.
Z ile başlayan bir isim bulunamadı.
Z ile başlayan bir isim bulunamadı.
Z ile başlayan bir isim bulunamadı.
Z ile başlayan bir isim bulunamadı.
Z ile başlayan bir isim bulunamadı.
Z ile başlayan bir isim bulunamadı.
Z ile başlayan bir isim bulunamadı.
Z ile başlayan bir isim bulunamadı.
Z ile başlayan bir isim bulunamadı.