Betül SARAL

Bilgisayar Mühendisi

Java Da Mysql Bağlantısı

| Comments

Merhabalar,

Java da mysql bağlantısı yapmak için öncelikle wampserver ya da xampp gibi herhangi bir paket sunucu programının yüklü olması gerekir. Mysql’ e bağlanabilmek için bu gibi bir paket program gerekmektedir. Daha sonra java ile bağlantıyı sağlamak için mysql-connector isimli jar dosyası indirmemiz gerekir. Buradan JDBC Driver for MySQL (Connector/J) jar dosyasının zip halini indirin. Dosya indirildikten sonra Eclipse açarak aşağıdaki adımları gerçekleyin.

İndirdiğimiz jar dosyasını ekleyin. Ekleme işlemi bittikten sonra projenizin src klasörü altına Database adında bir class oluşturun ve aşağıdaki kodları ekleyin.

Database.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class Database {
	 public static void main(String[] args) throws ClassNotFoundException, SQLException {
		Class.forName("com.mysql.jdbc.Driver");
		Connection baglanti = (Connection) DriverManager.getConnection
					  ("jdbc:mysql://localhost/deneme","root","");
		Statement komut = (Statement) baglanti.createStatement();
		System.out.printf("Bağlantı Başarılı");
		baglanti.close();
	}
}

Kaydedip çalıştırdığınız da “Bağlantı Başarılı” şeklinde bir çıktı alıyorsanız mysql ile bağlantıyı sağladınız demektir.

PhpMyAdmin Error #1142

| Comments

Phpmyadmin de aşağıdaki gibi bir hata alıyorsanız;

#1142 - SELECT command denied to user ''@'localhost' for table 'pma_column_info' 

Şu adımları takip ederek düzeltebilirsiniz:

  • Ayarlar kısmına girin
  • Rehber çerçevesi kısmına tıklayın
  • Son kullanılan tablolar kısmını 0 olarak değiştirin
  • Ncurses Kurulumu Ve Kullanımı

    | Comments

    Merhabalar,

    Bugünkü konumuz ncurses. Ncurses’ın ne olduğunu , kurulumunun nasıl yapıldığını ve kullanımıyla ilgili bilgiler vereceğim.

  • NCURSES Nedir ?
  • Nasıl Kurulur ?
  • Nasıl Derlenir ?
  • 1- NCURSES Nedir ?

    Bir uygulamanın karakter tabanlı uçbirimlerde görüntüleri üzerinde çalışabilmeyi sağlayan ve özgür olarak dağıtılan işlevler kütüphanesidir. NCURSES sadece uçbirim yetenekleri sarmalayan bir yapı oluşturmaz aynı zamanda metin kipinde hoş görüşünüşlü arayüzler oluşturmak için sağlam bir çalışma taslağı da oluşturur. Pencereler v.b. görünümleri oluşturmak için işlevler sağlar. Kardeş kütüphaneleri olan panel, menu ve form, temel curses kütüphanesine bir genişleme sağlar.

    2- Nasıl Kurulur ?

    İlk olarak bu adresten ncurses kütüphanesini indiriyoruz.Sonra arşivi açıyoruz yani :

    Terminal
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    $ tar zxvf ncurses-4.2.tar.gz
    
    $ cd ncurses-4.2
    
    $ ./configure
    
    $ make
    
    $ sudo make install
    

    3- Nasıl Derlenir ?

    Şimdi bir örnekle bunu açıklayalım. Merhaba.c adında bir belge açın ve içine aşağıdakileri kopyalayın.

    Merhaba.c
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    include <ncurses.h>
    
    int main(){
      initscr();                      /* Curses kipine giriş           */
      printw("Merhaba Dünya !!!");    /* Merhaba Dünya yazdırma        */
      refresh();                      /* Onu gerçek ekrana yazdırın    */
      getch();                        /* Kullanıcıyı bekleyin          */
      endwin();                       /* Curses kipinden çıkış         */
    
      return 0;
    }
    	
    

    Şimdi derleyelim, terminali açalım ve dosyanın olduğu dizine geldikten sonra :

    Terminal
    1
    
    $ gcc merhaba.c -lncurses
    

    Ve işte bu kadar…

    Kaynak : http://docs.comu.edu.tr/howto/ncurses-howto-intro.html

    Rails 3 Production Mod

    | Comments

    Merhabalar,

    Rails ile yaptığınız uygulamayı production modda çalıştırmanız gerekebilir. Bunun için aşağıdaki işlemleri yapmalısınız. İlk önce veritabanımızı production moduna almamız gerekir.Terminale gidip;

    Terminal
    1
    
    $ RAILS_ENV=production rake db:create
    
    Terminal
    1
    
    $ RAILS_ENV=production rake db:migrate
    

    Eğer seed dosyanız da varsa;

    Terminal
    1
    
    $ RAILS_ENV=production rake db:seed
    

    Şimdi rails server’ ımızı çalıştıralım. 2 şekilde de server’ı production modunda çalıştırabiliriz.

    Terminal
    1
    
    $ RAILS_ENV=production rails server
    

    ya da

    Terminal
    1
    
    $ rails server -e production
    

    rails server çalıştıktan sonra yerelinizde açtığınız zaman 404 hatası alıyorsanız :

    Terminal
    1
    
    $ bundle exec rake assets:precompile
    
    config/environments/production.rb
    1
    2
    
    	
    config.serve_static_assets = true
    

    Ve böylece uygulamanızı production modda çalıştırmış olursunuz.

    Rails Devise Sign_up Problemi

    | Comments

    Merhabalar;

    Devise kurulumundan sonra http://localhost:3000/users/registration/sign_up sayfasında aşağıdaki gibi bir hata alıyorsanız ;

    Terminal
    1
    
    undefined method `user_registration_path' for #<#<Class:0x007fd5d3503d58>:0x007fd5d3b0dcd0>
    

    Ya da sign_up kısmı hiç açılmıyorsa sürekli problem yaşıyorsanız bu sorunun sebebi Gemfile içerisinde bulunan devise gem’inin versiyonuyla ilgilidir. Gemfile içerisinde devise gem’inin versiyonu yazılmamalıdır yani aşağıdaki gibi yer almalıdır.

    Gemfile
    1
    
    gem 'devise'
    
    Terminal
    1
    
    $ bundle update
    

    yazdıktan sonra sorununuz çözülecektir.

    ImageMagick / RMagick Gem Install Error

    | Comments

    Gemfile içerisinde bulunan gem "rmagick" , '~> 2.13.2' bundle ettiğiniz zaman aşağıdaki gibi bir hata alıyorsanız ;

    Terminal
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    ERROR:  Error installing rmagick:
    ERROR: Failed to build gem native extension.
    
    ..........
    ..........
    
    Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/rmagick-2.13.1 for inspection.
    Results logged to /usr/lib/ruby/gems/1.8/gems/rmagick-2.13.1/ext/RMagick/gem_make.out
    	
    

    Sorunu halletmek için ;

    Terminal
    1
    2
    3
    4
    
    $ sudo apt-get install libmagickwand-dev
    
    $ bundle install
    	
    

    Rails 3 De Nested Form Nasıl Oluşturulur ?

    | Comments

    Aşağıdakilerin adım adım uygulanması gerekir.

    Gemfile
    1
    
    gem "nested_form"
    
    Terminal
    1
    2
    3
    
    $ bundle install
    
    $ rails g nested_form:install
    

    Bu koddan sonra public/javascripts/nested_form.js oluşması gerekiyor.Biz bu js belgesini app/assets/javascripts/ altına kopyalayalım. Daha sonra;

    controllers/projects_controller.rb
    1
    2
    3
    4
    
    def new
    	@project=Project.new
    	@project.tasks.build
    end
    
    model/project.rb
    1
    2
    3
    4
    5
    6
    7
    8
    
    class Project < ActiveRecord::Base
    
    	has_many :tasks, :dependent => :destroy
    	attr_accessible :tasks_attributes,:name, :description
    	accepts_nested_attributes_for :tasks, :allow_destroy => true
    
    end
    	
    
    model/task.rb
    1
    2
    3
    4
    
    class Task < ActiveRecord::Base
    	belongs_to :project
    end
    	
    
    views/projects/_form.html.erb
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    <%= nested_form_for @project do |f| %>
    
    	<%= f.label :name %>
    	<%= f.text_field(:name) %><br />
    	<%= f.label :description %>
    	<%= f.text_field(:description) %><br />
    	
    	<h3> Tasks</h3>
    	
    	<%= f.fields_for :tasks do |task| %>
    		<%= task.label :name %><br />
    		<%= task.text_field :name %><br />
    		<%= task.link_to_remove "Remove this task" %>
    	<% end %>
    	<%= f.link_to_add "Add a task", :tasks %>
    	<%= f.submit %>
    <% end %>
    

    Rails De Sqlite3 Veritabanını Mysql’e Aktarmak

    | Comments

    Veritabanını Sqlite 3 ile sağladığınız bir rails projesinde , her ne kadar ilerlemiş olursanız olun her zaman mysql’e çevirme şansınız vardır.İlk olarak ;

    database.yml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    
    	development:
    	  adapter: mysql2
    	  encoding: utf8
    	  reconnect: false
    	  database: databasename_development
    	  pool: 5
    	  username: root
    	  password: ["parola"]
    	  socket: /var/run/mysqld/mysqld.sock
    
    	test:
    	  adapter: mysql2
    	  encoding: utf8
    	  reconnect: false
    	  database: databasename_test
    	  pool: 5
    	  username: root
    	  password: ["parola"]
    	  socket: /var/run/mysqld/mysqld.sock
    
    	production:
    	  adapter: mysql2
    	  encoding: utf8
    	  reconnect: false
    	  database: databasename_production
    	  pool: 5
    	  username: root
    	  password: ["parola"]
    	  socket: /var/run/mysqld/mysqld.sock
    	
    

    şimdi bu kodları terminale girmemiz gerekiyor.

    Terminal
    1
    2
    3
    
    $ bundle exec rake db:create
    
    $ bundle exec rake db:schema:dump
    

    bu koddan sonra aşağıdaki gibi bir hata alıyorsanız ;

    Terminal
    1
    2
    3
    4
    5
    
    rake aborted!
    
    Please install the mysql2 adapter: gem install activerecord-mysql2-adapter
       (mysql2 is not part of the bundle.
    Add it to Gemfile.)
    

    Bu hata için;

    Terminal
    1
    
    $ sudo gem install activerecord-mysql2-adapter
    
    Gemfile
    1
    
    gem "activerecord-mysql2-adapter"
    
    Terminal
    1
    2
    3
    
    $ bundle
    
    $ bundle exec rake db:load
    

    Ve hata alırız:

    Terminal
    1
    2
    3
    4
    
    	rake aborted!
    	Don't know how to build task 'db:load'
    	(See full trace by running task with --trace)
    	
    
    Gemfile
    1
    
    gem 'yaml_db'
    
    Terminal
    1
    2
    3
    4
    5
    
    $ bundle
    
    $ bundle exec rake db:load
    
    $ bundle exec rake db:migrate
    

    Ve veritabanlarımızı mysql’e aktarmış olduk.Eğer sisteminiz de phpmyadmin varsa, aktarmış olduğumuz tabloları orda takip edebilirsiniz.

    UYARI :

    Eğer rails server çalıştırdığınız da

    Terminal
    1
    
    mysql undefined method `accept' for nil:NilClass
    

    hatasını alıyorsanız Gemfile içerisinde gem "activerecord-mysql2-adapter" silmeniz gerekiyor.Ayrıca gem "mysql2", ">= 0.3.11" Gemfile içerisinde bulunması gerekir.Bu işlemleri yaptıktan sonra veritabanınızda bulunan tüm tabloları silin ve yeniden oluşturun yani :

    Terminal
    1
    
    $ rake db:migrate
    

    ve seed dosyanız dolu ise;

    Terminal
    1
    
    $ rake db:seed
    

    Kolay gelsin.

    Phpmyadmin 404 Hatası

    | Comments

    Yerelinizde (http://localhost/phpmyadmin) phpmyadmin’i çalıştırdığınız da aşağıdaki gibi bir hata alıyorsarsanız ;

    The requested URL /phpmyadmin was not found on this server.

    şu kodları terminalde çalıştırarak bu problemi halledebilirsiniz.

    Terminal
    1
    2
    3
    4
    5
    
    $ sudo dpkg-reconfigure -plow phpmyadmin
    
    $ sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
    
    $ sudo /etc/init.d/apache2 reload
    

    Rails De Csv Ile Kullanıcıları İçe Aktarmak

    | Comments

    Elimiz de kullanıcıların bulunduğu bir tablo var ve biz bunu csv ile içe aktarmak istiyoruz. İlk olarak gem’i yüklememiz gerekiyor.

    Gemfile
    1
    
    gem 'roo'
    
    Terminal
    1
    
    $ bundle install
    
    sessions/index.html.erb
    1
    2
    3
    4
    5
    6
    
    <h2>Import Users</h2>
    
    <%= form_tag import_sessions_path, multipart: true do %>
      <%= file_field_tag :file %>
      <%= submit_tag "Import" %>
    <% end %>
    
    config/routes.rb
    1
    2
    3
    4
    
    resources :sessions do
    	collection { post :import }
    end
    	
    
    config/application.rb
    1
    2
    
    require 'csv'
    require 'iconv'
    
    controllers/sessions_controller.rb
    1
    2
    3
    4
    5
    
    def import
      User.import(params[:file])
      redirect_to root_url, notice: "Products imported."
    end
    	
    
    models/user.rb
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    def self.import(file)
      spreadsheet = open_spreadsheet(file)
      header = spreadsheet.row(1)
      (2..spreadsheet.last_row).each do |i|
    	row = Hash[[header, spreadsheet.row(i)].transpose]
    	product = find_by_id(row["id"]) || new
    	product.attributes = row.to_hash.slice(*accessible_attributes)
    	product.save!
      end
    end
    
    def self.open_spreadsheet(file)
      case File.extname(file.original_filename)
      when ".csv" then Csv.new(file.path, nil, :ignore)
      when ".xls" then Excel.new(file.path, nil, :ignore)
      when ".xlsx" then Excelx.new(file.path, nil, :ignore)
      else raise "Unknown file type: #{file.original_filename}"
      end
    end
    

    Eğer yerelinizde çalışıyorsanız sisteme http://localhost:3000/sessions ulaşabilirsiniz.

    DİKKAT !

    İmport edilen csv dosyasının içeriği, oluşturduğunuz kullanıcı tablosundaki özellikleri dikkate alınarak şekillenmelidir.