JDBC 远程 SQLSERVER 速度很慢的处理方式

1、数据库连接配置

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
	<bean id="netpreLgfy"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName">
			<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
		</property>
		<property name="url">
			<value>jdbc:sqlserver://172.16.253.122:1433;DatabaseName=joytone;</value>
		</property>
		<property name="username">
			<value>sa</value>
		</property>
		<property name="password">
			<value></value>
		</property>
	</bean>
	<bean id="NetpreLgfyDaoJdbcImpl"
		class="com.ztkj.his.mzregister.server.dao.jdbc.impl.NetpreLgfyDaoJdbcImpl" >
		<property name="dataSource">
			<ref bean="netpreLgfy" />
		</property>
	</bean>
</beans>

2、访问 sqlserver 代码

public List<JoytoneYuyue> getYuyueInfo(String orderno, String cardno) throws DaoException {
		GlobalFun.logIn();
		List<JoytoneYuyue> list = null;
		try {
			String sql = "SELECT * FROM JOYTONE_YUYUE where 1=1 ";
			if (!Assert.isNull(orderno)) {
				sql = sql.concat(" and order_no='").concat(orderno).concat("'");
			} else if ((!Assert.isNull(cardno)) && cardno.length() > 0) {
				sql = sql.concat(" and his_member_id='").concat(cardno).concat("'");
			}

			sql = sql.concat(" order by order_no desc ");
			logger.info("orderno=" + orderno + ",cardno=" + cardno);
			logger.debug(sql);
			list = this.getJdbcTemplate().query(sql, new ObjectMapper(JoytoneYuyue.class));
		} catch (Exception e) {
			throw new DaoException(e.getMessage());
		}
		GlobalFun.logOut();
		return list;
	}

3、解决办法

在 web 服务器 c:\windows\system32\drivers\etc\HOSTS表中添加一条

172.16.253.122 172.16.253.122

问题原因:servername(本例中是172.116.253.122),程序访问172.116.253.122时,把它当成机器名称进行解析,长时间没有结果最后才访问IP为172.116.253.122的机器。


host 一般修改能直接生效,偶尔需要用到命令:

ipconfig /displaydns
//显示DNS缓存内容
ipconfig /flushdns
//删除DNS缓存内容
这样,系统就会清空本机的DNS缓存,从而不必重启,就能使Hosts文件生效。


4、host 学习

当我们输入 www.baidu.com 这段域名的时候,首先我们机器会读取 host 文件,host 文件会将 www.baidu.com 解析到某个具体的 ip 地址上面,如果 host 文件没有进行任何配置,则会去请求 dns 服务器, 如果你使用当前的局域网中没有架设 dns 服务器则会去请求外网的 dns 服务器,例如:电信,网通之类。 

总结: host 文件适用与局域网之间的通信,绕开外网 dns 服务器这样就会大大节省时间。

文章参考:http://www.cnblogs.com/Yisijun/articles/4600502.html


猜你喜欢

转载自blog.csdn.net/u011984172/article/details/73497820