JDBC的实例分析
这篇文章给大家分享的是有关JDBC的实例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
JDBC实例前提:
1.SQL Server 2000 任意版本 //本人用的是企业版
2.SQL Server 2000 sp3升级包
你可以在这里下载http://www.bossed.com.cn/download/detailcp.asp?id=74
3.SQL Server 2000 jdbc 驱动 //这个就需要自己找了!
4.jdk1.4 //以下的例子是该版本
在以上条件满足的情况下,作以下事情
1.建立新数据库名为:jspdev ,并在其中建立一个名为userinfo的表
包括以下几列(Sno,Sname,Sage,Ssex,Sclass)
2.开始编写你自己的连接数据库的类(我这里是借鉴他人的版权不归我所有),你也可以用自己的方法
import java.sql.*; class Testj{ public static void main(String args[]) { String RL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=TESTDB"; String user ="jack";//这里替换成你自已的数据库用户名 String password = "jack";//这里替换成你自已的数据库用户密码 String sqlStr = "select * from test_student"; try{ //这里的异常处理语句是必需的.否则不能通过编译! Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); System.out.println( "类实例化成功!" ); System.out.println("slkdjf"); Connection con = DriverManager.getConnection(RL,user,password); System.out.println( "创建连接对像成功!" ); Statement st = con.createStatement(); System.out.println( "创建Statement成功!" ); ResultSet rs = st.executeQuery( sqlStr ); System.out.println( "操作数据表成功!" ); System.out.println( "----------------!" ); while(rs.next()) { System.out.print(rs.getInt("Sno") + " "); System.out.print(rs.getString("Sname") + " "); System.out.print(rs.getInt("Sage") + " "); System.out.print(rs.getString("Ssex") + " "); System.out.println(rs.getString("Sclass")); } rs.close(); st.close(); con.close(); } catch(Exception err){ err.printStackTrace(System.out); } } }
下面进行调试:
javac Testj.java
java Testj
如果JDBC实例正确输出应该是:
类实例化成功!
slkdjf
创建连接对像成功!
创建Statement成功!
操作数据表成功!
----------------!
2000 海拔 21 男 12
注意:这里有几点要说明
1.路径问题:
你必须配置你的classpath路径否则他在编译时会报错
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver at java.net.URLClassLoader$1.run(URLClassLoader.java:199) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:187) at java.lang.ClassLoader.loadClass(ClassLoader.java:289) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:141) at Test.main(Test.java:11)
你的路径应该是这样配置:你可以在在安装jdbc驱动后看那里的帮助文档(是英文的);
//这里指在xp系统下 classpath = .;G:\Microsoft SQL Server 2000 \Driver for JDBC\lib\msbase.jar; G:\Microsoft SQL Server 2000 \Driver for JDBC\lib\mssqlserver.jar; G:\Microsoft SQL Server 2000 \Driver for JDBC\lib\msutil.jar;
可千万不要写错哟!
2.sp3补丁包问题:
如果你在编译时出现下列问题 那么你需要下载并安装sp3补丁包
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis ng socket. at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source) at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSConnection.(Unknown Source) at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source) at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source) at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source) at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at Test.main(Test.java:14)
3.权限问题
如果你出现类似这样的问题
类实例化成功!
slkdjf java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 'jack' 登录失败。 原因: 未与信任 SQL Server 连接相关联。 at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source) at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSLoginRequest.processReplyToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source) at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source) at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source) at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source) at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at Testj.main(Testj.java:14)
原困是未设置SQL Server登录认证模式为混合认证模式,因为SQL Server默认安装后认证模式为WINDOWS认证模式,从而导致出错。
JDBC实例问题解决方法:启动SQLSERVER企业管理器,选择要进行认证模式设置的服务器。右击该服务器,在弹出菜单中选择属性,SQL Server将弹出属性对话框在属性对话框中选择安全性选项,在身份验证处选择"SQL Server和Windows",然后确定。
感谢各位的阅读!关于"JDBC的实例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!