Há muitas maneiras de conectar-se ao banco de dados SQL Server2000 usando Java. A seguir estão os dois métodos mais comumente usados (conectar-se ao banco de dados por meio do driver JDBC).
1. Conecte-se através do driver JDBC da Microsoft. Este driver JDBC possui três arquivos, ou seja, mssqlserver.jar, msutil.jar e msbase.jar, que podem ser baixados do site da Microsoft (://www.microsoft.com/downloads/details.aspx?FamilyId=07287B11-0502 -461A -B138-2AA54BFDC03A&displaylang=en), se você baixou setup.exe, também precisará instalá-lo. Após a instalação, os três arquivos jar acima serão gerados. Este driver JDBC implementa JDBC 2.0.
Nome do driver: com.microsoft.jdbc.sqlserver.SQLServerDriver (ou seja, classforname abaixo)
URL de conexão do banco de dados: jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname (ou seja, o seguinte URL)
2. Conecte-se ao banco de dados SQL Server por meio do driver JTDS JDBC. O nome do arquivo deste driver é jtds-1.2.jar e o caminho de download é ( http://sourceforge.net/project/showfiles.php?group_id=33291. ).Este driver suporta Microsoft SQL Server (6.5, 7.0, 2000 e 2005) e Sybase, e implementa JDBC3.0, é gratuito.
Nome do driver: net.sourceforge.jtds.jdbc.Driver (ou seja, classforname abaixo)
URL de conexão com o banco de dados: jdbc:jtds:sqlserver://localhost:1433/dbname (ou seja, o seguinte URL)
Existem muitos códigos Bean para JDBC se conectarem a bancos de dados SQL Server na Internet. Aqui está um trecho de parte deles: (Altere localhost e 1433 para o endereço do servidor SQL Server e o número da porta em seu aplicativo real e altere-o. dbname para o nome real do seu banco de dados)
importar java.sql.*;
classe pública DatabaseConn {
conexão de conexão privada;
Declaração privada stmt;
private String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname";
string privada classforname = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
string privada uid = "sa";
string privada pwd = "senha";
DatabaseConn público(){}
/**
* <p>Obter conexão com o banco de dados através do driver Microsoft JDBC</p>
* @return Conexão
* @exception ClassNotFoundException, SQLException
*/
Conexão pública getConnection()
{
tentar
{
Class.forName(classforname);
if (conn == null || conn.isClosed())
conexão = DriverManager.getConnection(url,uid,pwd);
}
pegar (ClassNotFoundException ex)
pegar (SQLException ex)
conexão de retorno;
}
}
Claro, antes de fazer o trabalho acima, você deve primeiro verificar se há algum problema com as configurações do SQL Server.
Primeiro abra a "janela de linha de comando", que é a janela do MS-Dos, e digite
telnet localhost 1433 (é claro, substitua localhost pelo endereço do servidor onde o SQL Server está localizado e altere a porta para a porta real do SQL Server. O padrão é 1433)
Se tiver sucesso, significa que seu SQL Server pode ser conectado. Se falhar (geralmente para Win2003 ou WinXP SP2), entre no painel de controle, abra "Serviços" em "Ferramentas Administrativas" e inicie o serviço "SQLSERVERAGENT" ( Claro, você também pode aplicar o pacote de patch SP3 do SQL Server) e continuar a operação acima, que deve ser bem-sucedida.
Em segundo lugar, verifique se seu nome de usuário e senha podem fazer login no servidor SQL Server. Obviamente, a maneira mais direta é abrir o "Query Analyzer" do SQL Server, inserir o nome de usuário e a senha e clicar em OK.
Se tiver sucesso, significa que suas configurações de login do SQL Server estão corretas. Se falhar, abra o "Enterprise Manager" do SQL Server e vá para o servidor SQL Server que você registrou (ou seja, aquele em "Grupo SQL Server". à esquerda Dongdong) Ou seja, clique com o botão direito, selecione "Propriedades", selecione "Segurança" na caixa de diálogo "Configuração do SQL Server (Propriedades)", defina a autenticação para "SQL Server e Windows (S)" e, em seguida, use Análise de Consulta Teste o servidor uma vez. Se ainda não conseguir se conectar, verifique se seu nome de usuário e senha estão corretos. Repita o teste até obter sucesso.
Se você usa conexões em JSP, é claro, além de usar JDBC diretamente, todos estão mais interessados no pool de conexões (Pool). Aqui vamos nos concentrar em vários usos do pool de conexões.
Por conveniência, primeiro configure o contêiner JSP para Tomcat, porque todo mundo o usa mais
1. Configuração global (qualquer aplicativo da web no Tomcat pode usar o pool de conexões configurado): Configure o pool de conexões em server.xml O arquivo server.xml está localizado no diretório $TOMCAT_HOME$/conf/. GlobalNamingResources> e insira o seguinte código antes desta linha:
<Recurso
nome = "jdbc/poolName"
auth="Contêiner"
tipo = "javax.sql.DataSource"
maxAtivo="100"
maxIdle="30"
maxWait="10000"
nome de usuário = "sa"
senha="senha"
driverClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=dbname"/>
Nota: name é o nome JNDI global completo do conjunto de conexões, username é o nome de usuário e a senha da conexão com o banco de dados, driverClassName é o nome do driver do banco de dados e url é a string de conexão do banco de dados. Modifique-o de acordo com sua configuração real.
A configuração ainda não está completa. Em seguida, precisamos definir o nome do acesso global em context.xml.
Encontre </Context> e insira o seguinte código antes desta linha:
<ResourceLink global="jdbc/poolName" name="jdbc/poolName" type="javax.sql.DataSource"/>
2. Configuração parcial: Crie um novo arquivo xml no diretório $TOMCAT_HOME$/conf/Catalina/localhost/. O arquivo xml deve ter o mesmo nome do diretório do aplicativo da web que você publica. conteúdo (configuração do Tomcat O diretório virtual externo também é tratado aqui, ha!
<Context path="/webappname" docBase="d:/webappname" debug="0" reloadable="true" crossContext="true">
<Recurso
nome = "jdbc/poolName"
auth="Contêiner"
tipo = "javax.sql.DataSource"
maxAtivo="100"
maxIdle="30"
maxWait="10000"
nome de usuário = "sa"
senha="senha"
driverClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=dbname"/>
<ResourceLink global="jdbc/poolName" name="jdbc/poolName" type="javax.sql.DataSource"/>
</Contexto>
Para os dois primeiros métodos, o código para chamar o pool de conexões é o seguinte: (O método Debug.log() de com.yeno.util.Debug é usado principalmente para imprimir informações de depuração e pode ser substituído por System.out.println ())
importar java.sql.*;
importar javax.sql.DataSource;
importar javax.naming.*;
importar com.yeno.util.Debug;
/**
* <p>A classe de gerenciamento de operação de banco de dados implementa apenas conexão de banco de dados, encerramento e processamento de transações</p>
* @Auror Yeno.hhr
* Data de criação 9/12/2005
*/
classe pública DataPool {
DataPool público(){}
/**
* <p>Obter conexão com o banco de dados através do pool de conexões do Tomcat</p>
* @param não
* @return Conexão conexão com banco de dados
* @exception NamingException, SQLException, Exceção
*/
Conexão pública getConnect()
{
Conexão conexão = null;
tentar
{
Contexto intitCtx = new InitialContext();
Contexto envCtx = (Context)intitCtx.lookup("java:comp/env");
DataSource ds = (DataSource)envCtx.lookup("jdbc/poolName");
conexão = ds.getConnection();
}
catch(NamingException próximo)
{
Debug.log(this,"getConnect()","Nenhum ambiente correto!");
}
catch(SQLExceptionsqlex)
{
Debug.log(this,"getConnect()","Não é possível obter conexão!");
}
conexão de retorno;
}
}
Antes de usar o código acima, você deve garantir que os arquivos JAR relevantes do driver JDBC (mssqlserver.jar, msutil.jar e msbase.jar para Microsoft, jtds-1.2.jar para JTDS) foram configurados corretamente. arquivos JAR relevantes para o diretório $TOMCAT_HOME $/common/lib/ ou você pode copiá-los para o diretório $WEB_ROOT$/WEB-INF/lib/
Você também pode usar injeção para chamar o pool de conexões, ou seja, chamá-lo no arquivo de configuração do Hibernate hibernate.cfg.xml Depois de configurar o pool de conexões no contêiner JSP, chame as configurações do pool de conexões do sistema no arquivo de configuração do Hibernate. código Segue um trecho:
<fábrica de sessão>
<!--
<property name="jndi.class"></property>
<property name="jndi.url"></property>
-->
<property name="connection.datasource">java:comp/env/jdbc/poolName</property>
<property name="show_sql">falso</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
</session-factory>
Para uso específico do Hibernate, verifique os detalhes relevantes.