Ⅰ java 中如何判断某个数据库表的字段中是否有主键,哪个是主键
java.sql.DatabaseMetaData类的方法
ResultSet getImportedKeys(String catalog,String schema,String table)
throws SQLException获取由给定表的外键列(表导入的主键)引用的主键列的描述。
Ⅱ java如何获得数据库表中各字段的字段名
Java获取数据库的表中各字段的字段名,代码如下:
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.PreparedStatement;
importjava.sql.ResultSetMetaData;
importjava.sql.SQLException;
publicclassTestDemo{
(){
Connectionconn=null;
try{
Class.forName("com.mysql.jdbc.Driver");
Stringurl="jdbc:mysql://数据库IP地址:3306/数据库名称";
Stringuser="数据库用户名";
Stringpass="数据库用户密码";
conn=DriverManager.getConnection(url,user,pass);
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(SQLExceptione){
e.printStackTrace();
}
returnconn;
}
publicstaticvoidmain(String[]args){
Connectionconn=getConnection();
Stringsql="select*fromAccessType";
PreparedStatementstmt;
try{
stmt=conn.prepareStatement(sql);
ResultSetrs=stmt.executeQuery(sql);
ResultSetMetaDatadata=rs.getMetaData();
for(inti=1;i<=data.getColumnCount();i++){
//获得所有列的数目及实际列数
intcolumnCount=data.getColumnCount();
//获得指定列的列名
StringcolumnName=data.getColumnName(i);
//获得指定列的列值
intcolumnType=data.getColumnType(i);
//获得指定列的数据类型名
StringcolumnTypeName=data.getColumnTypeName(i);
//所在的Catalog名字
StringcatalogName=data.getCatalogName(i);
//对应数据类型的类
StringcolumnClassName=data.getColumnClassName(i);
//在数据库中类型的最大字符个数
intcolumnDisplaySize=data.getColumnDisplaySize(i);
//默认的列的标题
StringcolumnLabel=data.getColumnLabel(i);
//获得列的模式
StringschemaName=data.getSchemaName(i);
//某列类型的精确度(类型的长度)
intprecision=data.getPrecision(i);
//小数点后的位数
intscale=data.getScale(i);
//获取某列对应的表名
StringtableName=data.getTableName(i);
//是否自动递增
booleanisAutoInctement=data.isAutoIncrement(i);
//在数据库中是否为货币型
booleanisCurrency=data.isCurrency(i);
//是否为空
intisNullable=data.isNullable(i);
//是否为只读
booleanisReadOnly=data.isReadOnly(i);
//能否出现在where中
booleanisSearchable=data.isSearchable(i);
System.out.println(columnCount);
System.out.println("获得列"+i+"的字段名称:"+columnName);
System.out.println("获得列"+i+"的类型,返回SqlType中的编号:"+columnType);
System.out.println("获得列"+i+"的数据类型名:"+columnTypeName);
System.out.println("获得列"+i+"所在的Catalog名字:"+catalogName);
System.out.println("获得列"+i+"对应数据类型的类:"+columnClassName);
System.out.println("获得列"+i+"在数据库中类型的最大字符个数:"+columnDisplaySize);
System.out.println("获得列"+i+"的默认的列的标题:"+columnLabel);
System.out.println("获得列"+i+"的模式:"+schemaName);
System.out.println("获得列"+i+"类型的精确度(类型的长度):"+precision);
System.out.println("获得列"+i+"小数点后的位数:"+scale);
System.out.println("获得列"+i+"对应的表名:"+tableName);
System.out.println("获得列"+i+"是否自动递增:"+isAutoInctement);
System.out.println("获得列"+i+"在数据库中是否为货币型:"+isCurrency);
System.out.println("获得列"+i+"是否为空:"+isNullable);
System.out.println("获得列"+i+"是否为只读:"+isReadOnly);
System.out.println("获得列"+i+"能否出现在where中:"+isSearchable);
}
}catch(SQLExceptione){
e.printStackTrace();
}
}
}
Ⅲ java语句中取得sql中的一个字段的值
......
ResultSet rs = stmt.executeQuery(sql);
String priceType = null;
if(rs.next()) {
priceType = rs.getString("value");
......
}
Ⅳ 如何在java获得从sql中查到数据的字段名
JDBC得到结果集 resultSet以后可以得到所有的字段名,字段类型,及数据。建议查看JDK中的API文档,ResultSet这个类。API已经上传。
Ⅳ Java中用什么语句来判断SQL数据库中表的某行数据是否有外键
不重要的话,你可以删了试试,有外键肯定出错。。或者从关联关系上找突破口。比如两个类学生和老师有多对一的关系。在学生类中维护关联的话,学生类中就会有一个老师对象域,可以通过判断它是否为空,来判断有没有外键。当然,我只是提供思路,可行性还是可以的。
Ⅵ java中如何用sql判断数据库表中是否存在某个字段
sqlserver有一个系统表sysobjects,其中字段xtype=’U’ 为表
Ⅶ 如何用Java查询SQL中信息 条件如下
CREATE PROCEDURE getStudentInfoByNo --存储过程,通过给定的学号返回学生信息
(@Sno INT)
AS
BEGIN
IF EXISTS(SELECT * FROM Student WHERE Sno=@Sno)
SELECT 1,* FROM Student WHERE Sno=@Sno --有结果返回一个状态1,方便在程序中判断
ELSE
SELECT 0,'查无此人' --没有结果,返回状态0,在程序中判断.
END
这是在sqlserver中写的存储过程,以下是java中调用存储过程的代码
DriverManager.registerDriver(new SQLServerDriver());
//连接
String url="jdbc:microsoft:sqlserver://localhost:1433;databasename=YourDBName";
Connection conn = DriverManager.getConnection(url,"sa","");
String sql = "{call getStudentInfoByNo (?)}";
CallableStatement cs = conn.prepareCall(sql);
//在执行之前,必须说明所有?的内容和类型
cs.setInt(1, Sno1);//设置位置1的参数值整数Sno1
ResultSet rs = cs.executeQuery();
while(rs.next())
{
System.out.println(rs.getString(1));
//在这里可以通过rs.getString(1)判断,如果是1,则继续输出rs.getString(2),rs.getString(3)等等,直到把这个学生的所有信息都输出为止,
//如果rs.getString(1)是0,则只需输出rs.getString(2).即输出"查无此人"
}
rs.close();
cs.close();
conn.close();
一般可以采用这种方法解决复杂的问题.当然如果觉得复杂.
可以采用
sql语句和java相结合的方法,
int sno=0;
//给学号赋值,通过各种方法,如表达能提交
StringBuilder sb = new StringBilder();
sb.append("select * from student ");
if(sno>0)//对获得的学好进行判断
sb.append(" where sno = ").append(sno);
PreparedStatement ps = conn.prepareStatement(sb.toString());
rs = s.executeQuery(sqlstr);
if(rs.next)
{
//查询出此学员所有的信息
}
else
{
System.out.print("查无此人");
}
Ⅷ java解析字符串(解析sql语句,得到需要查询显示的字段名)。
在Sql语句前加上SET FMTONLY ON,再执行Sql语句,该设置只将元数据返回给客户端,可以用于测试响应的格式,而不必实际执行查询.有了返回的表结构,还怕得到不到要查询的字段
例:
SET FMTONLY ON;
SELECT f_spbm,f_spmc as '名称' FROM 表1;
SET FMTONLY OFF;
Ⅸ sql语句的某个字段有时用有时不用是在Java中如何判断
数据库肯定是定死的,怎么一会又month字段,一会又没有了。应该是有的是具体值,有的为空或者null,在Imp层判断再做查询,
Ⅹ 用Java如何根据字段名判断某一字段在 sql 数据表中是第几列
加个字段sequence ,获取主键时一起取不就可以了