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

  • 相关阅读:
    SQL---一次插入多条数据【使用Union】
    SQL--联合查询【Union】
    也说梦想----2015年终总结
    csharp: Procedure with DAO(Data Access Object) and DAL(Data Access Layer)
    csharp:Nhibernate Procedure with CreateSQLQuery and GetNamedQuery
    csharp: Domain-Driven Design(领域驱动设计)
    csharp:VerifyCode in winform or webform
    csharp: DBNull and DateTime
    csharp: DataRelation objects to represent a parent/child/Level relationship
    csharp: .NET Object Relationional Mapper (ORM)- SubSonic
  • 原文地址:https://www.cnblogs.com/staticking/p/6933683.html
Copyright © 2011-2022 走看看