jdbc的连接

    今天,是我第一次写。感觉学了一段时间,不记录点什么都对不起自己。前两天看了下jdbc的连接,了解了其的连接方式,就记录下来给自己加深印象。可能写的不好也有可能出现问题。

      jdbc是什么?官方解释它是Java编程语言和广泛的数据库之间独立于数据库的连接标准的Java API,根本上说JDBC是一种规范。可以理解为一种方式。大家都遵循的方式。

     那么先来看看jdbc的连接方式:

            1、你要先导入驱动架包,没有这个是不行的。具体步骤就是将其复制到工程里面,当然为了更好管理,可以为其创建一个文件夹。比如  libs  。 右击 选择add as library。这个就是将架包加进去,不然你单纯复制粘贴进去没有任何意义。

             2、下面就开始直接写代码了。

                          Class.forName("com.mysql.jdbc.Driver")       //注册驱动

                          Connection conn=DriverMannager.getConnection("jdbc:mysql://localhost:3306/test","root","password")

                           //这个就是获取连接对象,   括号里面为 你的数据库名字  用户名  密码        理解为和数据库建立连接

                            String sql="update student set balance=500 where id=1"     //这个就是常规的sql语句

                            Statement     stmt=conn.createStatement();            //获取执行sql的对象

                              int count=stmt.executementUpdate(sql);      //count为跟新的行数

                             System.out.println(count);                    

//                             stmt.close();                        //释放资源

                                conn.close();

这个就是最基本的jdbc连接

------------------------------------------------------------------------------------------------------------------------------------------------------------

下面进行改进,因为很多步骤都是一样的,就不写的那么详细了

 

Connection conn=null;
        Statement stmt=null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //获取连接对象
            conn = DriverManager.getConnection("jdbc:mysql:///db3", "root", "123456");
//定义sql
            String sql="create table student(id int,name varchar(20))";
            //获取sql对象
            stmt=conn.createStatement();
            //执行sql
            int count = stmt.executeUpdate(sql);
            //处理结果
            System.out.println(count);
            if (count>0){                                    //因为count为执行的数量,执行了就大于0,
                System.out.println("成功");                   //没执行,淡然为0    
            }else {
                System.out.println("失败");
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {                                      //finally 一定会执行,所以把释放资源放在里面
            //释放资源
            if (stmt != null) {                //防止出现空指针异常
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

--------------------------------------------------------------------------------------------------------------------------------------

看了这些,是不是感觉代码都好重复

有没有想到要做一个工具类,专门用来jdbc的连接

jdbc.properties                                     //修改里面的数据,和自己要连接的数据库的设置一样就行
url=jdbc:mysql:///db3
user=root
password=123456
driver=com.mysql.jdbc.Driver

public class JdbcUtils{
 private static String url;
 private static String user;
 private static String password;
 private static String driver;
 static {                             //静态代码块  随着类加载执行,而且只执行一次  都可以直接用
                                      //             类初始化的时候执行一次,执行完成便销毁
     try {
         Properties pro=new Properties();            //创建Properties集合类 对象
         ClassLoader classLoader = JdbcUtils.class.getClassLoader(); //获取jdbcUtils字节码文件对象
         URL res = classLoader.getResource("jdbc.properties");   //通过文件名获得以src的相对根路径
         String path = res.getPath();                       //获得文件的绝对路径,
         pro.load(new FileReader("path"));                  //加载文件
         String url = pro.getProperty("url");                //对应的值
         String user= pro.getProperty("user");                   
         String password = pro.getProperty("password");
         String diver = pro.getProperty("diver");

           Class.forName(driver);
     } catch (IOException e) {
         e.printStackTrace();
     } catch (ClassNotFoundException e) {
         e.printStackTrace();
     }
 }

    /**
     * 获取连接对象
     * @return
     */
   public static Connection getConnection() throws SQLException {
       Connection conn= DriverManager.getConnection("url","user","password");
       return conn;
   }



   public static void close(Statement stmt, Connection conn, ResultSet rs){
       if(stmt!=null){
           try {
               stmt.close();
           } catch (SQLException e) {
               e.printStackTrace();
           }
       }
       if (conn!=null){
           try {
               conn.close();
           } catch (SQLException e) {
               e.printStackTrace();
           }
       }
       if (rs!=null){
           try {                                    //这个是ResultSet的对象,千万记得要和自己设置的名称一样
               rs.close();
           } catch (SQLException e) {                    
               e.printStackTrace();
           }
       }
   }

}

这就是一个jdbc的工具类 了,想连接的话,可以直接调用这个方法。是不是省略了许多步骤。当然,这个jdbc的连接类还可以更加简洁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值