JDBC

Posted StaticKing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC相关的知识,希望对你有一定的参考价值。

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、关闭相关的资源。

 

以上是关于JDBC的主要内容,如果未能解决你的问题,请参考以下文章

面试常用的代码片段

mysql jdbc源码分析片段 和 Tomcat's JDBC Pool

JDBC操作数据库之查询数据

如何在片段中填充列表视图?

在 myeclipse中进行连接sql server的测试

MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段