java 自动注册odbc

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:

首先说下odbc的注册原理,windows下odbc的注册均会在注册表odbc.ini 产生相应项,因此我们只用用java写入注册表即可

java写注册表需要一个com.ice.jni.registry 但是这个东西分32位和64位,因此要特别判断

下面以写一个名为jxy的odbc源为例

import com.ice.jni.registry.NoSuchKeyException;
import com.ice.jni.registry.RegDWordValue;
import com.ice.jni.registry.RegStringValue;
import com.ice.jni.registry.Registry;
import com.ice.jni.registry.RegistryException;
import com.ice.jni.registry.RegistryKey;
import com.ice.jni.registry.RegistryValue;
import com.sun.corba.se.pept.transport.ContactInfo;
public static void reg(){ //注册odbc
		Properties props = System.getProperties();  
		props.get("os.name");
		if(((String) props.get("os.name")).toLowerCase().indexOf("windows")==-1){ //判断是否为windows
			    return;
		}
		String last;
		File t=new File("ICE_JNIRegistry.dll"),s;
		if(t.exists())t.delete();
		if(((String)props.get("os.arch")).indexOf("64")>-1){ //判断是否为64位系统
			s=new File("ICE_JNIRegistry -64.dll");
			last="ICE_JNIRegistry -64.dll";
			s.renameTo(t);
		}else{
			s=new File("ICE_JNIRegistry -32.dll");
			last="ICE_JNIRegistry -32.dll";
			s.renameTo(t);
		}
		try {
			String place;
			if(System.getenv("windir")!=null){
				place=System.getenv("windir")+"\\system32";
				place.replaceAll("\\\\{2}","\\\\");
			}else{
				place=(String) props.get("user.dir");
			}
			RegistryKey odbc = Registry.HKEY_CURRENT_USER.openSubKey("Software").createSubKey("ODBC","").createSubKey("ODBC.INI","");
			RegistryKey jxy=odbc.createSubKey("jxy", "");
			jxy.setValue(new RegStringValue(jxy, "Driver",place+"\\SQLSRV32.dll")); //如果系统没有sql,则用当前目录的
			jxy.setValue(new RegStringValue(jxy,"Server","JXY-THINK\\JXY_SQL_SERVER"));  
			jxy.closeKey();
			odbc.closeKey();
		} catch (NoSuchKeyException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (RegistryException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}    
		s=new File("ICE_JNIRegistry.dll");
		t=new File(last);
		s.renameTo(t);
		
	}

所需dll和jar均以图片格式上传,另存为保存成zip即可



如果用sql server 也可以不用odbc,直接用jdbc for sql server即可

	private static String url="jdbc:sqlserver://JXY-THINK;instanceName=JXY_SQL_SERVER;database=学籍管理系统";
	private static Connection con=null;
	private static String sql;
	private static Statement stmt;

	public static void init(){
		try {
		
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		} catch (ClassNotFoundException e) {

			e.printStackTrace();
		}
	}
	public static int login_s(String user,String password){
		try {
			con=DriverManager.getConnection(url, user, password);
			stmt=con.createStatement();
		} catch (SQLException e) {
			e.printStackTrace();
			return 1;
		}
		return 0;
	}

所需文件依旧为图片……另存为zip


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
1月前
|
前端开发 Java 数据库连接
Java代码打造的注册系统
Java代码打造的注册系统
26 0
|
1月前
|
前端开发 Java 数据库连接
JavaWeb:登录注册功能实现
JavaWeb 登录注册是一种常见的网站开发功能,使用 Java 编程语言和 Web 技术来实现用户注册和登录功能
51 3
|
9月前
|
缓存 Dubbo Java
Java面试题顶级理解!Dubbo注册中心挂了,服务还可以继续通信吗?
什么情况?一位工作了 5 年的 Java 程序员,竟然回答不出这个问题?说“Dubbo注册中心挂了, 服务之间还可以继续通信吗”?今天,我话2分钟时间给大家来聊一聊。
205 0
|
8天前
|
安全 Java 开发者
Java一分钟之-Spring Cloud Netflix Eureka:服务注册与发现
【6月更文挑战第8天】Spring Cloud Eureka是微服务架构的关键,提供服务注册与发现功能。本文讲解Eureka工作原理、配置、常见问题及解决方案。Eureka包含Server(管理服务状态)和Client(注册服务实例并发现服务)。快速入门包括启动Eureka Server和创建Eureka Client。常见问题涉及服务注册不上、服务下线和客户端注册信息不准确,可通过检查网络、理解自我保护机制和配置元数据解决。此外,文中还提及健康检查、安全配置和集群部署等高级实践,以增强系统健壮性和扩展性。
55 8
|
1月前
|
前端开发 Java 数据库连接
【Java实战篇】SpringBoot+MyBatis快速实现登录注册
【1月更文挑战第19天】【Java实战篇】SpringBoot+MyBatis快速实现登录注册
|
1月前
|
存储 Java 关系型数据库
Java注册与登录
Java注册与登录
13 0
|
11月前
|
人工智能 自然语言处理 自动驾驶
我用Java写AI系列【一】百度AI账号的注册
我用Java写AI系列【一】百度AI账号的注册
123 0
|
1月前
|
人工智能 算法 前端开发
java绘制标注框,注册字体
java绘制标注框,注册字体
|
7月前
|
Java
登录注册-----java案例
登录注册-----java案例
|
10月前
|
Java
JAVA采用手机号获取短信验证进行登录与注册
JAVA采用手机号获取短信验证进行登录与注册
108 0