S-JIS[2011-03-05/2013-06-09] �ύX����

Scala JDBC����

Scala��JDBC���g����DB�ɃA�N�Z�X���Ă݂�B


�T�v

Scala�ɂ�dbc�Ƃ���DB�A�N�Z�X�p�̃N���X�Q�����邯��ǂ��A�������ł����邱�Ƃ����A���ʂ�JDBC���g����DB�A�N�Z�X���Ă݂�B
�{�i�I�Ɏg���Ƃ������́A�e�X�g�f�[�^���y����肽���Ƃ������ړI�B
Java���ƃR���p�C�����Ȃ��Ǝ��s�ł��Ȃ����AScala����REPL�ォ����s�ł���̂Ŋy�B

JDBC�������ɂ́A�����P��java.sql�Ejavax.sql�̃N���X���g�������B

import java.sql.{ Array => _, _ }
import javax.sql._

���ujava.sql._�v�őS�N���X���C���|�[�g���Ă��܂��ƁA�uArray�v���z���Ƌ������Ďg���Ȃ��Ȃ�Bjava.sql.Array�Ȃ񂩂��Ԃ�g��Ȃ��̂ŁA�C���|�[�g���ɏ��O���Ă����B

���s���ɂ�JDBC�̃��C�u�����[�ijar�t�@�C���j���K�v�B
scala���N���iscala�R�}���h�����s�j����ۂɃN���X�p�X���w�肷��B�iREPL����ł��g�p�ł���j

��> scala -cp C:\oracle\jdbc\lib\ojdbc6.jar

Connection

Oracle�ɂ‚Ȃ���B

val user = "scott"
val pass = "tiger"
val conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ora92", user, pass)
conn.setAutoCommit(false)
�`
conn.close

��JRE1.6�Ƃ���ɑΉ�����JDBC�h���C�o�[�œ����Ă���΁AClass.forName()�͕s�v�B


Statement

SQL�����s����ɂ�Statement�iPreparedStatement�j���g�p����B

val conn = DriverManager.getConnection(�`)
try {
  conn.setAutoCommit(false)
  val st = conn.createStatement
  try {

    st.execute(sql)
  } finally {
    st.close
  }
  val st = conn.prepareStatement(sql)
  try {
    st.set�` //�o�C���h�ϐ���ݒ�
    st.executeUpdate
  } finally {
    st.close
  }
  conn.commit
} catch {
  case e =>
    try conn.rollback catch{ case e => e.printStackTrace }
    throw e
} finally {
  try conn.close catch{ case e => e.printStackTrace }
}

��insert�̗�
��select�̗�


Scala�����֖߂� / Scala�ڎ��֖߂� / �Z�p�����֖߂�
���[���̑��M��F�Ђ�����

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@