首页 基于文字水印的谈判系统设计与实现

基于文字水印的谈判系统设计与实现

举报
开通vip

基于文字水印的谈判系统设计与实现毕 业 论 文 学生姓名 学 号 学院 计算机科学与技术学院 专 业 软件工程 题 目 基于文字水印的谈判系统设计与实现 指导教师 (姓 名) (专业技术职称/学位) (姓 名) (专业技术职称/学位) 年 月 摘 要:随着社会节奏越来越快,各种信息化网络工具越来越多,例如:腾讯QQ。鉴于网络的流行,社会的生活节奏加快,人们的矛盾日益趋于突显,但限于地域和时间的紧迫,一些谈判和协商及相互沟通更加需要网络软件的支持。因此,网络谈判系统势在必行,本系统基于文字水印的谈判系统设计与实现,主要采用C/S模式开发,采用MVC...

基于文字水印的谈判系统设计与实现
毕 业 论 文 学生姓名 学 号 学院 计算机科学与技术学院 专 业 软件 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 题 目 基于文字水印的谈判系统 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 与实现 指导教师 (姓 名) (专业技术职称/学位) (姓 名) (专业技术职称/学位) 年 月 摘 要:随着社会节奏越来越快,各种信息化网络工具越来越多,例如:腾讯QQ。鉴于网络的流行,社会的生活节奏加快,人们的矛盾日益趋于突显,但限于地域和时间的紧迫,一些谈判和协商及相互沟通更加需要网络软件的支持。因此,网络谈判系统势在必行,本系统基于文字水印的谈判系统设计与实现,主要采用C/S模式开发,采用MVC三层架构:Model View Controller,是模型(model)-视图(view)-控制器(controller)。1.模型层:数据的存储主要使用的是SQL Server 2005,以数据库的形式存储数据,以便于数据的增删查改和后期维护。2.视图层:采用的是Java Swing技术来开发并以命名以UI结尾。3.控制器:用Java代码来实现,主要用于业务和数据处理的函数实现。采用MVC之后,可以使编程条理更加清晰,各个层之间相互独立并相互合作,有利于系统的健壮性和后期维护扩展。开发语言Java;开发工具为Myeclipse,数据库SQL Server 2005。主要的技术为:接口技术(Interface),多态技术,类的封装和继承以及重写和重载技术,并且使用文字水印来维护版权信息。 关键字:网络谈判,文字水印,聊天谈判,Java,C/S,SQL Server 2005 Abstract:Along with the social rhythm faster and faster, all kinds of information networking tools more and more, such as tencent QQ. Given the popularity of network, the social life rhythm speeding up, the contradictions of people increasingly tend to highlight, but limited by geographical and time urgent, some negotiation and consultation, and communicate with each other more need the support of network software. Network negotiation system is imperative, therefore, this system based on system design and implementation of text watermark in the negotiations, mainly USES the C/S Model development, USES the MVC three-tier architecture: the Model View Controller, is the Model (the Model) - View (View) Controller (the Controller). Layer: 1. The model of data storage is mainly used in SQL Server 2005 is, in the form of a database to store data, in order to add or delete of data check and later maintenance. 2. The view layer, using a Java Swing technique to develop and to name the end with the UI. 3. Controller: using Java code, mainly for the business and data processing function. After using MVC, programming method can be more clear, between each layer are independent of each other and mutual cooperation, is advantageous to the system robustness, and later maintenance extension. The Java development language; For Myeclipse development tools, database SQL Server 2005. Main technology is: Interface technology (Interface), polymorphism technology, encapsulation and inheritance of class and override and overloading technology,And use text watermark to maintain the copyright information. Keyword:Chat online negotiations, text watermark, negotiations, Java, C/S, SQL Server 2005 目 录 摘要 Abstract 1 前言..................................................4 1.1系统简介............................................4 1.2系统需求分析及目标..................................5 1.3业务流程分析........................................5 1.4功能需求分析........................................6 2 系统概念模型描述.....................................7 2.1用户信息实体E-R图.................................7 2.2部门信息实体E-R图.................................7 3 系统设计.............................................7 3.1系统数据库的物理结构设计和逻辑结构描述.............7 3.2系统数据库转化为关系数据模型.......................8 3.3数据库 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 的结构.....................................8 3.3.1表dbo_td_userinfo用于保存用户信息...............8 3.3.2表dbo_td_department用于保存部门信息.............8 4 系统运行平台........................................9 4.1系统运行环境.......................................9 4.2系统开发平台.......................................9 5 系统实现和核心模块的描述............................9 5.1登陆界面及代码实现.................................9 5.2 聊天界面及聊天接口代码...........................15 5.3数据库操作函数及代码实现..........................16 5.4文字水印代码实现..................................25 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf .................................................25 参考文献.............................................25 致谢.................................................25 1 前言 在当今信息化爆炸的时代,互联网的作用越来越大,将人们联系成一体,人们可以足不出户的进行信息的交流和共享。计算机的用应普及了各行各业,这就使得人们和计算机的联系愈来愈广泛而密切,网络交流可以是人们足不出户的解决问题,大大削弱了地域和时间的紧迫性,各种交流软件应运而生,网络谈判系统就是专门用来解决人际关系,使人们进行协商,交流,解决问题。本文下面将具体的介绍基于文字水印的谈判系统设计与实现。 1.1 系统简介 基于文字水印的谈判系统设计与实现,主要用于用户双方在聊天软件上实现互相沟通,协商,洽谈。由注册页面:用于用户的注册功能,使用户添加进入数据库SQL Server 2005,登录页面:用于检验登录账号是否合法,是否账号存在 ,主界面:用于显示好友及在线好友的通讯录,聊天界面:用于通信的双方互相聊天沟通,谈判等。采用MVC三层建构模式,m ----model模型层也是实体层,一般与数据库的一个表对应;v-----view,视图层,主要用Java Swing 实现;c------control,控制层,一般是把页面提交的信息进行处理,或者是与数据库建立的连接操作都放在这里。这样使各个层之间互不干扰,又相互合作,便于后期维护和扩展。最后采用文字水印的功能实现版权的维护功能,以防止盗用。基于文字水印的谈判系统设计与实现,主要采用的技术:接口技术,类的封装继承以及多态技术,重载和重写等。基于文字水印的谈判系统的设计与实现总体设计图如下: 1.2 系统需求分析及目标 a良好的界面管理及人际交互 b实现用户的注册,登录,退出 c实现系统对用户的增删改查 d方便迅速的信息传递和流通 e.实现超级管理员的功能 f.接口技术实现后期系统升级与维护 1.3 业务流程分析 业务流程图能更好的反映业务情况: 1.4 功能需求分析 2 系统概念模型描述 2.1用户信息实体E-R图 2.2部门信息实体E-R图 3 系统设计 3.1 系统数据库的物理结构设计和逻辑结构描述 物理结构:数据结构在计算机中的表示(映像)称为数据的物理(存储)结构,系统搭建在win7系统下,采用java语言进行编写,它包括数据元素的表示和关系的表示。 逻辑结构:是对数据之间关系的描述,有时就把逻辑结构简称为数据结构。逻辑结构形式地定义为(K,R)(或(D,S)),其中,K是数据元素的有限集,R是K上的关系的有限集, 并采用SQL Server 2005来进行数据的管理支配,逻辑设计阶段的主要任务,是把E-R图转化为所选用DBMS产品支持的数据模型。由于该系统采用SQL Server关系型数据库系统,因此,应将概念设计的E-R模型转化为关系数据模型。 3.2 系统数据库转化为关系数据模型 用户(账号,密码,昵称,性别,年龄,部门号,电话,邮箱,姓名) 部门(部门号,部门名,部门职责) 3.3 数据库表的结构 通过以上得出关系数据模型之后,设计数据库如下: 3.3.1表dbo_td_userinfo用于保存用户信息 字段名称 数据类型 字段大小 说明 userID int 4 用户账号 nickname varchar 20 昵称 password varchar 50 密码 sex varchar 2 性别 age int 4 年龄 departID int 4 部门号 photo int 4 电话 email varchar 50 邮箱地址 name varchar 50 姓名 3.3.2表dbo_td_department用于保存部门信息 字段名称 数据类型 字段大小 说明 departID int 4 部门号 departName varchar 50 部门名称 departMemo varchar 100 部门职责 具体数据库 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 展示: 4 系统运行平台 4.1 系统运行环境 系统运行平台:操作系统winAll/winXP,数据库:安装了SQL Server 2005 4.2 系统开发平台 系统采用MyEclipse开发,而后台数据的存储采用数据可SQL Server 2005 5 系统实现和核心模块的描述 5.1登陆界面及代码实现 登陆界面用户名格式必须正确且必须注册过,登陆界面如图所示: 代码实现: /** * @(#)client.JQClient.java 2013-2-26 * Copy Right Information : 淮阴师范学院 计算机科学与技术学院(软件工程) * @author : 刘 超(计科0903 学号:210910018) * Project : 基于文字水印谈判系统的设计与实现 * JDK version used : jdk1.6.0 * Comments : java类 * Environment :Win7/Win8/Win XP * Version : 1.0.1 * Sr Date Modified By : * null * ************日本語版*********** * @(#)client.JQClient.java 2013-2-26 * Copy Right Information : 淮陰師範学院コンピュータの科学と技術学院(ソフト工程) * @author :りゅう ちょう( 計科0903 番号210910018) * Project : 文字に基づいて透かし交渉システムの設計と実現 * JDK version used : jdk1.6.0 * Comments : java類 * Environment :Win7/Win8/Win XP * Version : 1.0.1 * Sr Date Modified By : * null **/ package client.UI; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Vector; import java.util.regex.Pattern; import java.awt.*; import java.io.BufferedReader; import java.io.FileReader; import javax.swing.*; import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.PlainDocument; import client.interfaces.ILoginDao; /** * 登陆界面类 * @author 刘 超 * */ public class LoginUI extends JFrame{ private static final long serialVersionUID = 1L; private JComboBox cbUserId; private JPasswordField passwordField; private JButton loginBtn; private JButton cancelBtn; private double screenWidth;//当前屏幕的宽度 private double srceenHeight;//当前屏幕的高度 private static final int width=360,height=280; private ILoginDao loginHandle; private Vector userID; /** * 登陆界面有参构造函数 * @param loginDao */ public LoginUI(ILoginDao loginDao){ super("用户登录界面"); this.loginHandle = loginDao; userID = new Vector(); userID = readUserIDFromFile(); cbUserId = new JComboBox(userID); cbUserId.setEditable(true); JTextField txtField = (JTextField)cbUserId.getEditor().getEditorComponent(); MyDocument document = new MyDocument(); document.setAccpetPattern("\\d+"); document.setMaxSize(10); txtField.setDocument(document); cbUserId.setToolTipText("请在这里输入用户号码
用户号码只能输入数字,最多输入10位"); passwordField = new JPasswordField(10); passwordField.setEchoChar('●'); passwordField.setToolTipText("请在这里密码
密码必须是字符和数字"); MyDocument documents = new MyDocument(); documents.setAccpetPattern("\\p{Alnum}"); documents.setMaxSize(8); passwordField.setDocument(documents); loginBtn = new JButton(); cancelBtn = new JButton("退出"); cancelBtn.setActionCommand("Cancel"); cancelBtn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { System.exit(1); } }); Action loginMessage = new AbstractAction() { //发送消息Action private static final long serialVersionUID = 1L; public void actionPerformed(ActionEvent e){ sendLoginMessage(); //更新消息显示框 } }; passwordField.getInputMap().put(KeyStroke.getKeyStroke("ENTER"),"login"); //键盘事件处理,接受回车事件 passwordField.getActionMap().put("login",loginMessage); //回车时的处理(调用发送消息Action) loginBtn.setAction(loginMessage); loginBtn.setText("登录"); loginBtn.setActionCommand("Login"); } /** * 登陆界面的布局设置函数 */ public void setLayout(){ JPanel contentPane = (JPanel)getContentPane(); contentPane.setBorder(BorderFactory.createLineBorder(Color.ORANGE, 2)); GridBagLayout gridbag = new GridBagLayout(); contentPane.setLayout(gridbag); contentPane.add(new JLabel(new ImageIcon("image\\login.gif")),new GridBagConstraints(0,0,3,1,0.0,0.0, GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,20,0),0,0)); contentPane.add(new JLabel("用户名:"),new GridBagConstraints(0,1,1,1,0.0,0.0, GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(15,50,0,5),0,0)); contentPane.add(cbUserId,new GridBagConstraints(1,1,2,1,1.0,0.0, GridBagConstraints.WEST,GridBagConstraints.HORIZONTAL,new Insets(15,5,0,40),0,0)); contentPane.add(new JLabel("密 码:"),new GridBagConstraints(0,2,1,1,0.0,0.0, GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(10,50,0,5),0,0)); contentPane.add(passwordField,new GridBagConstraints(1,2,2,1,0.0,0.0, GridBagConstraints.WEST,GridBagConstraints.HORIZONTAL,new Insets(10,5,0,40),0,0)); contentPane.add(loginBtn,new GridBagConstraints(1,3,1,1,0.0,0.0, GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(15,4,50,50),0,0)); contentPane.add(cancelBtn,new GridBagConstraints(2,3,1,1,0.0,0.0, GridBagConstraints.NORTHWEST,GridBagConstraints.NONE,new Insets(15,35,50,40),0,0)); setSize(width, height); Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize(); screenWidth = dimension.getWidth(); srceenHeight = dimension.getHeight(); super.setLocation((int)screenWidth/2-width/2, (int)srceenHeight/2-height/2); setVisible(true); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } /** * 自定义文档模型 * @author 刘 超 * */ public class MyDocument extends PlainDocument{ private static final long serialVersionUID = 1L; Pattern pattern; int maxSize = 10; public void setAccpetPattern(String pattern){ this.pattern = Pattern.compile(pattern); } public void setMaxSize(int size){ maxSize = size; } public void insertString(int offs, String str, AttributeSet a) throws BadLocationException{ if(getLength() == maxSize){ return; } if(getLength() + str.length() > maxSize){ int i = maxSize - getLength(); str = str.substring(0, i); } if(pattern.matcher(str).matches()){ super.insertString(offs, str, a); } } } /** * 发送登陆信息 */ private void sendLoginMessage(){ char[] pw = passwordField.getPassword(); String userId= (String)cbUserId.getSelectedItem(); String password = new String(pw); if (!userId.equals("")&& !password.equals("")){ if(loginHandle != null){ loginHandle.login(Integer.valueOf(userId).intValue(), password); } } else { this.setVisible(false); JOptionPane.showMessageDialog(this, "用户号码和密码不能为空
用户号码只能是1-10位数字
密码必须是字符和数字", "登录消息", JOptionPane.INFORMATION_MESSAGE); this.clearTextContent(); this.setVisible(true); } } /** * 清除文本内容 */ public void clearTextContent(){ cbUserId.setSelectedIndex(-1); passwordField.setText(""); } /** * 从txt文本文档中读取历史登陆的账号信息 * @return */ public Vector readUserIDFromFile(){ try { BufferedReader br=new BufferedReader(new FileReader("Info//user.txt")); String msg = null; while((msg = br.readLine()) != null){ String temp = msg.trim(); if (!temp.equals("")){ if ( !userID.contains(temp)){ userID.add(temp); } } } } catch (Exception e) { e.printStackTrace(); } return userID; } } 5.2 聊天界面及聊天接口代码 /** * @(#)client.JQClient.java 2013-2-26 * Copy Right Information : 淮阴师范学院 计算机科学与技术学院(软件工程) * @author : 刘 超(计科0903 学号:210910018) * Project : 基于文字水印谈判系统的设计与实现 * JDK version used : jdk1.6.0 * Comments : java类 * Environment :Win7/Win8/Win XP * Version : 1.0.1 * Sr Date Modified By : * null **/ package client.interfaces; import resource.*; /** * 客户端的接口 2013-2-7 * * @author 刘 超 * @version 1.0.1 * @since JDK1.6(建议) */ public interface IClient { /** * 发送信息包 * @param packet */ public void sendChatMessage(MessagePacket packet); /** * 清空函数 */ public void clear(); } 5.3 数据库操作函数及代码实现 /** * @(#)client.JQClient.java 2013-2-26 * Copy Right Information : 淮阴师范学院 计算机科学与技术学院(软件工程) * @author : 刘 超(计科0903 学号:210910018) * Project : 基于文字水印谈判系统的设计与实现 * JDK version used : jdk1.6.0 * Comments : java类 * Environment :Win7/Win8/Win XP * Version : 1.0.1 * Sr Date Modified By : * null **/ package server; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Vector; import resource.*; /** * 数据库操作类 * @author 刘 超 * */ public class BaseDaoApp implements IBaseDao { private Connection con = null; public static final String DRIVER="net.sourceforge.jtds.jdbc.Driver"; public static final String URL="jdbc:jtds:sqlserver://localhost:1433;databasename=chatSystem"; public static final String USER_NAME="sa"; public static final String USER_PASS="123"; private Connection getConnection() { try{ Class.forName(DRIVER); con=DriverManager.getConnection(URL,USER_NAME,USER_PASS); }catch(Exception e){ e.printStackTrace(); } return con; } public void closeAll(Connection con,Statement st,ResultSet rs){ try{ if(con!=null){con.close();} if(st!=null){st.close();} if(rs!=null){rs.close();} }catch(Exception e){ e.printStackTrace(); } } public UserInfo login(UserInfo user) { int userID = user.getUserID(); String password = user.getPassword(); String queryString = "select * from t_userinfo where userID =? and password=?"; Connection con = this.getConnection(); ResultSet rs; UserInfo userinfo = null; try { PreparedStatement ps = con.prepareStatement(queryString); ps.setInt(1, userID); ps.setString(2, password); rs = ps.executeQuery(); while (rs.next()) { int ID = rs.getInt(1); String nickName = rs.getString(2); String pwd = rs.getString(3); String sex = rs.getString(4); int age = rs.getInt(5); int departID = rs.getInt(6); String phone = rs.getString(7); String email = rs.getString(8); String name = rs.getString(9); String iconPath = rs.getString(10); String address = rs.getString(11); userinfo = new UserInfo(ID, nickName, pwd, sex, age, departID, phone, email, name, iconPath, address); } return userinfo; } catch (SQLException e) { e.printStackTrace(); } return null; } public Vector getDepartments() { String queryStr = "select * from t_department"; Connection con = this.getConnection(); ResultSet rs; Vector department = new Vector(); ; try { PreparedStatement ps = con.prepareStatement(queryStr); rs = ps.executeQuery(); while (rs.next()) { int departID = rs.getInt(1); String departName = rs.getString(2); String departDepict = rs.getString(3); Department depart = new Department(); depart.setDepartmentID(departID); depart.setDepartmentName(departName); depart.setDepartmentDipct(departDepict); department.add(depart); } return department; } catch (SQLException e) { e.printStackTrace(); } return null; } public Vector onLineUsers(Vector userID) { int size = userID.size(); System.out.println("onLineUsers count" + size); Connection con = this.getConnection(); ResultSet rs; PreparedStatement ps; Vector onLineUsers = new Vector(); int index = 0; while (size > 0) { String queryString = "select * from t_userinfo where userID = ?"; try { ps = con.prepareStatement(queryString); ps.setInt(1, userID.get(index)); rs = ps.executeQuery(); while (rs.next()) { int ID = rs.getInt(1); String nickName = rs.getString(2); String pwd = rs.getString(3); String sex = rs.getString(4); int age = rs.getInt(5); int departID = rs.getInt(6); String phone = rs.getString(7); String email = rs.getString(8); String name = rs.getString(9); String iconPath = rs.getString(10); String address = rs.getString(11); UserInfo userinfo = new UserInfo(ID, nickName, pwd, sex, age, departID, phone, email, name, iconPath, address); onLineUsers.add(userinfo); } } catch (SQLException e) { e.printStackTrace(); } index++; size--; } return onLineUsers; } public int addDepartment(Department department) { String departmentName = department.getDepartmentName(); String departmentDicpt = department.getDepartmentDipct(); String insertDepartmentString = "insert into t_department values(?,?)"; String queryDepartmentIsExistString = "select count(*) from t_department where departName =?"; String queryDepartIDString = "select departID from t_department where departName =?"; Connection con = this.getConnection(); PreparedStatement ps; ResultSet rs; int count = -1; try { ps = con.prepareStatement(queryDepartmentIsExistString); ps.setString(1, departmentName); rs = ps.executeQuery(); while (rs.next()) { count = rs.getInt(1); } if (count == 0) { ps = con.prepareStatement(insertDepartmentString); ps.setString(1, departmentName); ps.setString(2, departmentDicpt); int result = ps.executeUpdate(); if (result != 0) { ps = con.prepareStatement(queryDepartIDString); ps.setString(1, departmentName); rs = ps.executeQuery(); int departID = 0; while (rs.next()) { departID = rs.getInt(1); } return departID; } } } catch (SQLException e) { e.printStackTrace(); } return 0; } public boolean modifyDepartment(Department department) { int departmentID = department.getDepartmentID(); String departmentName = department.getDepartmentName(); String departmentDepict = department.getDepartmentDipct(); String updateString = "update t_department set departName = ?,departMemo = ? where departID=?"; Connection con = this.getConnection(); PreparedStatement ps; try { ps = con.prepareStatement(updateString); ps.setString(1, departmentName); ps.setString(2, departmentDepict); ps.setInt(3, departmentID); int count = ps.executeUpdate(); if (count != -1) { return true; } } catch (SQLException e) { e.printStackTrace(); } return false; } public boolean delDepartment(Department department) { int departID = department.getDepartmentID(); String deleteString = "{call pro_delDepartment(?)}"; Connection con = this.getConnection(); try { CallableStatement cstmt = con.prepareCall(deleteString); cstmt.setInt(1, departID); System.out.println("departmentID:" + departID); if (false == cstmt.execute()) { return true; } } catch (SQLException e) { e.printStackTrace(); } return false; } public Vector getAllUsers() { Vector allUsers = new Vector(); String selectString = "select * from t_userInfo "; Connection con = this.getConnection(); try { PreparedStatement ps = con.prepareStatement(selectString); ResultSet rs = ps.executeQuery(); while (rs.next()) { int ID = rs.getInt(1); String nickName = rs.getString(2); String pwd = rs.getString(3); String sex = rs.getString(4); int age = rs.getInt(5); int departID = rs.getInt(6); String phone = rs.getString(7); String email = rs.getString(8); String name = rs.getString(9); String iconPath = rs.getString(10); String address = rs.getString(11); UserInfo userinfo = new UserInfo(ID, nickName, pwd, sex, age, departID, phone, email, name, iconPath, address); allUsers.add(userinfo); } } catch (SQLException e) { e.printStackTrace(); return null; } return allUsers; } public int addUser(UserInfo user) { String insertString = "insert into t_userinfo values(?,?,?,?,?,?,?,?,?,?)"; Connection con = this.getConnection(); try { PreparedStatement ps = con.prepareStatement(insertString); ps.setString(1, user.getNickName()); ps.setString(2, user.getPassword()); ps.setString(3, user.getSex()); ps.setInt(4, user.getAge()); ps.setInt(5, user.getDepartmentID()); ps.setString(6, user.getPhone()); ps.setString(7, user.getEmail()); ps.setString(8, user.getName()); ps.setString(9, user.getImagePath()); ps.setString(10, user.getAddress()); int count = ps.executeUpdate(); if (count != -1) { String queryUserID = "select userID from t_userinfo where nickName=? and departID=? "; PreparedStatement statement = con.prepareStatement(queryUserID); st
本文档为【基于文字水印的谈判系统设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_802987
暂无简介~
格式:doc
大小:488KB
软件:Word
页数:0
分类:工学
上传时间:2014-04-30
浏览量:11