2015年1月2日 星期五

PhpMyAdmin 無法看資料庫結構的問題解決

無論是單獨安裝 phpmyadmin 或者套件安裝 WAMP ,這個問題皆會存在
原因是 PHP5以後 與作業系統 windows 7/ Linux 版本相容問題

解決方法:
在phpmyadmin 安裝目錄,找到 Util.class.php 這個檔案
如: wamp 之 D:\wamp\apps\phpmyadmin4.1.14\libraries\Util.class.php
修改如下
找到
return strftime($date, $timestamp);
改為
return date("Y-m-d: H:i:s" , $timestamp);

2015年1月1日 星期四

Javamail for google

原文出處: 龍貓 的心情日記
http://supermand9362787.wordpress.com/2008/11/02/javamail-for-google/

利用JavaMail收/發Gmail郵件(SSL)

Gmail目前已經啟用了POP3和SMTP服務,具體情況請看 http://www.javayou.com/showlog.jspe?log_id=490
與其他郵箱不同的是Gmail提供的POP3和SMTP是使用安全套接字層SSL的,因此常規的JavaMail程序是無法收發郵件的,下面是使用JavaMail如何收取Gmail郵件以及發送郵件的代碼:
1. 郵件收取
package lius.javamail.ssl;
import java.io.UnsupportedEncodingException;
import java.security.*;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeUtility;
/**
* 用於收取Gmail郵件
* @author Winter Lau
*/
public class GmailFetch {
public static void main(String argv[]) throws Exception {
  Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
  final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
  // Get a Properties object
  Properties props = System.getProperties();props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
  props.setProperty("mail.pop3.socketFactory.fallback", "false");props.setProperty("mail.pop3.port", "995");
  props.setProperty("mail.pop3.socketFactory.port", "995");
  //以下步驟跟一般的JavaMail操作相同
  Session session = Session.getDefaultInstance(props,null);
  //請將紅色部分對應替換成你的郵箱帳號和密碼
  URLName urln = new URLName("pop3","pop.gmail.com",995,null,"[郵箱帳號]", "[郵箱密碼]");
  Store store = session.getStore(urln);
  Folder inbox = null;
  try {
      store.connect();
      inbox = store.getFolder("INBOX");
      inbox.open(Folder.READ_ONLY);
      FetchProfile profile = new FetchProfile();
      profile.add(FetchProfile.Item.ENVELOPE);
      Message[] messages = inbox.getMessages();
      inbox.fetch(messages, profile);
      System.out.println("收件箱的郵件數:" + messages.length);
      for (int i = 0; i < messages.length; i++) {
         //郵件發送者
         String from = decodeText(messages[i].getFrom()[0].toString());
         InternetAddress ia = new InternetAddress(from);
         System.out.println("FROMia.getPersonal()+'(‘+ia.getAddress()+’)’);
         //郵件標題
         System.out.println("TITLEmessages[i].getSubject());
         //郵件大小
         System.out.println("SIZEmessages[i].getSize());
         //郵件發送時間
         System.out.println("DATEmessages[i].getSentDate());
     }
   } finally {
     try {
         inbox.close(false);
     } catch (Exception e) {}
         try {
             store.close();
         } catch (Exception e) {}
     }
   }

   protected static String decodeText(String text)
         throws UnsupportedEncodingException {
    if (text == null)
       return null;
    if (text.startsWith("=?GB") || text.startsWith("=?gb"))
        text = MimeUtility.decodeText(text);
    else
         text = new String(text.getBytes("ISO8859_1"));
     return text;
   }
}
2. 發送郵件
package lius.javamail.ssl;
import java.security.Security;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* 使用Gmail發送郵件
* @author Winter Lau
*/
public class GmailSender {
   public static void main(String[] args) throws AddressException, MessagingException {
      Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
      final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
      // Get a Properties object
      Properties props = System.getProperties();
      props.setProperty("mail.smtp.host", "smtp.gmail.com");
      props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
      props.setProperty("mail.smtp.socketFactory.fallback", "false");
      props.setProperty("mail.smtp.port", "465");
      props.setProperty("mail.smtp.socketFactory.port", "465");
      props.put("mail.smtp.authrue");
      final String username = "[郵箱帳號]";
      final String password = "[郵箱密碼]";
      Session session = Session.getDefaultInstance(props, new Authenticator()
      {
          protected PasswordAuthentication getPasswordAuthentication() {
             return new PasswordAuthentication(username, password);
          }
      }
   );
   // — Create a new message –
   Message msg = new MimeMessage(session);
   // — Set the FROM and TO fields –
   msg.setFrom(new InternetAddress(username + "@mo168.com"));
   msg.setRecipients(Message.RecipientType.TO,
   InternetAddress.parse("[收件人地址]",false));
   msg.setSubject("Hello");
   msg.setText("How are you");
   msg.setSentDate(new Date());
   Transport.send(msg);
   System.out.println("Message.");
 }
}

手動安裝MySQL on Windows

下載 MySQL for Zip File
http://dev.mysql.com/downloads/mysql/


  1.解壓縮 mysql-5.6.22-win32.zip
 2.將預設的 my-default.ini 改為 my.ini
 3.修改 my.ini:
   設定 MySQL 的執行路徑及資料庫存放路徑(x:為Driver Letter):
   basedir = x:\mysql
   datadir = x:\mysql\data
 4.安裝服務(Windows平台):
      安裝Service: x:\mysql\bin\mysqld --install MySQL
      移除Service: x:\mysql\bin\mysqld --remove      
 5.啟動服務:
    x:\>NET START MYSQL  
    或 x:\>SC start MYSQL
    或用服務管理員來啟動 MySQL

使用 Eclipse 開發Servlet 或 JSP : 安裝篇

下載安裝 JDK7
http://www.oracle.com/technetwork/java/javase/downloads/index.html










































下載安裝 Eclipse Luna 4.4 (For Java EE)
https://eclipse.org/downloads/












下載安裝 Tomcat
http://tomcat.apache.org/download-70.cgi

下載  Zip 檔案 -) 解壓與更名至 x:\Tomcat7

























下載安裝 Tomcat Eclipse Plugin
http://www.eclipsetotale.com/tomcatPlugin.html
選擇適合 Eclipse Luna 4.4 版本 Plugin 下載


























解開 tomcatPluginV331.zip









將解開之 jar 檔 copy至 eclipse 目錄 plugins 檔案夾之下即可




















設定 Tomcat Eclipse Plugin
Window -) Preferences -)



Tomcat -) 選擇 Version 7.x -) Tomcat Home 填入 x:\Tomcat7




















設定 Tomcat 伺服器
Windows -) Show view -) Other -) Server -) Servers





















完成後會在Eclipse開發視窗中出現 Servers 顯示Tab,然後在這視窗按右鍵
-)New -) Server





















選擇 Tomcat7 -) 填入tomcat path



























出現下圖即完成設定











在Google Blog 網頁中嵌入顯示程式碼

原文出處:符碼記憶

http://www.ewdna.com/2012/02/google-code-prettify.html

在網頁中嵌入顯示程式碼:CSS Block:
http://www.ewdna.com/2012/02/css-block.html

範例
prettyprint 風格
public class HelloWorld {

    public static void main (String[] args) {
        System.out.println("Hello, world!");
    }
}
codeblock and prettyprint 風格
public class HelloWorld {

    public static void main (String[] args) {
        System.out.println("Hello, world!");
    }
}
步驟一
嵌入步驟(以Blogger為例):
第一步:
進入Blogger後台(登入後在Toolbar右上點選設計),
選範本 -> 選修改HTML -> 繼續。
















新增一段JavaScript程式碼
<style>
.post .codeblock {
display: block; /* fixes a strange ie margin bug */
font-family: Courier New;
font-size: 10pt;
overflow:auto;
background: #f0f0f0 url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAASwCAYAAAAt7rCDAAAABHNCSVQICAgIfAhkiAAAAQJJREFUeJzt0kEKhDAMBdA4zFmbM+W0upqFOhXrDILwsimFR5pfMrXW5jhZr7PwRlxVX8//jNHrGhExjXzdu9c5IiIz+7iqVmB7Hwp4OMa2nhhwN/PRGEMBh3Zjt6KfpzPztxW9MSAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzAMwzB8HS+J9kUTvzEDMwAAAABJRU5ErkJggg==) left top repeat-y;
border: 1px solid #ccc;
padding: 10px 10px 10px 21px;
max-height:1000px;
line-height: 1.2em;
}
</style>

如果要顯示的是程式碼,若要保持程式的排版,建議使用 <pre> 這個標籤, 如下面這段程式:
<pre class='codeblock'>
public class HelloWorld {

    public static void main (String[] args) {
        System.out.println("Hello, world!");
    }
}
</pre>

2014年12月31日 星期三

Step By Step Hibernate Tutorial Using eclipse WTP

文章出處:  Jitendra Zaa
http://www.jitendrazaa.com/blog/sql/myqsl/step-by-step-hibernate-tutorial-using-eclipse-wtp/

以 Eclipse Java EE IDE Version: Luna Service Release 1 (4.4.1) 為例


In Eclipse IDE, menu bar, select “Help” >> “Install New Software …” put the Eclipse update site



URL “http://download.jboss.org/jbosstools/updates/stable/luna/”

以下列勾選為主,不要全選,避免失敗

2014年12月22日 星期一

軟體開發排行榜 C , Java 仍是前二名

文章出處: 科技空間
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
http://www.techroomage.com/2014/04/tiobe-2014-april-programming-language-Perl-down.html

TIOBE 2014年4月份程式語言排行榜出爐,儘管前三甲排名無變化為:C、Java、Objective-C,但是C和Java的份額均有所下降,但是幅度不明顯;而 Objective-C則上漲了3.28%。

Java 不同編碼字串, 其字串長度大小計算

以 Java 開發專案, 在 DAO 寫入資料庫時, 常遇到JAVA 字串與資料庫編碼不一致, 有時會產生字串過長,導致無法寫入資料庫的情況. 這時就要在入庫前, 先驗證 JAVA 編碼字串是否超出資料庫欄位長度 JAVA 依 不同編碼, 其長度是不一樣的 如: ...