能缩进一下不?
你while括号应该把if括起来才对!
package text;
import javasql;
public class Fds {
public static void main(String[] args) throws SQLException {
Connection con = null;
Statement st = null;
ResultSet rs = null;
String sql = "select names from systypes";
try {
ClassforName("sunjdbcodbcJdbcOdbcDriver");
con = DriverManagergetConnection("jdbc:odbc:master", "sa",
"4217715");
stexecute(sql);
String t = null;
while (rsnext()) {
t = rsgetString("name");
if (t != null) {
Systemoutprintln("name:" + t);
}
if (t == null) {
Systemoutprintln("no");
}
}
} catch (Exception e) {
} finally {
rsclose();
stclose();
conclose();
}
}
}
下面给出两段典型的数据库连接的例子。在此之前,请在程序头部using处添加using SystemDataSqlClient或SystemDataOleDb,以保证数据库访问时用到的命名空间能引用
SQL Server数据访问
string strConn="Integrated Security=SSPI;Initial Catalog=MyDatabase;Data Source=YY-POWERPC ";
SqlConnection myConnection = new SqlConnection (strConn);
myConnectionOpen();
OleDb数据访问
String strConn="Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=SSPI";
OleDbConnection myConnection=new OleDbConnection (strConn);
myConnectionOpen();
上述步骤执行后,如果没有异常抛出,便可成功完成与数据库的连接。在完成了与数据库的连接后,接下来就是建立一个DataAdapter对象,来完成可访问数据库的工作。DataAdapter的工作是后面DataSet的基础,其内容就是建立一个DataSet与数据库的中间层,来协调访问。由于DataAdapter与DataSet的关系十分紧密,我就结合在一起介绍了。DataAdapter也分为SqlDataAdapter和 OleDbDataAdatper两种。下面给出一段典型代码(OleDbDataAdapter的情况可类推):
SqlDataAdapter myDataAdapter = new SqlDataAdapter ();
DataSet myDataSet = new DataSet ();
string strCom = "SELECT FROM 会员信息表";
myDataAdapterSelectCommand = new SqlCommand (strCom,myConnection);
SqlCommandBuilder myCB = new SqlCommandBuilder (myDataAdapter);
myDataAdapterFill (myDataSet,"会员信息表");
这段代码用到了SqlDataAdapter、DataSet、SqlCommand、SqlCommandBuilder四个对象。从上图中可以看出,SqlDataAdapter的作用就是负责与数据库的通讯访问,同时与DataSet相连,它的内部有四个很重要的Command对象(同样分为SqlCommand和OleDbCommand),都是访问数据库必用的,分别为SelectCommand、InsertCommand、 UpdateCommand、DeleteCommand对象。这些Command对象便是专门用来完成对数据库的查询、插入、更新、删除 *** 作,它们就像四个大臣,在DataAdapter的控制下分别主管各自的事情。其中SelectCommand是它们四个中的老大,由它可以自动的构造生成另外的三个。构造生成的过程就是应用CommandBuilder。在这之前,我们只需要指定DataAdapter中的SelectCommand对象,就可以了。
在设置好了SQL Select语句后,就可以开始填充相应的数据集了。方法是应用DataAdapter的Fill方法,参数为DataSet及其中的某个 DataTable。这里要着重讲一讲DataSet对象。如果你用过ADO中的Recordset对象,你可能会感觉到DataSet和 Recordset的差别。Recordset一般只能应用于单表,即一个Recordset对应于一张表。而DataSet中有一个 DataTableCollection,即一个DataTable集合,可以包含多个DataTable对象。DataTable对象看上去就更加像一张表了,其中有DataRowCollection、DataColumnCollection、ConstraintCollection。它们分别代表DataRow(数据行)、DataColumn(数据列)、Constraint(约束关系)的对象集合。可能说这么多,你已经有点儿迷糊了,先看一句代码吧。
myDataSetTables["MyTable"]Rows[3]["MyName"] = "杨扬";
怎么样?是不是一下子就明白了许多。这是一句多么完美的OO思想表达出的语句啊!这句就是将DataSet下的一个名为MyTable的"虚表 "中的第4行的MyName字段的内容改为"杨扬"。为什么叫"虚表"呢?这是因为ADONET的一个特点就是脱机连接数据库。这样可以减少网络通讯的压力,提高效率。你可能会问DataColumn在哪呢?Rows[3]就表示了第4行记录,换句话说Rows[3]就是一个DataRow对象,一加上 ["MyName"]就自动定位到了MyName字段的内容。ADONET规定,访问表中内容必须是先行后列的原则,Column["MyName"] [3]是不允许的。当然,DataColumn也是什么重要的,比如想查看某列的列头(Field),可以用Column[1]ColumnName更改。
看你数据库的参数配置是否正确(请确认参数没错)
看你的AdminUser类,里面有个tableName的方法:返回表名的!!!你看看那个方法返回的表名是不是你数据库的表名(一致才行!!!)
定义一个全局的互斥事件CMunex cMunex;
当你在一个线程里要连接数据库的时候可以这样:cMunexlock();
处理完以后可以这样 :cMunexunlock();
这样就OK了。应该可以解决问题了
以上就是关于JAVA数据库连接小程序错误全部的内容,包括:JAVA数据库连接小程序错误、高分求助c#连数据库小程序、yii框架怎么写接口给微信小程序连接数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)