ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:18.22KB ,
资源ID:20196630      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20196630.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(用Java实现数据库应用系统文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

用Java实现数据库应用系统文档格式.docx

1、 /加载驱动程序 /DriverManager.registerDriver(driver);this.connection = DriverManager.getConnection(this.url, this.userName, this.password);catch (SQLException e) throw e;return this.connection; /返回新建立的连接 public String getUserName() return userName;public void setUserName(String userName) this.userName = u

2、serName;public String getPassword() return password;public void setPassword(String password) this.password = password;public String getDriverName() return driverName;public void setDriverName(String driverName) this.driverName = driverName;public String getUrl() return url;public void setUrl(String

3、url) this.url = url;public java.sql.Connection getConnection() if (connection != null) if (connection.isClosed() connection = null;getNewConnection();catch (SQLException ex) if (connection = null) /没有设置连接则创建一个连接 return connection;public Connection getConnection(String userName, String password) thro

4、ws SQLException this.setUserName(userName);this.setPassword(password);return getConnection();public PrintWriter getLogWriter() return null;public void setLogWriter(PrintWriter printWriter) public void setLoginTimeout(int int0) public int getLoginTimeout() return 0;实现连接SQLServer的连接工厂,这里因为我们的项目使用SQLSe

5、rver2000所以只实现了SqlServerConnectionFactory。public final class SqlServerConnectionFactory extends ConnectionFactory private final String dbDriver =com.microsoft.jdbc.sqlserver.SQLServerDriver;private String host;/主机 private int port;/端口 private String databaseName;/Sql数据库名称 public SqlServerConnectionFa

6、ctory() super.setDriverName(dbDriver);* * param host 数据库所在的主机名:如localhost* param port SQL服务器运行的端口号,如果使用缺省值 1433,传入一个负数即可 * param databaseName 数据库名称 * param userName 用户名 * param password 口令 public SqlServerConnectionFactory(String host, int port, String databaseName, String userName, String password)

7、 this.setHost(host);this.setPort(port);this.setDatabaseName(databaseName);init();private void init() super.setUrl(jdbc:microsoft:sqlserver:/ + host.trim() + : + new Integer(port).toString() + DatabaseName=databaseName.trim();/super.setUrl(/localhost:1433;DatabaseName=demo);public void setHost(String

8、 host) /处理主机名称 if ( (host = null) | (host.equals() | (host.equals(.) | (host.equals(local) host = int index = host.indexOf(, 0);if (index = 0) host = host.substring(2); /去掉前面的index = host.indexOf(if (index = 0) throw new Exception(SQL Server主机名参数错误!catch (Exception ex) this.host = host;public void s

9、etPort(int port) * 缺省端口1433 if (port 0) port = 1433;this.port = port;public void setDatabaseName(String databaseName) this.databaseName = databaseName;使用sun.jdbc.odbc.JdbcOdbcDriver连接数据库的连接工厂 public class JdbcOdbcConnectionFactory extends ConnectionFactory private final static String driveName = pri

10、vate String odbcName;public JdbcOdbcConnectionFactory() super.setDriverName(driveName);*使用指定的Odbc数据源连接数据库服务器 * param odbcName public JdbcOdbcConnectionFactory(String odbcName) setOdbcName(odbcName);public void setOdbcName(String odbcName) this.odbcName = odbcName;this.setUrl(odbc: + odbcName);数据基本操作

11、类,使用连接工厂连接数据库。import java.sql.PreparedStatement;public abstract class DatabaseObject protected Connection connection = null;protected ResultSet resultSet = null;protected ResultSetMetaData resultSetMetaData = null;private ConnectionFactory connectionFactory = null;private java.sql.Statement statemen

12、t=null;private javax.sql.DataSource dataSource;/=new Statement();public DatabaseObject() dataSource=null;connection=null;public DatabaseObject(ConnectionFactory connectionFactory) this.setConnectionFactory(connectionFactory);this.dataSource=connectionFactory;/ConnectionFactory实现了DataSource接口 * 执行查询

13、* param sql 要执行的Sql语句 * return返回查询的结果集 ,查询失败返回null public ResultSet getResultSet(String sql) this.resultSet = statement.executeQuery(sql); /保留内部指针 e.printStackTrace();this.resultSet = null;return this.resultSet;* 获取外部指定ResltSet的ResultSetMetaData数据 * param resultSet 要获取的ResultSet * return 失败返回null pu

14、blic ResultSetMetaData getResultSetMetaData(ResultSet resultSet) ResultSetMetaData resultSetMetaData = null;resultSetMetaData = resultSet.getMetaData();resultSetMetaData = null;return resultSetMetaData;* 获取最近一次设置或者返回的ResultSet的ResultMetaData数据, * 比方说调用了:getResultSet(sql)方法,然后调用getResultSetMetaData方法

15、 * 可以获得相应的ResultSetMetaData数据。public ResultSetMetaData getResultSetMetaData() return this.getResultSetMetaData(this.resultSet);* 执行存储过程 * param spName 存储过程名称 public ResultSet Execute(String spName) /对此数据库执行一个 SQL 查询 ResultSet resultSet = null;/ PreparedStatement stmt = (PreparedStatement) connection

16、.createStatement();resultSet = statement.executeQuery(spName);catch (Exception e) System.out.println(execute error + e.getMessage();return resultSet;* 设置数据库连接工厂,对此类的所有操作之前,必须调用该方法, * 设置数据库连接工厂。* param connectionFactory 数据库连接工厂ConnectionFactory 类对象以及 * 派生类对象。public void setConnectionFactory(Connectio

17、nFactory connectionFactory) this.connectionFactory = connectionFactory;connection = connectionFactory.getConnection();statement = connection.createStatement();System.err.println(ex);public Connection getConnection() public java.sql.Statement getStatement() return statement;public javax.sql.DataSourc

18、e getDataSource() return dataSource;具体项目的数据库访问基类 public class DbObject extends DatabaseObject / private final static String driveName = sun.jdbc.obdc.JdbcOdbcDriverpublic DbObject() super(new SqlServerConnectionFactory(, 1433, TheSchool, sa,);public DbObject(ConnectionFactory connectionFactory) supe

19、r(connectionFactory);在项目中的数据库层中的数据库访问类都从DatabaseObject类派生,这样只需要在一个地方设置数据连接,其他地方都不需要涉及数据库访问的具体连接代码。如:User类专门负责Users组的权限控制等,只需要简单的代码就可以连接并访问数据库了。这里具体实 现与此文章无关,只举一两个模块做例子。public class User extends DbObject public User() /子类也可以覆盖基类的访问方式,在单机调式时有用。/ super(new SqlServerConnectionFactory(super();/调用基类的数据库访问

20、代码。/* 在做信息系统时为了提高客维护性,我们一般使用存储过程返回和修改数据,在数据库层代码不使用 Select语句直接检索数据,做到数据库层代码的最大的灵活性和可维护性。一旦发现需要修改数据库中的 代码,只需要修改村年初过程即可以。下面介绍Java使用SqlServer StoreProcedure的方法。存储过程的参数使用“?”代替,下面的代码有一定的代表性,存储过程有输入参数,输出参数。存储过程的基本功能为:检测userID和encPassword是否和数据库存储的一致,返回UserID,如果不一 致返回-1。/测试数据库中存储的已经加密的密码和用户传入的加密的密码是否一致。publi

21、c boolean testPassword(int userID, byte encPassword) Connection con = this.getConnection();CallableStatement cs = null;cs = con.prepareCall(?=call sp_Accounts_TestPassword(?,?)cs.setInt(2, userID);cs.setBytes(3, encPassword);cs.registerOutParameter(1, Types.INTEGER); /UserID cs.execute();if (cs.getInt(1) = 1) /密码合格 return true;else return false;以上只是我在学习和工作中的一点体会,写出来的目的使为了和大家交流,错误之处希望大家提出宝贵的意见,以便把该模块的功能做得更完善一点。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1