public class MyJDBC{
//定义mysql驱动类
final static String driverClass="com.mysql.jdbc.Driver";
//定义数据库的访问地址(在本机上的数据库,名为test)
final static String path="jdbc:mysql://localhost:3306/test"
//定义数据库访问用户名和密码
final static String userName="root";
final static String passWord=""; //由于我的数据库没有密码,所以给空字符串,根据自己的数据库密码定义
//创建链接对象
static Connection conn=null;
//创建预处理对象(有三个预处理对象,一般使用动态)
static PreparedStatement ps=null;
//使用静态代码块事在加载这个类的时候就加载里面的数据,保证之加载一次
static {
try{
Class.forName(driverClass); //加载驱动
conn=DriverManager.getConnection(path,userName,passWord);
}catch(ClassNotFoundException e){
System.out.println("驱动类加载失败......");
}catch(SQLException e){
System.out.println("数据库连接失败......");
}
}
//查询方法(sql:查询语句;obj:查询语句之中的"?"替换数据)
// sql="select id,class_id,name,scor from tset where class_id=? and name=?" ;obj={"一班","张三"};
public static void query(String sql,Object [] obj){
//数据库查询之后返回的数据集合
ResultSet set=null;
try{
//加载预处理语句
ps=conn.getPreparedStatement(sql);
//循环替换sql语句中的"?"
for(int i=0;i<obj.length;i++){
ps.setObject(i+1,obj[i]);
}
set=ps.executeQuery(); //执行查询
//判断是否有下一个,有就继续循环读取数据
while(set.next()){
System.out.println(set.getInt(1)
+"\t"+set.getString(2)
+"\t"+set.getString(3)
+"\t"+set.getInt(4));
}
}catch(SQLException e){
System.out.println("数据库访问出错。。。。");
}finally{
try{
set.close();
conn.close();
ps.close();
}catch(SQLExcption e){
e.printStackTrace();
}
}
}
}