public class Jdbc {
//获取数据库连接对象
private Connection getConnection(){
Connection connection=null;
try {
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//数据库连接地址
String URL="jdbc:mysql://localhost:3306/test";
//用户名
String user="root";
//用户密码
String password="root";
//登录数据库的动作传入参数,获取数据库连接对象
connection=DriverManager.getConnection(URL, user, password);
System.out.println("数据库连接成功");
} catch (Exception e) {
//数据库连接异常,打印日志
Logger.getLogger(Jdbc.class.getCanonicalName()).log(Level.SEVERE,"数据库连接失败",e);
}
return connection;
}
public PC getPc(Long id){
Connection connection=getConnection();
//获取SQL执行对象
PreparedStatement ps=null;
//获取执行对象
ResultSet rs=null;
try {
//得到SQL 执行对象,并执行sql语句
ps=connection.prepareStatement("select id,MAC,CPU,RAM from pc where id=?");
//setLong(1,id); 用id替代SQL的第一个占位符(?)
ps.setLong(1, id);
//获取执行结果集
rs=ps.executeQuery();
//判断结果集rs是否有记录,并且将指针后移一位
while(rs.next()){
Long roleId=rs.getLong("id");
//获取结果集中的值
String mac=rs.getString("MAC");
String cpu=rs.getString("CPU");
String ram=rs.getString("RAM");
PC pc=new PC();
pc.setId(roleId);
pc.setCpu(cpu);
pc.setMac(mac);
pc.setRam(ram);
return pc;
}
} catch (SQLException e) {
Logger.getLogger(Jdbc.class.getName()).log(Level.SEVERE,"空指针异常", e);
}finally{
//关闭结果集 、执行对象、connection 关闭数据库相关资源
this.close(rs, ps, connection);
}
return null;
}
//封装关闭数据库资源的方法
private void close(ResultSet rs,PreparedStatement ps,Connection connection){
try {
if(rs!=null&&!rs.isClosed()){
rs.close();
}
if(ps!=null&&!ps.isClosed()){
ps.close();
}
if(connection!=null&&!connection.isClosed()){
connection.isClosed();
}
} catch (SQLException e) {
Logger.getLogger(Jdbc.class.getName()).log(Level.SEVERE, null, e);
}
}
public static void main(String args[]){
//实例化 Jdbc
Jdbc jdbc=new Jdbc();
//调用Jdbc中的方法,并传入参数,此参数为id的值
PC pc=jdbc.getPc(1L);
System.out.println("mac="+pc.getMac());
}
}
用JDBC有以下几步:
1、连接数据库,注册驱动和数据库信息。
2、获取Statement执行SQL语句的对象。
3、将执行过后的结果集返回给ResultSet对象。
4、使用ResultSet对象将具体的代码转化成具体的实体类对象。
5、关闭相关的资源。