试验Java数据库高级编程范文.doc

上传人:scccc 文档编号:12576403 上传时间:2021-12-04 格式:DOC 页数:9 大小:136.50KB
返回 下载 相关 举报
试验Java数据库高级编程范文.doc_第1页
第1页 / 共9页
试验Java数据库高级编程范文.doc_第2页
第2页 / 共9页
试验Java数据库高级编程范文.doc_第3页
第3页 / 共9页
试验Java数据库高级编程范文.doc_第4页
第4页 / 共9页
试验Java数据库高级编程范文.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《试验Java数据库高级编程范文.doc》由会员分享,可在线阅读,更多相关《试验Java数据库高级编程范文.doc(9页珍藏版)》请在三一文库上搜索。

1、试验三 Java 数据库高级编程3.1 试验指导一、 JDBC 访问 MySql 基本步骤1、加载驱动程序 。驱动文件为 mysql-connector-java-3.1.10-bin.jarString driver="com.mysql.jdbc.Driver"Class.forName(driver);2、建立连接对象 ConnectionConnection con=DriverManager.getConnection(url,user,pwd);String url= "jdbc:mysql:/127.0.0.1:3306/数据库名 "Str

2、ing user="root",pwd="1234"3、创建一个命令对象 StatementStatement cmd=con.createStatement();1)、执行 select 语句,返回 ResultSetString sql="select * from customers"ResultSet rs=cmd.executeQuery(sql);while(rs.next()String cid=rs.getString(1);String cname=rs.getString(2);int age=rs.getInt(

3、3);2)、执行 insert,update,delete 等操作 .String sql= "delete from customers where cid='1001'"int rowcount=cmd.executeUpdate(sql);4、关闭一些对象con.close();完整示例:import java.sql.*;public class Demo public static void main(String args) throws ExceptionString driver = " com.mysql.jdbc.Driver&

4、quot;Class.forName(driver);String url= " jdbc:mysql:/127.0.0.1:3306/ 数据库名 "Connection con=DriverManager.getConnection(url,"zhouping","1234");Statement cmd=con.createStatement();ResultSet rs=cmd.executeQuery("select * from customers"); while(rs.next()System.out

5、.printf("%-10s%-30s%-10sn",rs.getString(1),rs.getString(2),rs.getString(3);con.close();带参数的 Sql 语句 ?代表参数String sql="insert into customers(id,name,phone) values(?,?,?)"PreparedStatement cmd=con.prepareStatement(sql);cmd.setString(1, "1003"); / cmd.setString(2, "zhou

6、"); / cmd.setString(3, "021-");/ cmd.executeUpdate();、讨论 ResultSet为第一个参数赋值为 1003 为第二个参数赋值为 zhou 为第三个参数赋值为 1003ResultSet 是一个游标,每次只能指向某一行,通过游标可以取当前行的列值。游标可以移动指向不同行。1、创建支持滚动游标Statement cmd=con.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);ResultSet rs=cmd

7、.executeQuery(sql);rs.first();/ 移到第一行rs.last();/ 移到最后行rs.next();/ 移到下一行rs.previous();/ 移到上一行rs.absolute(4); / 移到第 4行rs.relative(2); / 在当前行的位置向下 2 行,如果是负数则向上移动指定行数2、创建支持更新的游标Statement cmd=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);1)删除当前行rs.deleteRow();2)更新当前行rs

8、.first();/ 移到第一行rs.updateString(2,"zhang san");/更新第 2列rs.updateRow();/ 刷新到数据库四、数据库分层设计1、编写一个操作数据库的基本类import java.sql.*; public class DBHelper /* 定义 driver,url,user,pwd 等 */private static String driver = "com.mysql.jdbc.Driver"private static String url = "jdbc:mysql:/127.0.0.

9、1:3306/mydb"private static String user = "root", pwd = "1234"private static Connection con;/* 加载驱动程序 */static try Class.forName(driver); catch (Exception ex) ex.printStackTrace();/* 执行增删改操作 */public static void executeUpdate(String sql) try con = DriverManager.getConnection(

10、url, user, pwd); Statement cmd = con.createStatement(); cmd.executeUpdate(sql);con.close(); catch (Exception ex) ex.printStackTrace();/* 执行查询操作 */public static ResultSet executeQuery(String sql) ResultSet rs = null;try con = DriverManager.getConnection(url, user, pwd); Statement cmd = con.createStat

11、ement();rs = cmd.executeQuery(sql); catch (Exception ex) ex.printStackTrace();return rs;/* 执行关闭数据库连接操作 */ public static void closeConnection() try if(!con.isClosed() con.close(); catch (Exception ex) 2、定义类 Customer 映射数据库表 Customers 表个结构如下: create database mydb;use mydb;Create table customers( cusid

12、int not null primary key, cusname varchar(20), cusphone varchar(20) );insert into customers values(100,'zhou','021-');insert into customers values(101,'zhang','021-');insert into customers values(102,'zhao','021-');insert into customers values(103,'

13、;lou','021-');insert into customers values(104,'hou','021-');类 Customerclass Customerprivate int cusid;private String cusname,cusphone;/*编写构造函数与 set, get 方法*/3、编写顾客表操作类 DAOpackage zhou;import java.sql.*;import java.util.*;public class CustomerDao public ArrayList<Custo

14、mer> allCustomers() ArrayList<Customer> list = new ArrayList<Customer>(); String sql = "select * from customers"ResultSet rs = DBHelper.executeQuery(sql);trywhile (rs.next() Customer cus = new Customer(); cus.setCusid(rs.getInt(1); cus.setCusname(rs.getString(2); cus.setCusp

15、hone(rs.getString(3); list.add(cus); catch (Exception ex) ex.printStackTrace();DBHelper.closeConnection();return list;public void deleteCustomerByID(int id) String sql = "delete from customers where customerid="+id;DBHelper. executeUpdate(sql);public void addCustomer(Customer cus) String s

16、ql = "insert into customers values("+cus.getCusid()+",'"+ cus.getCusname()+"','"+ cus.getCusphone()+"')"DBHelper. executeUpdate(sql);4、编写客户端package zhou;import java.io.*;import java.util.*;public class Demo public static void main(String args)

17、throws Exception CustomerDao dao = new CustomerDao();/* 增加一个顾客 */Customer cus1=new Customer();cus1.setCusid(1010);cus1.setCusname("zhangsan");cus1.setCusphone("010-11111");dao.addCustomer(cus1);/* 查询所有顾客 */ArrayList<Customer> list=dao.allCustomers();for(int i=0;i<list.si

18、ze();i+)Customer cus=list.get(i);System.out.println(cus.getCusid()+" "+cus.getCusname()+" "+cus.getCusphone();/* 通过编号删除顾客 */ dao.deleteCustomerByID(1010);§3.2实践题目1、调试上面实验指导部分“四、数据库分层设计”部分代码2、运用上面数据库设计思想, 继续完成上次实验。以JDBC技术创建一个通讯录应用程序, 要求通讯录中必须含有编号、 姓名,性别、电话、地址、Email等等。实现该类并包含添

19、加、 删除、修改、按姓名查等几个方法。编写主程序测试。参考如下:第一步:编写一个 Person联系人类publicclass Person private int pid; /编号private String name;/ 姓名private String sex;/性别private String tel;/电话private String address;/地址private String email;/email/*构造函数以及set-get函数*/第二步:编写一个 Person Dao封装对联系人类的有关操作 public class Person Dao /添加联系人String s

20、ql=DBHelper.executeUpdate(sql);/通过人的编号删除联系人public void deletePerso nBylD(i nt pid)String sql=delete from pers on where pid=+pid;DBHelper.executeUpdate(sql);/通过人的姓名查找联系人,返回一个集合public List<Pers on> queryPers on ByName(Stri ng n ame)/.其余方法第三步:编写一个测试Swing类,有界面使用JTable显示,参考书本上关于JTable控件的使用,参考界面如下pu

21、blic class TestFrm exte nds JFrame3、在数据库中建立一个表,表名为学生,其结构为:学号、姓名、性别、年龄、成绩。编 程实现以下功能:编写方法向学生表中增加记录。编写方法将每条记录按成绩由大到小的顺序显示到界面编写方法删除成绩不及格的学生记录。本题可以使用Oracle数据库。 采用分层数据库设计的思想。编程步骤参考第一步、创建数据库中的表Stude nt( int id, name varchar(20),)第二步、编写一个 Student 类public class Student private int id;private String name;第三步、

22、构造一个该表的操作类 StudentDao 相关的业务逻 辑class StudentDao/* 增加一个 Student*/public void add Student (Studentst) /*查询系统中所有的 Student ,返回的是包含有 Student 持久对象的 List 。*/public List getAll Student ()/*删除给定 ID 的 Student*/public void delete Student (String id) /* 按 Student 的名字进行模糊查找,返回是包含有 Student 持久对象的 List*/public List

23、getSome Student (String name) 第四步、编写用户界面调用该 Student Dao说明: 本次实验浓缩了很多数据库设计的重要设计思想。 希望大家编写程序时认真体会,理解为什么这样做?做完后要认真总结。 数据库编程是各门语言的核心内容其运用到业务各个方面。参考:连接字符串1 、连接 OracleString driver = "oracle.jdbc.driver.OracleDriver"String strUrl = "jdbc:oracle:thin:127.0.0.1:1521:MYORA" /127.0.0.1 为数据库所在的机器 IP,1521 是端口号 MYORA 是 Oracle 运行的实例名Class.forName(driver);Connection con= DriverManager.getConnection(strUrl ,"user","password");

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1