您的位置:首页 > 理论基础 > 计算机网络

通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败

2013-12-27 23:25 387 查看

entity
package com.ferry.cc.entity;

import java.io.Serializable;

public class CcNum implements Serializable {
private int id;
private int num;

public int getNum() {
return num;
}

public void setNum(int num) {
this.num = num;
}

}
Dao
package com.ferry.cc.dao;
import com.ferry.cc.entity.CcNum;
public interface CcNumDao {
public CcNum getCcNum(int num);
public int insertNum(CcNum num);
}
mapping
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ferry.cc.dao.CcNumDao" >
<select id="getCcNum" parameterType="int" resultType="CcNum">
select * from CcNum where num =#{num};
</select>

<insert id="insertNum" parameterType="CcNum" useGeneratedKeys="true"
keyProperty="id">
insert into CcNum (num) values(#{num});
</insert>
</mapper>
server.java
package com.ferry.cc.service;import java.util.ArrayList;import java.util.HashMap;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import com.ferry.cc.dao.CcNumDao;import com.ferry.cc.entity.CcNum;import com.ferry.cc.service.serviceInfo.CcViewServiceInfo;import com.ferry.util.MyBatisUtils;public class CcViewService implements CcViewServiceInfo {static SqlSessionFactory sqlSessionFactory = null;static {sqlSessionFactory = MyBatisUtils.getSqlSessionFactory();}public static void main(String[] args) throws Exception {CcNum c = new CcNum();c.setNum(1);CcNum c1 = new CcViewService().getCcNum(c);}@Overridepublic  CcNum getCcNum(CcNum num) throws Exception {SqlSession sqlSession = sqlSessionFactory.openSession();CcNum ccNum = null;try {CcNumDao userMapper = sqlSession.getMapper(CcNumDao.class);ccNum = new CcNum();ccNum = userMapper.getCcNum(1);System.out.println(ccNum.getId());sqlSession.commit();//杩欓噷涓�畾瑕佹彁浜わ紝涓嶇劧鏁版嵁杩涗笉鍘绘暟鎹簱涓�} finally {sqlSession.close();}return ccNum;}@Overridepublic int insertNum(CcNum num) throws Exception {return 0;}}
MyBatisUtil.java
package com.ferry.util;import java.io.InputStream;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MyBatisUtils {/**mybatis工具类,提供openSesison,对外提供SqlSession对象。将此对象的构造过程隐藏起来,SqlSessionFactory对象,只需要在类加载时创建出来就OK了。需要指定mybatis的配置文件xml的路径或相应的字节流或字符流。这里用字节流InputStream,采用类加载器的方式来获取输入字节流。* @author 陈淑飞* @time Oct 6, 2012*/private static SqlSessionFactory factory ;static{InputStream in = MyBatisUtils.class.getClassLoader().getResourceAsStream("mybatis-config.xml");factory = new SqlSessionFactoryBuilder().build(in);}public static SqlSessionFactory getSqlSessionFactory(){return factory;}/**返回一个SqlSession对象(每次返回一个新的SqlSession对象)若涉及多个表的操作,涉及事务的,要做到操作失败时回滚,那么建议自定义一个TransactionUtils的工具类用ThreadLocal类来保存SqlSession类,这样跨多个dao操作时,确保获取的都是同一SqlSession对象。然后在service层中捕获异常,再catch上用session的回滚。* @return*/public static SqlSession openSession(){return factory.openSession();}public static void main(String[] args) {MyBatisUtils.openSession();}}
MyBatis-config.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">   <!-- dtd约束,一定要拷过去啊。下面的根据具体应用,改改就可以了 --><configuration><!--  指定与数据库相关的配置资源文件名,若下面的dataSource所需要的url等直接配置编码在此文件,那么此properties也可以去掉 --><properties resource="db.properties"/><!-- 给指定的类定义别名,这样在后面的Mapping映射文件中,可以直接写别名,可以不用写完整限定类名了 --><typeAliases><typeAlias alias="CcNum" type="com.ferry.cc.entity.CcNum" /> <!--  指定com.test.domain.Person用Person别名替代 --></typeAliases><environments default="default"><environment id="default"><transactionManager type="JDBC" />	<!-- JDBC事务管理 --><dataSource type="POOLED">  <!-- 数据源 连接池相关 所需要数据库连接的相关配置信息,在db.properties有指定 --><property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" /><!-- ${driver} --><property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=mydb" /><!-- ${url }--><property name="username" value="sa" /><!-- ${username} --><property name="password" value="1234" /><!-- ${password} --></dataSource></environment></environments><!-- 映射文件 将sql、POJO、dao层映射连接在一起,以可配置的方式来组织。从此SQL的写法与dao层无关了。 --><mappers><mapper resource="com/ferry/cc/dao/mapping/CcNumDaoMapper.xml" /></mappers></configuration>
db.propertiesdriver=com.microsoft.sqlserver.jdbc.SQLServerDriverurl=jdbc.microsoft:sqlserver://localhost:1433;DatabaseName=mydbusername=sapassword=1234com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:170)at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1049)at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:833)at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:716)at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:841)at java.sql.DriverManager.getConnection(Unknown Source)at java.sql.DriverManager.getConnection(Unknown Source)at LoginInfo.NewConnect(LoginInfo.java:59)at LoginInfo.SearchOperator(LoginInfo.java:179)at login$1.actionPerformed(login.java:151)at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)at javax.swing.DefaultButtonModel.setPressed(Unknown Source)at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)at java.awt.Component.processMouseEvent(Unknown Source)at javax.swing.JComponent.processMouseEvent(Unknown Source)at java.awt.Component.processEvent(Unknown Source)at java.awt.Container.processEvent(Unknown Source)at java.awt.Component.dispatchEventImpl(Unknown Source)at java.awt.Container.dispatchEventImpl(Unknown Source)at java.awt.Component.dispatchEvent(Unknown Source)at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)at java.awt.Container.dispatchEventImpl(Unknown Source)at java.awt.Window.dispatchEventImpl(Unknown Source)at java.awt.Component.dispatchEvent(Unknown Source)at java.awt.EventQueue.dispatchEvent(Unknown Source)at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)at java.awt.EventDispatchThread.pumpEvents(Unknown Source)at java.awt.EventDispatchThread.pumpEvents(Unknown Source)at java.awt.EventDispatchThread.run(Unknown Source)Exception in thread "AWT-EventQueue-0" java.lang.NullPointerExceptionat LoginInfo.SearchOperator(LoginInfo.java:182)at login$1.actionPerformed(login.java:151)at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)at javax.swing.DefaultButtonModel.setPressed(Unknown Source)at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)at java.awt.Component.processMouseEvent(Unknown Source)at javax.swing.JComponent.processMouseEvent(Unknown Source)at java.awt.Component.processEvent(Unknown Source)at java.awt.Container.processEvent(Unknown Source)at java.awt.Component.dispatchEventImpl(Unknown Source)at java.awt.Container.dispatchEventImpl(Unknown Source)at java.awt.Component.dispatchEvent(Unknown Source)at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)at java.awt.Container.dispatchEventImpl(Unknown Source)at java.awt.Window.dispatchEventImpl(Unknown Source)at java.awt.Component.dispatchEvent(Unknown Source)at java.awt.EventQueue.dispatchEvent(Unknown Source)at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)at java.awt.EventDispatchThread.pumpEvents(Unknown Source)at java.awt.EventDispatchThread.pumpEvents(Unknown Source)at java.awt.EventDispatchThread.run(Unknown Source)解决方案:右键我的电脑→管理→服务和应用程序→SQL Server 配置管理器→SQL Server 网络配置,启用 与服务器名称相同的协议并双击 ,双击TCP/IP,"IP地址"选项卡下的"IPALL",将TCP动态端口设置为0(即启用),TCP端口是1433.重启服务,最好是重启计算机下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐