资源描述:
《高级java程序设计实验2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验二通过JDBC数据库访问数据库一、实验目的熟习UML建模,数据库设计和通过JDBC访问数据库。二、实验内容1.练习通过使用用例图、活动图、类图等UML工具建立一般用户管理的模型,学习用户管理的数据字典编写、数据表创建和数据添加的SQL代码编写;模仿用户管理模型建立货物管理系统的进货单录入模型,编写进货单管理的数据字典、创建相应的数据表和编写数据添加的SQL代码。2.学习通过JDBC访问数据库的方法,完成货物管理系统中登录管理、用户管理和进货单录入等几个子功能模块的编程实现。三、用户管理建模、数据建模、文件结构、文件示例3.
2、1用户管理的建模3.1.1用例图用户管理程序注册用户3.1.2活动图3.1.3类图其中,UserApp类是主程序,窗口类UserFrame由UserApp程序所启动。UserData类相当于javabean,窗口类UserFrame应用UserData类的方法进行各种数据操作,如添加、删除、修改用户。3.2用户管理的数据建模3.2.1数据字典用户管理的数据库是C1UserEclipse,共有一个数据表,名字是usertable,数据字典如下:序号字段名数据类型大小默认值允许空值唯一主键自动增加排序备注1userIdint√√√
3、升序用户序号2userNamevarchar50用户名3userPasswordvarchar50用户密码用户类型,如0表示系统管理员,1表示4userStateint总经理,2表示部门经理,等等3.2.2数据创建的SQL代码CREATETABLEusertable(userIdintAUTO_INCREMENTNOTNULLPRIMARYKEY,userNamenvarchar(50)NOTNULL,userPasswordnvarchar(50)NOTNULL,userStateintNOTNULL)其中AUTO_INCR
4、EMENT表示每增加一行记录,userId自动增加1。如果用SQLServer数据库,AUTO_INCREMENT应改为IDENTITY(1,1)。3.2.3数据添加的SQL代码INSERTINTOusertable(userName,userPassword,userState)VALUES('manager','user',0)INSERTINTOusertable(userName,userPassword,userState)VALUES('user','user',1)3.2.4数据表的创建首先创建项目C1UserC
5、S,并将mysql-connector-java-5.0.4-bin.jar的MySQL类包加入C1UserCS项目,类包加入项目的方法如下图:再创建数据表创建的类文件UserCreate.java,保存于data目录:1:packagedata;2:importjava.sql.*;3:publicclassUserCreate{4:publicstaticvoidmain(String[]args){5://定义数据库连接的驱动程序6:Stringdriver="org.gjt.mm.mysql.Driver";7://定
6、义MySQL数据库的连接地址8:Stringurl="jdbc:mysql://localhost:3306/C1UserEclipse";9://声明连接类10:Connectionconn=null;11:try{12://使用JDBC技术创建数据库连接13:Class.forName(driver);14://使用DriverManager类的建立连接,第一个参数定义用户名,第二个参数定义密码15:conn=DriverManager.getConnection(url,"root","test");16:if(conn
7、!=null){17:System.out.println("成功连接JDBC数据源.");18:}19:Statementstmt=conn.createStatement();20:try{21:ResultSetrs=stmt.executeQuery("select*fromusertable");22:if(rs!=null){23:System.out.println("数据库C1UserEclipse已经存在usertable数据表.");24:}25:}catch(Exceptionex){26:Strings
8、ql="CREATETABLEusertable("+"userIdintAUTO_INCREMENTNOTNULLPRIMARYKEY,"+"userNamevarchar(50)NOTNULL,"+"userPasswordvarchar(50)NOTNULL,"+"us