第二种,JavaBean的形式。
package conn; //导入包
import java.sql.*; //导入数据库操作的类
public class DBConnAccess //构造方法,初始化
{
private
Connection conn; //连接对象
private
Statement stmt; //语句对象
private
ResultSet rs; //结果集对象
private
String accessdriver; //保存Access驱动程序字符串
private
String accessURL; //保存Access连接字符串
public
DBConnAccess()
{
//Access驱动程序
accessdriver = "sun.jdbc.odbc.JdbcOdbcDriver";
//连接字符串
accessURL = "jdbc:odbc:Driver={Microsoft Access Driver
(*.mdb)};DBQ=";
conn
= null;
}
//该方法从参数得到数据库路径,并加到连接字符串后面,然后再建立连接
public
Connection getConnToAccess(String dbpath){
try{
accessURL=accessURL+dbpath;
Class.forName(accessdriver);
conn = DriverManager.getConnection(accessURL);
}catch(Exception e){
System.out.println("操作数据库出错,请仔细检查");
System.err.println(e.getMessage());
}
return conn;
}
//关闭数据库连接
public
void close()
{
try{
//rs.close();
//stmt.close();
conn.close();
}catch(SQLException sqlexception){
sqlexception.printStackTrace();
}
}
}
调用方法如下: 程序代码
<meta http-equiv="Content-Type"
content="text/html; charset=gb2312">
<%@ page contentType="text/html;
charset=gb2312" language="java"
import="java.sql.*" %>
<jsp:useBean id="DBConn" scope="page"
class="conn.DBConnAccess"/>
<% //连接Access 数据库
String
dbpath="data/test.mdb"; //数据库的路径,请自行修改
Connection conn=DBConn.getConnToAccess(application.getRealPath(dbpath));
Statement
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String
sql="select * from username order by id";
//String
sql1="insert into username (uid,pwd) values('wsp','wsp')";
//stmt.executeUpdate(sql1);
ResultSet
rs=stmt.executeQuery(sql);
while(rs.next()){
out.print("用户名:");
out.print(rs.getString("uid")+" 密码:");
out.println(rs.getString("pwd")+"<br>");
}
DBConn.close();
%>
第一种,jsp页面连接
<%@ page contentType="text/html;
charset=gb2312" language="java"
import="java.sql.*"%>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312">
<%
//
******* 数据库连接代码 开始 *****
//异常处理语句
try
{ //以下几项请自行修改
String spath = "data/test.mdb";//Access 数据库路径
String dbpath = application.getRealPath(spath);//转化成物理路径
String dbname = "";
//Acvess 数据库用户名,没有则为空
String user = "";
//Access 数据库密码,没有则为空
//数据库连接字符串
String url ="jdbc:odbc:Driver={Microsoft Access Driver
(*.mdb)};DBQ="+dbpath;
//加载驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//建立连接
Connection conn= DriverManager.getConnection(url);
//创建语句对象
Statement
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
//
**** 数据库连接代码 结束
******
//********* 测试数据代码开始 ******
//请在数据库中建立username表,表中建立两个字段uid和pwd,类型为文本型
String sql = "select * from username";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{ out.print("用户名:" + rs.getString("uid"));
out.print(" 密码:" + rs.getString("pwd") + "<br>");
}
out.print("<br>恭喜你!数据库连接成功!");
rs.close(); //关闭记录集对象
stmt.close(); //关闭语句对象
conn.close(); //关闭连接对象
}catch(Exception e){
out.print("数据库连接错误!,错误信息如下:<br>");
out.print(e.getMessage());
} //******* 测试数据代码结束 *******
%>
jsp连接SQLServer数据库的代码
要正确的使用这段代码,你需要首先在SQLServer数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数据。
欢迎各位提出改进的意见。
以下用两种方式来实现jsp连接SQLServer数据库。
第一种JSP形式。 程序代码
<meta http-equiv="Content-Type"
content="text/html; charset=gb2312">
<%@ page contentType="text/html;
charset=gb2312" language="java"
import="java.sql.*"%>
<%
/*********************
********* JDBC_ODBC连接 SQL Server 数据库,不需要设置数据源
********* Date: 2005.8
********* Email:fanwsp@126.com
********* Author: DreamTime [梦想年华]
********* 有任何欢迎提出指正
****************************/
//请根据需要,选择一种方法,去掉相应的方法的注释,并注释其它没有使用的
//以下几项请自行修改
String
server="localhost";
//SQL Server 服务器的地址
String
dbname="test"; //SQL
Server 数据库的名字
String
user="sa"; //SQL
Server 数据库的登录用户名
String
pass="chfanwsp";
//SQL Server 数据库的登录密码
String
port="1433";
//SQL Server 服务器的端口号,默认为1433
/*****
方法1: *******
* 用net.sourceforge.jtds.jdbc.Driver
* (http://jtds.sourceforge.net/) *
* 在Win2003Server上安装SQLSERVER2000,必须安装补丁sp3 *
*************************/
//
*******数据库连接代码 开始
*******
//数据库连接字符串
String
url="jdbc:jtds:sqlserver://"+server+":"+port+"/"+dbname+";USER="+user+";PASSWORD="+pass+"";
//加载驱动程序
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
//建立连接
Connection conn= DriverManager.getConnection(url);
//创建语句对象
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
//
**** 数据库连接代码 结束
*********
/********** 方法2:
*******
************* 用微软提供的JDBC驱动程序
*******
*******************************************
*在Win2003 Server上安装SQLSERVER2000,必须安装补丁sp3
***************************/
//
****************** 数据库连接代码 开始
******************
/*
String
url="jdbc:microsoft:sqlserver://"+server+":"+port+";DatabaseName="+dbname+";
USER="+user+";PASSWORD="+pass+"";
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Connection conn= DriverManager.getConnection(url);
Statement
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
*/
//
**** 数据库连接代码 结束
*********
/********** 方法3: ****************
************* 用JDBC-ODBC桥驱动程序 *********
***********************************
* 在Win2003 Server上安装SQLSERVER2000,可能需要安装补丁sp3*
***************************/
//
********* 数据库连接代码 开始 ********
/*
String url="jdbc:odbc:Driver={SQL
Server};server="+server+";uid="+user+";pwd="+pass+";database="+dbname+"";
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Connection conn= DriverManager.getConnection(url);
Statement
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
*/
//
**** 数据库连接代码 结束
*********
String
sql="select * from username";
ResultSet
rs=stmt.executeQuery(sql);
//rs.first();
while(rs.next()){
out.print("用户名:");
out.print(rs.getString("uid")+" 密码:");
out.println(rs.getString("pwd")+"<br>");
}
rs.close();
stmt.close();
conn.close();
%>
第二种方式,用JavaBean来实现。请看代码:
DBConnSql.java
编译以后的Class文件应该放在 WEB-INF\classes\conn目录下。
程序代码
/*
******* java连接SQL Server数据库代码 *************
*******
使用Jdbc连接 *************
*/
package conn; //导入包
import java.sql.*; //导入数据库操作的类
public class DBConnSql //构造方法,初始化
{
private
Connection conn; //连接对象
private
Statement stmt; //语句对象
private
ResultSet rs; //结果集对象
private
String sqldriver; //SQL Server驱动程序字符串
private
String sqlURL; //SQL
Server连接字符串
/********** 方法1: *********
* 用net.sourceforge.jtds.jdbc.Driver ************
* (http://jtds.sourceforge.net/)
* 在Win2003Server上安装SQLSERVER2000,必须安装补丁sp3
*
* 该方法取得连接所需各种参数,组成连接字符串,然后再建立连接
* server;dbname,user,pass,port
* 分别表示SQL Server 服务器的地址,数据库,用户名,密码,端口
*****************************/
public Connection getConnToSql1(String server,String dbname,String
user,String pass,String port){
//SQL Server驱动程序,用net.sourceforge.jtds.jdbc.Driver
sqldriver = "net.sourceforge.jtds.jdbc.Driver";
sqlURL = "jdbc:jtds:sqlserver://"; //连接字符串一部分
try{
//完整的连接字符串
sqlURL
=sqlURL+server+":"+port+"/"+dbname+";USER="+user+";PASSWORD="+pass+"";
Class.forName(sqldriver);
conn = DriverManager.getConnection(sqlURL);
}catch(Exception e){
System.out.println("操作数据库出错,请仔细检查");
System.err.println(e.getMessage());
}
return conn;
}
/********** 方法2: ***************
******* 用微软提供的JDBC驱动程序 **************
* 在Win2003 Server上安装SQLSERVER2000,必须安装补丁sp3
*
* 该方法取得连接所需各种参数,组成连接字符串,然后再建立连接
*
server;dbname,user,pass,port
* 分别表示SQL Server 服务器的地址,数据库,用户名,密码,端口
********************************/
public Connection getConnToSql2(String server,String dbname,String
user,String pass,String port){
//SQL Server驱动程序,用微软提供的JDBC驱动程序
sqldriver =
"com.microsoft.jdbc.sqlserver.SQLServerDriver";
sqlURL = "jdbc:microsoft:sqlserver://"; //连接字符串一部分
try{
//完整的连接字符串
sqlURL
=sqlURL+server+":"+port+";DatabaseName="+dbname+";USER="+user+";PASSWORD="+pass+"";
Class.forName(sqldriver);
conn = DriverManager.getConnection(sqlURL);
}catch(Exception e){
System.out.println("操作数据库出错,请仔细检查");
System.err.println(e.getMessage());
}
return conn;
}
/********** 方法3: **************
************* 用JDBC-ODBC桥驱动程序 **********
* 在Win2003 Server上安装SQLSERVER2000,可能需要安装补丁sp3
*
* 该方法取得连接所需各种参数,组成连接字符串,然后再建立连接
* server;dbname,user,pass,port
* 分别表示SQL Server 服务器的地址,数据库,用户名,密码,端口
**********************************************/
public Connection getConnToSql3(String server,String dbname,String
user,String pass,String port){
//SQL
Server驱动程序,用微软提供的JDBC驱动程序
sqldriver = "sun.jdbc.odbc.JdbcOdbcDriver";
sqlURL = "jdbc:odbc:Driver={SQL Server};"; //连接字符串一部分
try{
//完整的连接字符串
sqlURL
=sqlURL+"server="+server+";uid="+user+";pwd="+pass+";database="+dbname+"";
Class.forName(sqldriver);
conn = DriverManager.getConnection(sqlURL);
}catch(Exception e){
System.out.println("操作数据库出错,请仔细检查");
System.err.println(e.getMessage());
}
return conn;
}
//关闭数据库连接
public
void close()
{
try{
//rs.close();
//stmt.close();
conn.close();
}catch(SQLException sqlexception){
sqlexception.printStackTrace();
}
}
}
这个文件只是实现了数据库的连接,下面我们再写一个测试文件。
就是用sql语句从数据库里查询出记录,以验证我们数据库的连接是否成功。
connsql.jsp 文件源代码如下: 程序代码
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312">
<%@ page contentType="text/html;
charset=gb2312" language="java"
import="java.sql.*" %>
<jsp:useBean id="DBConn"
scope="page" class="conn.DBConnSql"/>
<%
/***** 说明:本数据库连接一共提供了三种方法:
一、用net.sourceforge.jtds.jdbc.Driver,请调用getConnToSql1方法。
二、用微软提供的JDBC驱动程序,请调用getConnToSql2方法。
三、用JDBC-ODBC桥驱动程序连接,请调用getConnToSql3方法。
本例使用的是第一种方法,调用getConnToSql1方法。请根据自己的实际情况进行修改
如果是第二种方法请把 Connection conn=DBConn.getConnToSql1(server,dbname,user,pass);
里面语句改为:
Connection conn=DBConn.getConnToSql2(server,dbname,user,pass);
其它类此。
*****************************************************/
//连接 SQL Server 数据库所需各种参数,请自行修改
String
server="localhost";
//SQL Server 服务器的地址
String
dbname="test"; //SQL
Server 数据库的名字
String
user="sa"; //SQL
Server 数据库的登录用户名
String
pass="chfanwsp";
//SQL Server 数据库的登录密码
String
port ="1433"; //SQL
Server 服务器的端口号,默认为1433
Connection
conn=DBConn.getConnToSql3(server,dbname,user,pass,port);
Statement
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String
sql="select * from username order by id";
String
sql1="insert into username (uid,pwd) values('wsp','wsp')";
//stmt.executeUpdate(sql1);
ResultSet
rs=stmt.executeQuery(sql);
while(rs.next()){
out.print("用户名:");
out.print(rs.getString("uid")+" 密码:");
out.println(rs.getString("pwd")+"<br>");
}
rs.close();
stmt.close();
conn.close();
//DBConn.close();
Java实现文件操作:
一个用java实现对文件的操作。完成了如创建目录及文件,复制目录及文件以及删除等功能。
主要用到了java的File类,FileInputStream类,FileOutputStream,FileWriter,PrintWriter,InputStream,OutputStream ,BufferedReader和FileReader等相关类。
程序在某些方的实现可能存在一些问题,欢迎各位提出指正。
程序代码
package file;
import java.io.*;
public class FileClass {
//private
String sFileName;
//private
String sFolderName;
String
sPath;
String
sFilePath;
String
sContent;
/********************
* 新建目录
*******************/
public boolean newFolder(String s)
{
sPath = s;
sPath = sPath.toString();//中文转换
//创建一个File(文件)对象
File myFilePath = new File(sPath);
if(!myFilePath.exists())
{
try
{
myFilePath.mkdirs();
return true;
}catch(Exception e)
{
e.printStackTrace();
return false;
}
}
else return false;
}
/********************
* 新建文件
*******************/
public boolean newFile(String s1,String s2)
{
sFilePath = s1;
sContent = s2;
sFilePath = sFilePath.toString();
File myFilePath = new File(sFilePath);
if(!myFilePath.exists())
{
try
{
myFilePath.createNewFile();
FileWriter resultFile=new FileWriter(myFilePath);
PrintWriter myFile=new PrintWriter(resultFile);
String sContent = s2.toString();
myFile.println(sContent);
myFile.close();
resultFile.close();
return true;
}catch(Exception e)
{
e.printStackTrace();
return false;
}
}
else return false;
}
/********************
* 删除文件
*******************/
public boolean delFile(String s)
{
sFilePath = s;
sFilePath = sFilePath.toString();
File
dFile = new File(sFilePath);
if(dFile.exists())
{
try
{
dFile.delete();
return true;
}catch(Exception e)
{
e.printStackTrace();
return false;
}
}
else
{
System.out.print("文件:" + s + "不存在!");
return false;
}
}
/********************
* 复制文件
*******************/
public boolean copyFile(String s1,String s2)
{
int bytesum=0;
int byteread=0;
//file:读到流中
try
{
InputStream inStream=new FileInputStream(s1);
FileOutputStream fs=new FileOutputStream(s2);
byte[] buffer =new byte[1444];
while ((byteread=inStream.read(buffer))!=-1)
{
System.out.println("--
"+byteread+" --");
bytesum+=byteread;
System.out.println(bytesum);
fs.write(buffer,0,byteread);
}
inStream.close();
fs.close();
return true;
}catch(Exception e)
{
return false;
}
}
/********************
* 复制文件夹
*******************/
public boolean copyFolder(String s1,String s2)
{
try{
(new File(s2)).mkdirs();
File[] file=(new File(s1)).listFiles();
for(int i=0;i<file.length;i++)
{
if(file[i].isFile()){
file[i].toString();
FileInputStream input=new
FileInputStream(file[i]);
FileOutputStream output=new
FileOutputStream(s2+"/"+(file[i].getName()).toString());
byte[] b=new byte[1024*5];
int len;
while((len=input.read(b))!=-1){
output.write(b,0,len);
}
output.flush();
output.close();
input.close();
}
}
return true;
}catch(IOException e){
e.printStackTrace();
return false;
}
}
/********************
* 得到文本文件的内容
*******************/
public String getFile(String s1)
{
try{
StringBuffer sb = new StringBuffer();
BufferedReader in = new BufferedReader(new FileReader(s1));
while(in.readLine()!=null){
sb.append(in.readLine()+"\n\r");
}
return sb.toString();
}catch(IOException e){
e.printStackTrace();
return null;
}
}
/**
* @param
args
*/
public
static void main(String[] args) {
//
TODO 自动生成方法存根
String s1="";
String s2="";
FileClass file1 = new FileClass();
//目录创建测试
s2="F:/Test/Test1";
if
(file1.newFolder(s2))
System.out.println("创建目录 " + s2 + " 成功!");
else
System.out.println("创建目录 " + s2 + " 失败!!");
//文件创建测试
s1="F:/Test/Test1/Test.txt";
s2="这是一个测试文件!";
file1.delFile(s1);
if
(file1.newFile(s1,s2))
System.out.println("创建文件 " + s1 + " 成功!");
else
System.out.println("创建文件 " + s1 + " 失败!!");
System.out.print("\n"+s2);
//文件删除测试
s1="F:/Test/Test1/Test.txt";
if
(file1.delFile(s1))
System.out.println("删除文件 " + s1 + " 成功!");
else
System.out.println("删除文件 " + s1 + " 失败!!");
//复制文件测试
s1="F:/Test/Test1/Test.txt";
s2="F:/Test/Test1/Test1.txt";
if
(file1.copyFile(s1,s2))
System.out.print("把文件 "+s1+"成功复制到 "+s2);
else
System.out.print("复制文件失败!");
//复制目录测试
s1="F:/Test/Test1";
s2="F:/Test/Test2";
if
(file1.copyFolder(s1,s2))
System.out.print("把文件夹 "+s1+" 成功复制到文件夹 "+s2);
else
System.out.print("复制文件夹失败!");
//得到文件内容测试
System.out.print(file1.getFile("F:/Test/Test1/Test1.txt"));
}
}
没有所谓的命运,只有不同的选择!