深入了解jdbc,认识以Properties文件获取连接数据库信息,下面是db.properties文件的信息:
jdbc.mysql.driver=com.mysql.jdbc.Driver
jdbc.mysql.url=jdbc:mysql://localhost:3306/stu
jdbc.mysql.user=root
jdbc.mysql.password=1234
以下是java的代码:
package com.lzl.sql;
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class PropertiesJDBCTest {
public static void main(String[] args) {
// TODO Auto-generated method
stub
Connection con=new
PropertiesJDBCTest().getPropertiesCon();
Statement st=null;
ResultSet rs=null;
try {
st =
con.createStatement();
rs=st.executeQuery("select *
from student");
//可用于获取关于 ResultSet
对象中列的类型和属性信息的对象。
ResultSetMetaData
rst=rs.getMetaData();
// 返回此 ResultSet 对象中的列数。
int
index=rst.getColumnCount();
//rst.getCatalogName(i)获取指定列的表目录名称即数据库名
//rst.getColumnName(i)获取指定列标题的名称
for(int
i=1;i<=index;i++){
//System.out.println("1111"+rst.getCatalogName(i)+"22222"+rst.getColumnName(i));
System.out.print(rst.getColumnName(i)+"\t");
}
System.out.println();
//获取各列的值
while(rs.next()){
System.out.print(rs.getInt(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t"+rs.getInt(4));
System.out.println();
}
} catch (SQLException e) {
// TODO Auto-generated catch
block
e.printStackTrace();
}
}
private Connection getPropertiesCon() {
// TODO Auto-generated method
stub
Connection con=null;
File f=new
File("src/doc/db.properties");
System.out.println("f的绝对路径是:"+f.getAbsolutePath());
try {
FileInputStream
in=new FileInputStream(f);
Properties
p=new Properties();
//
从输入流中读取属性列表(键和元素对)。
p.load(in);
in.close();
String
driver_name=p.getProperty("jdbc.mysql.driver");
String
url=p.getProperty("jdbc.mysql.url");
String
user=p.getProperty("jdbc.mysql.user");
String
password=p.getProperty("jdbc.mysql.password");
Class.forName(driver_name);
con=DriverManager.getConnection(url,user,password);
System.out.println("数据库连接成功");
} catch (FileNotFoundException
e) {
// TODO
Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO
Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException
e) {
// TODO
Auto-generated catch block
e.printStackTrace();
} catch (SQLException e)
{
// TODO
Auto-generated catch block
e.printStackTrace();
}
return con;
}
}