Well, you can freely use \setCJKfamilyfont to define as many fonts as you need. And you can use \CJKfamily to change the font. This is quite similar to the way you have used.
On the other hand, current xeCJK does not have the ability to define different fonts for Chinese, Japanese and Korean individually. In fact, the three languages shares a lot of characters, and it is impossilbe to distinguish which language it is automatically.
An alternative solution is, use fallback option of xeCJK to define a main font (for Chinese & Japanese) and its fallback font (for Korean). For example,
\documentclass{article}
\usepackage[fallback]{xeCJK}[2011/05/01 v2.3.19]
% Fonts available on windows
\setCJKmainfont{SimSun}
\setCJKfallbackfamilyfont{\CJKrmdefault}{Batang}
\begin{document}
你好
こんにちは
여보세요
\end{document}
However, for serious typesetting, the result using fallback font option is questionable. Some glyphs looks quite different among the three countries. A glyph in a Chinese font may be wrong in Korean or Japanese, and vice versa. Thus, a proper way is still change the font manually:
\documentclass{article}
\usepackage{xeCJK}[2011/05/20 v2.4.1]
\setCJKfamilyfont{zhrm}{SimSun}
\setCJKfamilyfont{jarm}{MS Mincho}
\setCJKfamilyfont{korm}{Batang}
\newcommand\Chinese{\CJKfamily{zhrm}\CJKnospace}
\newcommand\Japanese{\CJKfamily{jarm}\CJKnospace}
\newcommand\Korean{\CJKfamily{korm}\CJKspace}
\begin{document}
{\Chinese 你好}
{\Japanese こんにちは}
{\Korean 여보세요}
\end{document}
Update
For newer xeCJK (ver 3.x), you can set different fonts for different sub CJK blocks:
\documentclass{article}
\usepackage{xeCJK}[2012/04/08 v3.0.0]
\xeCJKDeclareSubCJKBlock{Kana}{"3040 -> "309F, "30A0 -> "30FF, "31F0 -> "31FF, "1B000 -> "1B0FF}
\xeCJKDeclareSubCJKBlock{Hangul}{"1100 -> "11FF, "3130 -> "318F, "A960 -> "A97F, "AC00 -> "D7AF, "D7B0 -> "D7FF}
\setCJKmainfont{SimSun}
\setCJKmainfont[Kana]{MS Mincho}
\setCJKmainfont[Hangul]{Batang}
\begin{document}
你好
こんにちは
여보세요
\end{document}
\setCJKmainfont[Mapping=tex-text]{Baekmuk Batang}command by itself, XeTeX can output the correct glyphs just fine --- I would use this command all the time, if it weren't for the restriction that it can only be in the preamble. – Linus Arver May 19 '13 at 04:02xeCJKpackage. – Leo Liu May 22 '13 at 15:00[Mapping=tex-text]option with those manual font declarations). I was not aware that xeCJK comes with example documents --- thanks for the heads up! – Linus Arver May 22 '13 at 16:01