实验七JAVA与数据库的连接

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嘉应学院计算机学院
一、百度文库验目的
通过实验,掌握程序设计语言(JAVA)通过 JDBC\ODBC 与 SQL SERVER 数据库的连接方法。
二、实验原理
程序设计语言与数据库连接对于信息系统的开发是非常重要的, 程序设计语言可以嵌入 SQL 语句实 现对数据库的操作。 开发工具:j2sdk 1、JAVA 编程的基本方法 (1)将下列代码编辑为 Hello.java 文件 public class Hello { public static void main(String args[]) { System.out.println("Hello, Anybody!"); } } (2)编译程序 javac Hello.java (3) 执行程序 java Hello 显示其结果为:
2.java 与数据库连接的途径 (1)通过 Jdbc-Odbc 桥连接 (2)通过 Jdbc 连接 应用 JDBC 的 7 个基本步骤 (1).加载驱动 (2).定义连接 URL (3).建立连接 (4).创建声明对象 (5).执行查询 (6).处理查询结果 (7).关闭连接
JDBC 的接口和类 (1)Connection,用于一个特定的数据库连接。 (2)PreparedStatement, 用于执行带或不带参数的预编译 SQL 语句。 (3)ResultSet, 当执行 SQL 语句后的返回结果集。 (4) Staement 对象用于将 SQL 语句发送到数据库中。 executeQuery(String sql); executeUpdate(String sql); execute(String sql); close()等。 (5)DriverManager 调用方法:Class.forName //加载 DRIVER 建立连接:DriverManager.getConnection
由上述两图相比:运行后的结果完全相同。 2、通过 Jdbc 连接 SQL Server (1)配置 Jdbc 驱动 sql server 2000 的 JDBC 驱动需要打补丁 SP3(本实验不做) 实验采用 Sql server 2005 执 行 sqljdbc_1.2.2828.100_chs.exe 将 解 压 文 件 , 将 解 压 后 的 文 件 夹 sqljdbc_1.2 复 制 到 C:>Program File 中 设置 Classpath 在 Classpath 中增加 C:\ProgramFiles\sqljdbc_1.2\chs\sqljdbc.jar (2)注意 sql server 2000 与 sql server 2005JDBC 调用差异并与 JDBC-ODBC 桥的差异 对于 Sql Server 2000 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433; DatabaseName= 数据库名 ","数据库登录名","登录密码"); 对于 SQL Server 2005: Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName= 数据库名 ","数据库 登录名","登录密码"); 兼容的 JDBC 驱动 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String connectionUrl = "jdbc:sqlserver://localhost:1433;" + "databaseName=AdventureWorks;user=UserName;password=*****"; JDBC-ODBC 桥 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection c=DriverManager.getConnection("jdbc:odbc:dsn 名","sa",""); //用户名为 sa, 密码为空 import java.sql.*; public class UseJdbc { public static void main(String[] args)throws SQLException, ClassNotFoundException { // sql server 2005 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //加载 JDBC 驱动 Connectionc=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=school","sa","") ; //连接到数据库
//声明一个 Statement 对象 Statement s=c.createStatement(); //从 STUDENT 数据库中查询到记录集 ResultSet r=s.executeQuery("select * from student"); while(r.next()) { System.out.println(r.getString("sno")+","+r.getString("sname")+","+r.getString("ssex")+","+r.getString("sage ")); } //关闭 s 和 c s.close(); c.close(); } }
//callable_statement.executeUpdate(); while(r.next()) { System.out.println(r.getString("sname")+","+r.getString("cname")+","+r.getFloat("grade")); } //关闭 s 和 c s.close(); c.close(); } }
三、实验内容和方法
1、通过 Jdbc-Odbc 桥连接 Sql Server (1)建立 ODBC 系统 DSN:school_dsn 打开计算机的 odbc 数据源(在运行中输入 odbcad32 或者从控制面板进入)->选择系统 dsn(添加新的 dsn-)->接下来输入选择数据库类型(Sql Server)、输入 dsn 名(school_dsn)、选择服务器(local)、连接数 据库的方式、 输入数据库的登陆用户和密码,更改默认数据库为 school->测试连接,如果测试成功的话, 那么你的 dsn 就建立好了。
4. Java 调用存储过程 (1)在数据库中建立存储过程 p2 在数据库 school 中创建带参数的存储过程 p2, 查询某系,某门课程的学生姓名,课程名及成绩
(2) 编 译运行下列程序 import java.sql.*; public class UseJdbc1 { public static void main(String[] args)throws SQLException, ClassNotFoundException { String dept="CS"; //参数为 CS String coursename="数据库"; // 参数为数据库 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //驱动 Connection c = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=school","sa",""); //连接数据库 String procedure_name="p2";//需要执行的存储过程名称 String call_procedure_string="{call "+procedure_name+"(?,?)}"; //调用存储过程的语句,2 个参数 CallableStatement callable_statement = c.prepareCall(call_procedure_string);//创建对象 callable_statement.setString(1,dept); // 设置第 1 个参数 callable_statement.setString(2,coursename); //设置第 2 个参数 ResultSet r =callable_statement.executeQuery(); // 调用存储过程返回数据集 r
(2)编辑下列程序,文件名为 JdbcOdbc.java 该程序是执行 SQL 语句:select * from student(查询学生表的所有记录)
(3)编译程序 JAVAC 与执行程序 JAVA 并观察输出结果
将程序运行的结果与在查询分析器中执行 select * from student 后的结果进行对比。
//设置的驱动 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //驱动 //连接数据库 Connectionc=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=school","sa","") ; //声明一个 Statement 对象 Statement s=c.createStatement(); // 注意字符串的连接,参数表示'"+参数+"' //将参数传递到 SQL 的查询语句 String S_sql="select sname,cname,grade from student,sc,course where" + " student.sno=sc.sno and course.cno=sc.cno and sdept='"+dept+"' and cname='"+coursename+"' "; //执行查询,并返回结果集 ResultSet r=s.executeQuery(S_sql); // 逐条返回纪录集 while(r.next()) { System.out.println(r.getString("sname")+","+r.getString("cname")+","+r.getFloat("grade")); } //将参数传递到 SQL 的更新语句 String U_sql =" update sc set grade=grade + 0.01 where " + "sno in (select sno from student where sdept='"+dept+"')"+ "and cno in (select cno from course where cname='"+coursename+"')"; s.executeUpdate(U_sql); //关闭 s 和 c // s.close(); c.close(); } }
3.带参数传递到查询、更新语句 import java.sql.*; public class UseJdbc2 { public static void main(String[] args)throws SQLException, ClassNotFoundException { //输入的参数 String dept="CS"; //参数为 CS String coursename="数据库"; // 参数为数据库 //采用键盘输入 //String dept=args[0]; //String coursename=args[1]; // java UseJdbc2 CS 数据库
相关文档
最新文档