关于java连接数据库的问题! 了解两种:JDBC driver 和 JDBC-ODBC bridge具体实现:1 加载驱动 2 创建连接 3 实现代码。再具体,就找书看吧。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 方法1:jdbc驱动连接 jdbc驱动设置(非jbuilder的运行环境下,比如cmd环境): 下载一个驱动,安装后将驱动文件(比如sqlserver是3个.jar文件)的绝对路径放入classpath环境变量里面去,最好将驱动就安装到jdk的lib目录里面算了。 这方面设置若有问题参考:http://www.csdn.net/expert/topic/750/750375.xml?temp=.4715387 可运行代码实例: import java.sql.*; public class Test { public static void main(String[] args) { try { String address = "jdbc:microsoft:sqlserver://192.168.0.24:1433"; //驱动类型+目标数据库ip+数据库端口 String user="sa";//数据库用户密码 String passwd="";//口令 String database = "TESTDB";//目标数据库 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//驱动申明 Connection con = DriverManager.getConnection(address,user,passwd);//建立链接 con.setCatalog(database);//确定目标数据库 Statement smt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); //设定结果集支持滚动光标且敏感,不可编辑 String selCode = "SELECT userId,userName FROM UserTable";//查询语句 ResultSet rs = smt.executeQuery(selCode);//结果集 if(rs.last()) {//从第一条往后依次取结果集中的记录 String userId = rs.getString(1);//等同rs.getString("userId"),即第一个字段数据 String userName = rs.getString(2);//同上,第二个字段,全部取其为String类型 //若是中文字段,一般需要转码 //userName = new String(userName.getBytes("ISO-8859-1"),"gb2312"); System.out.println(userId+":"+userName);//输出此条记录的查询结果 } rs.close();//释放资源 smt.close(); con.close(); } catch(Exception e) { System.out.println(e);//捕捉异常 } } } 方式2:使用jdbc-odbc数据源方式链接数据库 String dbUrl = "jdbc:odbc:Test"; //在控制面版-管理工具-数据源-系统dsn里面添加数据源名Test,选定对应sqlserver数据库 String user = "sa"; String password = ""; // 登陆数据库OMT,使用jdbc-odbc Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection(dbUrl, user, password); Statement stmt = con.createStatement(); //注意,通过此种方式得到的结果集不支持滚动光标和不可更改 ResultSet rs = stmt.executeQuery(sqlCode); …… 其它同上 请问jdo是什么东西?还有每种数据库是不是连接的方法不同?比如sql-server和mysql是不是就不一样? 按照jdbc采用的驱动程序类别可以分为四类,具体怎么连可以查阅jdbc资料,一般都有实例连接sql server与mysql的差别,在于驱动程序不同:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");中的 sun.jdbc.odbc.JdbcOdbcDriver就代表驱动程序! ===========来个正则表达式======== 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 j2se打包安装 关于调用静态成员变量 如何跟踪到JComponent.java中去 构造函数的问题 连接sql2005老显示找不到合适驱动,求助!! 关于JNI中函数传递中文字符的问题 谁能解释下i=1;i=i++;打印i竟然还是1 Java的图形处理问题,高手指教 请问如何把String转换成二进制的Binary String? 这个方法该如何写?参数为rs,返回rs的从第n条记录起的num条记录?谢谢!
jdbc驱动设置(非jbuilder的运行环境下,比如cmd环境):
下载一个驱动,安装后将驱动文件(比如sqlserver是3个.jar文件)的绝对路径放入classpath环境变量里面去,最好将驱动就安装到jdk的lib目录里面算了。
这方面设置若有问题参考:http://www.csdn.net/expert/topic/750/750375.xml?temp=.4715387
可运行代码实例:
import java.sql.*;
public class Test {
public static void main(String[] args) {
try {
String address = "jdbc:microsoft:sqlserver://192.168.0.24:1433";
//驱动类型+目标数据库ip+数据库端口
String user="sa";//数据库用户密码
String passwd="";//口令
String database = "TESTDB";//目标数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//驱动申明
Connection con = DriverManager.getConnection(address,user,passwd);//建立链接
con.setCatalog(database);//确定目标数据库
Statement smt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
//设定结果集支持滚动光标且敏感,不可编辑
String selCode = "SELECT userId,userName FROM UserTable";//查询语句
ResultSet rs = smt.executeQuery(selCode);//结果集
if(rs.last()) {//从第一条往后依次取结果集中的记录
String userId = rs.getString(1);//等同rs.getString("userId"),即第一个字段数据
String userName = rs.getString(2);//同上,第二个字段,全部取其为String类型
//若是中文字段,一般需要转码
//userName = new String(userName.getBytes("ISO-8859-1"),"gb2312");
System.out.println(userId+":"+userName);//输出此条记录的查询结果
}
rs.close();//释放资源
smt.close();
con.close();
}
catch(Exception e) {
System.out.println(e);//捕捉异常
}
}
}
方式2:使用jdbc-odbc数据源方式链接数据库
String dbUrl = "jdbc:odbc:Test";
//在控制面版-管理工具-数据源-系统dsn里面添加数据源名Test,选定对应sqlserver数据库
String user = "sa";
String password = "";
// 登陆数据库OMT,使用jdbc-odbc
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(dbUrl, user, password);
Statement stmt = con.createStatement();
//注意,通过此种方式得到的结果集不支持滚动光标和不可更改
ResultSet rs = stmt.executeQuery(sqlCode);
……
其它同上
还有每种数据库是不是连接的方法不同?
比如sql-server和mysql是不是就不一样?
连接sql server与mysql的差别,在于驱动程序不同:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");中的 sun.jdbc.odbc.JdbcOdbcDriver就代表驱动程序!