十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Connection conn = 链接
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了南雄免费建站欢迎大家使用!
Statement stmt = conn.createStatementI();
String sql = "CREATE TABLE PFO_ANALYSE_BRANCH ( "
+" NODE_NAME_S VARCHAR2(50 BYTE), "
+ 其他字段
+")";
stmt.execute(sql)
姑且当楼主的程序用的是JDBC连接数据库吧(不贴代码让人猜是真不好回答啊),楼主全文搜索
"DBManager.getConnection",就会找到下面这样的一句话:
DBManager.getConnection("....................");
打点的部分也可能是参数写的,反正就是找到了这么句话吧,重点就是这个打点的地方,参数的话,请看参数内容,内容大致如下:
jdbc:[某种数据库]://[IP地址]:[端口号]/[库名]?user=[账户]password=[密码]
举个mysql的例子:
jdbc:mysql://localhost:3306/test?user=rootpassword=root
这样你就你的代码是连接的什么数据库了,楼主期待代码是SQL Server数据库吧,呵呵。
如果不是,那你就决定是自己装一个,还是改造代码啦?当然你还要根据别人代码去创建数据库。
给个SQL Server的例子
//加载JDBC驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
//建立数据库连接,取得Connection对象
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
String user="sa";
String password="";
Connection conn=DriverManager.getConnection(url,user,password);
//后面就可以写操作数据库的代码了
数据库的话你可以写一个触发器,
java代码的话:spring的schdules和quartz设置定时任务
你这段程序错误太多了
1)
public class test() throws SQLException
test是类,不是方法,不要用(),不能抛出异常
改为
public class test
2)sql ="select name,password from operator;";
sql变量没有声明,改为
String sql ="select name,password from operator;";
3) main方法是静态方法,里面不能使用conn等非静态变量。
改为新定义一个方法,
然后再main中创建一个test对象,在调用该方法
4)因为除了SQLException,语句Class.forName(driver);还会抛出其它异常,所以在方法直接使用catch处理所有的异常。
修改后
import java.sql.*;
public class test
{
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String driver ="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url ="jdbc:microsoft.sqlserver://localhost:1433;DatabaseName=Restaurant";
String user ="user";
String pwd ="user";
String sql ="select name,password from operator;";
public void doTest() {
try{
Class.forName(driver);
System.out.println("加载驱动成功!");
conn = DriverManager.getConnection(url,user,pwd);
System.out.println("连接数据库成功!");
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while(rs.next())
{
System.out.println("------记录-------");
System.out.println("姓 名: "+rs.getString("name"));
System.out.println("密 码: "+rs.getString("password"));
}
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String [] args)
{
new test().doTest();
}
}
Java 实现连接sql server 20002007-12-16 13:28:00.0
第一种:通过ODBC连接数据库
JAVA语言的跨平台的工作能力(Write Once ,Run Anywhere)、优秀的图像处理能力(我相信现在没有那种语言可以超过JAVA在网络上的图形处理能力)、网络通信功能、通过JDBC数据库访问技术等等,让我们谁都不可否认JAVA语言是SUN公司对于计算机界的一个巨大的贡献。笔者可以描述这样一个场景:有一天你上网完全可以不用IE 或者NETSCAPE,上网就像是玩游戏,你可以获得游戏那么精美的图像和互动的感觉,如果你玩过UO,也许你就知道那种感觉了,但是JAVA做成的东西一定会超过UO的,因为不单单是游戏,也不是单单是浏览器,如果你愿意(要你有钱,有时间,有优秀的JAVA人才)你可以把所有的这一切用Java完全集成出来!!!我不是夸大JAVA的功能,大家可以访问一下的那个社区程序,你就能找到一种感觉了:相信我没有说什么假话 。好了,不说废话了,现在我向你介绍JAVA的数据库访问技术----JDBC数据库访问技术(你可千万不要搞成ODBC了哟!)。
JDBC技术事实上是一种能通过JAVA语言访问任何结构化数据库的应用程序接口(API)(Sun这样说的,我也不知道是不是真的),而且现在的JDBC 3.0据Sun说也能访问Execel等电子表格程序!
JDBC对于数据库的访问有四种方式,我们这里只是介绍两种:
第一种是通过ODBC做为“桥”(Bridge)对数据库访问,第二种是直接对数据库访问。
我们先来看看第一种JDBC--ODBC访问的流程:
JDBC Driver Mannager-JDBC-ODBC桥-ODBC-数据库客户机驱动库-数据库服务器-返回查询结果,在这种访问中值的我们注意的是虽然JAVA是"Write Once ,Run Anywhere",但是如果通过这种访问的话,需要客户端必须设置ODBC和有相应的数据库客户机的驱动,当你看了下面的另外一个流程的时候或许你会想:明明下一种更方面,为什么还要有这个东西的产生!呵呵,因为,未必所有的数据库服务器提供商都提供下面的JDBC驱动程序(给JDBC访问提供相应的接口),所以就有了JDBC-ODBC Bridge。
接着再让我们来看看第二种访问流程:
JDBC Driver Mannager-局部JDBC驱动-客户端数据库-数据库服务器-返回查询结果,这种访问事实上是转换JDBC调用为相应的数据库(Oracle, Sybase, Informix, DB2, 和其他的数据库数据库管理系统)的客户端API调用(这么说,不知道大家能不能懂,说简单点就好像ASP不是通过DSN对数据库访问而是通过OLEDB访问,说道这里我还是不知道大家能不能明白我的意思。哎呀,不要扔鸡蛋嘛!),这种方式的访问需要相应的数据库提供商提供相应的JDBC驱动程序,但是有一种好处,可以独立于odbc用于可以随处可Run的客户端的浏览器中的Applet程序。
我们下面将给大家一个通过JDBC-ODBC桥数据库访问的实例,但是在看下面的事例前我想问大家一次:JDK1.3装了吗?数据库驱动装了吗(我使用的是SQLserver)?你该没有使用Linux吧?虽然java支持Linux,但是老兄我可没有使用Linux哟(这同JAVA的Write Once ,Run Anywhere没有关系),由于使用了运行于Win下面的ODBC,我建议你看看这篇东西,否则你要是有了问题,出不了结果那岂不是要怪我(不过欲加之罪,何患无吃... ...),冤枉呀!
哎呀,说了这么多的废话,还是让我们来看看到底JDBC的调用吧!既然我们是通过odbc访问数据库,所以这个odbc是跑不了的,我们先来设置你的odbc:打开你的odbc数据源-选择系统dsn(Click加新的dsn-)-接下来输入选择数据库类型、输入dsn名:、选择服务器、连接数据库的方式、输入数据库的登陆用户和密码-测试连接,如果测试成功的话,那么你的dsn就建立好了,我的dsn名为Sqlserver.使用的是sqlserver7.0,以 “sa”登陆,密码为空。这些东西都是后面要用道的!
好了下面让我们来看程序代码: (该代码已经通过运行)
//###########################################################
//代码开始
//###########################################################
import java.sql.*;
//加载java数据连接包,java基本所有的数据库的调用的都在这个东西里面
public class InsertCoffees {
public static void main(String args[]) {
String url = "jdbc:odbc:sqlserver";
//取得连接的url名,注意sqlserver是dsn名
Connection con;
//实例化一个Connection对象
Statement stmt;
String query = "select * from col_link";
//选择所有的Col_link表中的数据输出
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//加载jdbc-odbc桥驱动
} catch(java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
//加载jdbc-odbc桥错误
System.err.println(e.getMessage());
//其他错误
}
try {
con = DriverManager.getConnection(url, "sa", "");
//数据库连接
stmt = con.createStatement();
//Create 一个声明
stmt.executeUpdate("CREATE TABLE col_link (sitename varchar (20) NULL ,siteurl varchar (50) NULL) ");
//执行了一个sql语句生成了一个表col_link的表
stmt.executeUpdate("insert into col_link values('ASP中华网','')");
stmt.executeUpdate("insert into col_link values('永远到底有多远','')");
//执行一个insert into语句
stmt.executeUpdate("update col_link set siteurl='' where siteurl=''");
//执行一个update语句,更新数据库
ResultSet rs = stmt.executeQuery(query);
//返回一个结果集
System.out.println("Col_link表中的数据如下(原始数据)");
//下面的语句使用了一个while循环打印出了col_link表中的所有的数据
System.out.println("站点名 "+" "+"站点地址");
System.out.println("---------------"+" "+"----------------");
while (rs.next()) {
String s = rs.getString("sitename");
String f = rs.getString("siteurl");
//取得数据库中的数据
System.out.println(s + " " + f);
/*String t = rs.getString(1);
String l = rs.getString(2);
System.out.println(t + " " + l);*/
/*jdbc提供了两种方法识别字段,一种是使用getXXX(注意这里的getXXX表示取不同类型字段的不同的方法)获得字段名,
第二种*是通过字段索引,在这里我把第二种方法注释了*/
/*你可以访问这个连接获得getxxx的用法:*/
}
stmt.close();
con.close();
//上面的语句关闭声明和连接
} catch(SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
//显示数据库连接错误或者查询错误
}
}
}
//###########################################################
//代码结束
//###########################################################
在上面这个程序中我想你展示了如何使用JDBC-ODBC连接数据库,使用SQL语句生成一个表,使用SELECT、INSERT 、UPDATE语句取的、插入和更新一个表中的数据,如何通过字段名和字段索引访问数据库中的东东!我希望你能从上面的代码真正的学习到一些东西!
发挥你的想象力,设想一下JAVA到底,比如说可以通过数据库做一个不需要GUI(图形用户界面)的聊天室,呵呵,感觉起来就像在DOS环境下打字的聊天室!哈哈!
最后需要说的是笔者的调试上面程序的环境:WIN2000 , JDK1.3,MS SQLSERVER编辑软件:EDITPLUS 2.01a(这最后的东西可不是废话,虽然早就了一些专业的JAVA开发工具,但是笔者建议JAVA初学者使用文本软件开发JAVA程序)
第二种:直接用jdbc访问数据库
(1) 该实例已经运行通过
jsp连接Sql Server7.0/2000数据库
testsqlserver.jsp如下:
%@ page contentType="text/html;charset=gb2312"%
%@ page import="java.sql.*"%
html
body
%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为你的数据库的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%
您的第一个字段内容为:%=rs.getString(1);%
您的第二个字段内容为:%=rs.getString(2);%
%}%
%out.print("数据库操作成功,恭喜你");%
%rs.close();
stmt.close();
conn.close();
%
/body
/html
(2)java访问sqlserver服务器
第一步:安装jdbc
点击SQL Server for JDBC驱动程序安装程序setup.exe(可以到微软网站下载 下载)
第二步:设置系统变量classpath
假设SQL Server for JDBC 驱动程序安装在d:\jdbc\,则classpath应该设置如下:
classpath:=.;…;d:\jdbc\lib; d:\jdbc\lib\mssqlserver.jar; d:\jdbc\lib\msutil.jar; d:\jdbc\lib\msbase.jar;
注意:设置时要在最前面的点号和分号
第三步:编辑java程序并且运行
实例1如下:
//import com.microsoft.*;
//注意:在java与sql server 连接时不需要这个包,其他书上说这个包是必需的,这个问题有待进一步讨论
import java.sql.*;
import java.net.URL;
class insert
{
public static void main(String[] args)
{
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=northwind";
String query="select * from categories";
String query1="insert categories values(10,'Hanbao','Sweet')";
String query2="insert categories values(11,'Naicha','Coffee taste')";
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con=DriverManager.getConnection(url,"sa","739555");
Statement stmt=con.createStatement();
stmt.executeUpdate(query1);
stmt.executeUpdate(query2);
stmt.close();
con.close();
}
catch(SQLException ex)
{
}
catch(java.lang.Exception ex)
{
ex.printStackTrace();
}
}
}
实例2如下:
//import com.microsoft.*;
//注意:在java与sql server 连接时不需要这个包,其他书上说这个包是必需的,这个问题有待进一步讨论
import java.sql.*;
import java.net.URL;
class java2sqlserver
{
public static void main(String[] args)
{
String url="jdbc:microsoft:sqlserver://localhost:1433;User=sa;Password=739555;DatabaseName=northwind";
String query="Select * From Categories";
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
//DriverManager.setLogStream(System.out);
Connection con=DriverManager.getConnection(url);
checkForWarning(con.getWarnings());
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(query);
dispResultSet(rs);
rs.close();
stmt.close();
con.close();
}
catch(SQLException ex)
{
System.out.println(ex.toString()+"----SQLException caught----");
while(ex!=null)
{
System.out.print("SQLState:"+ex.getSQLState());
System.out.print("Message:"+ex.getMessage());
System.out.print("Vendor:"+ex.getErrorCode());
ex=ex.getNextException();
System.out.println("");
}
}
catch(java.lang.Exception ex)
{
ex.printStackTrace();
}
}
private static boolean checkForWarning(SQLWarning warn)
{
boolean rc=false;
if(warn!=null)
{
System.out.println("----Warning----");
rc=true;
while(warn!=null)
{
System.out.print("SQLState:"+warn.getSQLState());
System.out.print("Message:"+warn.getMessage());
System.out.print("Vendor:"+warn.getErrorCode());
System.out.println("");
warn=warn.getNextWarning();
}
}
return rc;
}
private static void dispResultSet(ResultSet rs) throws SQLException
{
int i;
ResultSetMetaData rsmd=rs.getMetaData();
int numCols=rsmd.getColumnCount();
for(i=1;i=numCols;i++)
{
if(i1) System.out.print(", ");
System.out.print(rsmd.getColumnLabel(i));
}
System.out.println("");
boolean more=rs.next();
while(more)
{
for(i=1;inumCols;i++)
{
if(i1) System.out.print(", ");
System.out.println(rs.getString(i));
}
System.out.println("");
more=rs.next();
}
}
//System.out.println("Hello World!");
}
以上两个实例笔者已经通过运行!
import java.sql.*;
/*-
* Copyright(C) by jackliu
* 这是一个免费的代码,如果进行修改,请保留以上信息.
* 这是一个用标准JDBC连接Oracle数据库的包
* 编制人: Jackliu
* 开始日期: 2001.04.06
* 结束日期: 2001.04.06
* 版本: 1.0*/
public class Ora8iConnect
{
public Ora8iConnect(String db,String id,String pwd)
{ dbNAME=db;
userID=id;
userPWD=pwd;
beginConnect(); //连接数据库
}
/*-
*返回一个Connection对象
*/
public Connection getConnection(){return conn;}
/*-
*连接数据库,成功后返回1否则返回0
*/
public int beginConnect()
{ try
{ //加载一个Oracle驱动
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
//使用OCI8连接到数据库
conn=DriverManager.getConnection("jdbc:oracle:oci8:@"+dbNAME,userID,userPWD);
return 1;
}
catch(SQLException e) //捕捉SQL违例
{ System.out.println("Ora8iConnect在连接oracle8数据库时捕获");
while (e!=null)
{ System.out.println("SQLState:"+e.getSQLState());
System.out.println("Message :"+e.getMessage());
System.out.println("Vendor :"+e.getErrorCode());
e=e.getNextException();
System.out.println(" ");
}
conn=null;
return 0;
}
}
private Connection conn; //连接对象
private String dbNAME; //实例
private String userID; //用户名
private String userPWD; //口令
}