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


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);
		 
	}
	
	@Override
	public  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;
	}

	@Override
	public 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 configuration
	PUBLIC "-//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.properties

driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc.microsoft:sqlserver://localhost:1433;DatabaseName=mydb
username=sa
password=1234




com.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.NullPointerException
 at 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.重启服务,最好是重启计算机下


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值