zoukankan      html  css  js  c++  java
  • JDBC连接MySQL

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

  • 相关阅读:
    OpenJDK源码研究笔记(十二):JDBC中的元数据,数据库元数据(DatabaseMetaData),参数元数据(ParameterMetaData),结果集元数据(ResultSetMetaDa
    Java实现 LeetCode 257 二叉树的所有路径
    Java实现 LeetCode 257 二叉树的所有路径
    Java实现 LeetCode 257 二叉树的所有路径
    Java实现 LeetCode 242 有效的字母异位词
    Java实现 LeetCode 242 有效的字母异位词
    Java实现 LeetCode 242 有效的字母异位词
    Java实现 LeetCode 241 为运算表达式设计优先级
    Java实现 LeetCode 241 为运算表达式设计优先级
    Java实现 LeetCode 241 为运算表达式设计优先级
  • 原文地址:https://www.cnblogs.com/staticking/p/6933683.html
Copyright © 2011-2022 走看看